YandexGoogleでの検索では何も得られなかったので、先駆者になることにしました。 最初に、profilesフォルダーに保存されているcontacts.adrファイルを見て、UTF-8エンコードで保存され、特定の構造を持っていることに気付きました。
- #お問い合わせ
- ID = 1
- NAME = Ivanov Ivan Ivanovich
- URL =
- 作成済み= 1287730972
- 説明=
- メール= ivanov @ドメイン。 com
- 電話=
- FAX =
- POSTALADDRESS =
- PICTUREURL =
- ICON = Contact0
- #お問い合わせ
- ID = 2
- NAME = Petrov Petr Petrovich
- URL =
- 作成済み= 1292317914
- 説明=
- メール= petrov @ドメイン。 com
- 電話=
- FAX =
- POSTALADDRESS =
- PICTUREURL =
- ICON = Contact0
ID、NAME、MAILなど 質問なし。 CREATEDフィールドには、連絡先が作成された日付と時刻が格納されているようですが、私にとっては重要ではないため、完成したファイルから取得した特定の値を書き込むことにしました。
インポートツールの直接作成を開始します。 ADの使用例についてネットワークを検索した後、彼はそれを刺激しました。
- var rootDSE 、 domainNC 、接続、コマンド、レコードセット。
- var fso 、 f1 ;
- rootDSE = GetObject ( "LDAP:// rootDSE" ) ;
- domainNC = rootDSE。 Get ( "defaultNamingContext" ) ;
- connection = new ActiveXObject ( "ADODB.Connection" ) ;
- 接続。 Open ( "Provider = ADsDSOObject;" ) ;
- command = new ActiveXObject ( "ADODB.Command" ) ;
- コマンド。 ActiveConnection =接続;
- コマンド。 CommandText =
- 「SELECTname、mail、telephoneNumber FROM 'LDAP://」 + domainNC + "' WHERE objectClass = 'User'"
- コマンド。 プロパティ ( "キャッシュ結果" ) = false ;
- コマンド。 プロパティ ( 「ページサイズ」 ) = 100 ;
- コマンド。 プロパティ ( "Sort On" ) = "mail" ;
- コマンド。 プロパティ ( "Timeout" ) = 0 ;
- レコードセット=コマンド。 実行 ( ) ;
- fso = new ActiveXObject ( "Scripting.FileSystemObject" ) ;
- f1 = fso。 CreateTextFile ( "contacts.adr" 、 true ) ;
- i = 1 ;
- while ( ! recordset。EOF ) {
- if ( ( recordset。Fields ( "mail" ) 。 Value != null ) && ( recordset。Fields ( "displayname" ) 。 Value != null ) )
- {
- f1。 WriteLine ( "#CONTACT" ) ;
- f1。 WriteLine ( "ID =" + i ) ;
- f1。 WriteLine ( "NAME =" + recordset。Fields ( " displayname " ) 。 Value ) ;
- f1。 WriteLine ( "URL =" ) ;
- f1。 WriteLine ( "CREATED = 1292317914" ) ;
- f1。 WriteLine ( "DESCRIPTION =" ) ;
- f1。 WriteLine ( "MAIL =" + recordset。Fields ( " mail" ) 。 Value ) ;
- f1。 WriteLine ( "PHONE =" + recordset。Fields ( " telephoneNumber" ) 。 Value ) ;
- f1。 WriteLine ( "FAX =" ) ;
- f1。 WriteLine ( "POSTALADDRESS =" ) ;
- f1。 WriteLine ( "PICTUREURL =" ) ;
- f1。 WriteLine ( "ICON = Contact0" ) ;
- }
- レコードセット。 MoveNext ( ) ;
- i = i + 1 ;
- }
- f1。 閉じる ( ) ;
- 接続。 閉じる ( ) ;
簡単に言えば、ドメインにリクエストを行い、そこから従業員の名前、メール、電話番号を取得します。 次に、すべてを電子メールアドレスで並べ替え、空のアドレスまたは空の名前(何らかの理由で)のエントリを切り取り、これらすべてをファイルに書き込み、連絡先IDを常に増やします。 ID、ユニットではなく、より大きな数字で開始するのが理にかなっているかもしれません。 これにより、既存の連絡先はアドレス帳に残ります。
これを... ahem ... ad.jsファイルに保存し、コンソールからcscript ad.jsコマンドを実行しました。
大切なファイルを受け取った後、メモ帳++を使用してエンコードをUTF8に変更し、Operaを閉じたときにプロファイルフォルダー内のファイルを置き換えました。
その結果、手首を軽く振ると、アドレス帳に数百の連絡先がありました:)
また、従業員が勤務する部門がADに保存されている場合、#FOLDERタグを使用して、混乱して連絡先をフォルダーに分類できます。 好奇心reader盛な読者は、必要に応じて、自分でそれを行う方法を理解できます:)
もちろん、同じことをするためのもっと簡単でエレガントな方法はおそらくあるでしょうが、私の自転車は10分で作成され、必要な場所に正確に連れて行ってくれました。