Active DirectoryからOperaに連絡先をインポートします

私は、電子メールを持っている従業員の数が無限になりがちな会社で働いています。 もちろん、これらの人々はすべてADに名前と姓を持っています。 繰り返しになりますが、企業ポータルで従業員のメールアドレスを見ると、うんざりして、ADからOperaに連絡先をインポートすることを考えました。



YandexGoogleでの検索では何も得られなかったので、先駆者になることにしました。 最初に、profilesフォルダーに保存されているcontacts.adrファイルを見て、UTF-8エンコードで保存され、特定の構造を持っていることに気付きました。



  1. #お問い合わせ
  2. ID = 1
  3. NAME = Ivanov Ivan Ivanovich
  4. URL =
  5. 作成済み= 1287730972
  6. 説明=
  7. メール= ivanov @ドメイン。 com
  8. 電話=
  9. FAX =
  10. POSTALADDRESS =
  11. PICTUREURL =
  12. ICON = Contact0
  13. #お問い合わせ
  14. ID = 2
  15. NAME = Petrov Petr Petrovich
  16. URL =
  17. 作成済み= 1292317914
  18. 説明=
  19. メール= petrov @ドメイン。 com
  20. 電話=
  21. FAX =
  22. POSTALADDRESS =
  23. PICTUREURL =
  24. ICON = Contact0




ID、NAME、MAILなど 質問なし。 CREATEDフィールドには、連絡先が作成された日付と時刻が格納されているようですが、私にとっては重要ではないため、完成したファイルから取得した特定の値を書き込むことにしました。



インポートツールの直接作成を開始します。 ADの使用例についてネットワークを検索した後、彼はそれを刺激しました。



  1. var rootDSE 、 domainNC 、接続、コマンド、レコードセット。
  2. var fso 、 f1 ;
  3. rootDSE = GetObject ( "LDAP:// rootDSE" ) ;
  4. domainNC = rootDSE。 Get ( "defaultNamingContext" ) ;
  5. connection = new ActiveXObject ( "ADODB.Connection" ) ;
  6. 接続。 Open ( "Provider = ADsDSOObject;" ) ;
  7. command = new ActiveXObject ( "ADODB.Command" ) ;
  8. コマンド。 ActiveConnection =接続;
  9. コマンド。 CommandText =
  10. 「SELECTname、mail、telephoneNumber FROM 'LDAP://」 + domainNC + "' WHERE objectClass = 'User'"
  11. コマンド。 プロパティ ( "キャッシュ結果" ) = false ;
  12. コマンド。 プロパティ ( 「ページサイズ」 ) = 100 ;
  13. コマンド。 プロパティ ( "Sort On" ) = "mail" ;
  14. コマンド。 プロパティ ( "Timeout" ) = 0 ;
  15. レコードセット=コマンド。 実行 ( ) ;
  16. fso = new ActiveXObject ( "Scripting.FileSystemObject" ) ;
  17. f1 = fso。 CreateTextFile ( "contacts.adr" 、 true ) ;
  18. i = 1 ;
  19. while ( ! recordset。EOF ) {
  20. if ( ( recordset。Fields ( "mail" ) 。 Value != null ) && ( recordset。Fields ( "displayname" ) 。 Value != null ) )
  21. {
  22. f1。 WriteLine ( "#CONTACT" ) ;
  23. f1。 WriteLine ( "ID =" + i ) ;
  24. f1。 WriteLine ( "NAME =" + recordset。Fields ( " displayname " ) 。 Value ) ;
  25. f1。 WriteLine ( "URL =" ) ;
  26. f1。 WriteLine ( "CREATED = 1292317914" ) ;
  27. f1。 WriteLine ( "DESCRIPTION =" ) ;
  28. f1。 WriteLine ( "MAIL =" + recordset。Fields ( " mail" ) 。 Value ) ;
  29. f1。 WriteLine ( "PHONE =" + recordset。Fields ( " telephoneNumber" ) 。 Value ) ;
  30. f1。 WriteLine ( "FAX =" ) ;
  31. f1。 WriteLine ( "POSTALADDRESS =" ) ;
  32. f1。 WriteLine ( "PICTUREURL =" ) ;
  33. f1。 WriteLine ( "ICON = Contact0" ) ;
  34. }
  35. レコードセット。 MoveNext ( ) ;
  36. i = i + 1 ;
  37. }
  38. f1。 閉じる ( ) ;
  39. 接続。 閉じる ( ) ;


簡単に言えば、ドメインにリクエストを行い、そこから従業員の名前、メール、電話番号を取得します。 次に、すべてを電子メールアドレスで並べ替え、空のアドレスまたは空の名前(何らかの理由で)のエントリを切り取り、これらすべてをファイルに書き込み、連絡先IDを常に増やします。 ID、ユニットではなく、より大きな数字で開始するのが理にかなっているかもしれません。 これにより、既存の連絡先はアドレス帳に残ります。

これを... ahem ... ad.jsファイルに保存し、コンソールからcscript ad.jsコマンドを実行しました。



大切なファイルを受け取った後、メモ帳++を使用してエンコードをUTF8に変更し、Operaを閉じたときにプロファイルフォルダー内のファイルを置き換えました。

その結果、手首を軽く振ると、アドレス帳に数百の連絡先がありました:)



また、従業員が勤務する部門がADに保存されている場合、#FOLDERタグを使用して、混乱して連絡先をフォルダーに分類できます。 好奇心reader盛な読者は、必要に応じて、自分でそれを行う方法を理解できます:)



もちろん、同じことをするためのもっと簡単でエレガントな方法はおそらくあるでしょうが、私の自転車は10分で作成され、必要な場所に正確に連れて行ってくれました。



All Articles