Назад | Перейти на главную страницу

Справка по сценариям - необходимо получить номер телефона учетных записей AD, а затем добавить их в контакты в доверенном домене

У меня есть учетные записи домена, которые я создал как контакты в другом доверенном домене, чтобы они могли видеть их в своем глобальном списке адресов Exchange.

Мне нужен способ извлечь поле номера телефона из UserA (учетная запись пользователя) в DomainA и импортировать его в UserA (контакт) в DomainB.

Я понимаю логику, это просто код (vbscript / powershell / что угодно), который ускользает от меня.

Логика, как я ее вижу:

  1. Подключиться к исходному AD (ou / subtree)
  2. Извлечение учетных записей пользователей из подразделений и подконтейнеров, включая имя, фамилию, отображаемое имя и номер телефона.
  3. Подключиться к целевой AD (ou / subtree)
  4. Проверить / сопоставить контакт с выдержкой в ​​# 2 выше на основе отображаемого имени
  5. Обновить поле телефона номером телефона в выписке
  6. Вести журнал успехов и неудач

Кто-нибудь может помочь?

Проблема в том, как сопоставить учетную запись на одной стороне с учетной записью на другой. Это сделает выписку.

Есть идеи, как сделать соответствие при импорте? У вас есть общее поле, такое как 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, поэтому, возможно, я ошибся. Я тестировал его на одном пользователе, но не в большом масштабе.