web-dev-qa-db-ja.com

スクリプトヘルプ-ADアカウントの電話番号を取得して、信頼できるドメインの連絡先に追加する必要があります

Exchange GALで表示できるように、別の信頼できるドメインの連絡先として作成したドメインアカウントがあります。

DomainAのUserA(ユーザーアカウント)から電話番号フィールドを抽出し、DomainBのUserA(連絡先)にインポートする方法が必要です。

私は論理を理解しました、それは私を逃れるコード(vbscript/powershell /何でも)だけです。

私が見るロジック:

  1. ソースADに接続(ou /サブツリー)
  2. OUおよびサブコンテナからユーザーアカウントを抽出します(名、姓、表示名、電話番号を含む)
  3. ターゲットADに接続(ou /サブツリー)
  4. 表示名に基づいて、上記#2の抽出と連絡先を確認/照合します
  5. 抽出の電話番号で電話フィールドを更新する
  6. 成功と失敗のログを書き込む

誰か助けることができますか?

2
TheCleaner

問題は、片側の口座と反対側の口座をどのように一致させるかです。これは抽出を行います。

インポートで一致させる方法についてのアイデアはありますか?両方にemployeeIDのような共通のフィールドがありますか?そうでなければ、複雑なマルチフィールドマッチングが必要になるかもしれません。

   get-aduser -filter * -searchbase "ou=users,dc=adomain,dc=com" -properties Telephonenumber|select displayname, givenname, sn, telephonenumber|export-csv phones.csv

import-csv phones.csv| foreach { 
  get-aduser -displayname $_.displayname -searchbase "ou=contacts dc=Bdomain,dc=com"  | set-aduser -telephoneNumber $_.telephonenumber
}
4
uSlackr

ドメインAのすべてのDisplayNamesがドメインBのDisplayNamesと完全に一致する限り、次の方法でうまくいくはずです。

ドメインAで、以下を実行します。

Get-ADUser -filter * -properties TelephoneNumber,DisplayName | select DisplayName,TelephoneNumber | export-csv users.csv

ドメインBで、以下を実行します。

Import-CSV users.csv | ForEach { get-aduser -filter "displayname -eq '$($_.displayname)'" | set-aduser -replace @{telephonenumber="$($_.TelephoneNumber)"} }

私自身、PowerShellを初めて使用するので、間違えた可能性があります。 1人のユーザーでテストしましたが、大規模ではありませんでした。

1
Justus Thane