У меня есть учетные записи домена, которые я создал как контакты в другом доверенном домене, чтобы они могли видеть их в своем глобальном списке адресов Exchange.
Мне нужен способ извлечь поле номера телефона из UserA (учетная запись пользователя) в DomainA и импортировать его в UserA (контакт) в DomainB.
Я понимаю логику, это просто код (vbscript / powershell / что угодно), который ускользает от меня.
Логика, как я ее вижу:
Кто-нибудь может помочь?
Проблема в том, как сопоставить учетную запись на одной стороне с учетной записью на другой. Это сделает выписку.
Есть идеи, как сделать соответствие при импорте? У вас есть общее поле, такое как 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
}
Если все ваши DisplayNames в домене A действительно соответствуют вашим DisplayNames в домене B, следующее должно помочь.
В домене 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, поэтому, возможно, я ошибся. Я тестировал его на одном пользователе, но не в большом масштабе.