Для актуализации данных пользователей домена понадобилось сделать импорт телефонного справочника с номерами телефонов и ip телефонов.
Если с присвоением номера телефона проблем не возникло, то с редактированием атрибута ipphone начались трудности. Поле никак не хотело заполняться и скрипт выдавал ошибку.
Ошибка возникала из-за того, что атрибут IPphone не входит в стандартный набор, возвращаемый командой Get-ADUser.
Get-ADUser -Filter string [-ResultPageSize int] [-ResultSetSize int32]
[-SearchBase string] [-SearchScope {Base | OneLevel | Subtree}]
[-SearchScope {Base | OneLevel | Subtree}]
[-AuthType {Negotiate | Basic}]
[-Credential PSCredential] [-Partition string]
[-Properties string[]] [-Server string] [CommonParameters]
Нас интересует ключ Properties:-Properties string[]
Свойства выводимого объекта получаемых с сервера (список разделенный ';').
Используйте этот параметр для получения свойств не включенных в стандартный набор. Для получения всех свойств, используемых объектом, укажите * Укажите название свойства (для не стандартного набора) и/или LDAP название атрибута.
В домене атрибут CN у меня выглядит так: Иванов А.В.
Выгруженная в "telefon.csv" телефонная книга:
Name;Telefon;ipphone
Иванов А.В.;2345566;1409
В итоге получился вот такой скрипт:
Import-Module ActiveDirectory
Set-Location AD:
Set-Location "dc=mydomain,,dc=ru"
$cred=Get-Credential
Import-Csv -useCulture -Path "C:\Script\telefon.csv" | % {
$nameNM = $_.'Name'
$telefonNM = $_.'Telefon'
$ipphoneNM = $_.'ipphone'
$user = Get-ADUser -Filter {cn -eq $nameNM} -PROPERTIES ipPhone
if ($user) {
$user.ipphone = $ipphoneNM
$user.officephone = $telefonNM
set-aduser -Instance $user -cred $cred
}
}
Комментариев нет:
Отправить комментарий