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

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

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

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

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

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

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

2 ответа

Решение

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

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

Другие вопросы по тегам