blog by ficti0n: Скрипт импорта номеров телефонов и ip-телефонов в данные пользователей Active Directory (PoweShell)

суббота, 11 октября 2014 г.

Скрипт импорта номеров телефонов и ip-телефонов в данные пользователей Active Directory (PoweShell)

Для актуализации данных пользователей домена понадобилось сделать импорт телефонного справочника с номерами телефонов и 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
    }
}

Комментариев нет:

Отправить комментарий