Бывает, что возникает необходимость привести записи о пользователях в Active Directory к некоему стандарту. У нас есть однотипные логины (user0001, user0002, user0003 и так далее) и требуется к каждой записи пользователя добавить фамилию, имя, адрес электронной почты, телефон стационарный, телефон мобильный, должность, отдел, название компании. При большом количестве пользователей удобнее вносить данные в таблицу Excel.
Пример исходного файла. По образу и подобию заполняем таблицу.
После того, как мы добавили всех пользователей необходимо сохранить файл в формате, пригодном для экспорта в Active Directory – файл csv. Выбираем “Сохранить как” и в типе фала указываем CSV (MS-DOS). В результате будет сохранен файл CSV с точкой с запятой (” ; “) в виде разделителя.
Чтобы текст на русском языке перенесся в AD правильно, кодировку файл нужно преобразовать в UTF-8 . Удобнее это делать в программе Notepad++.
Сохраняем файл. Теперь передадим полученный файл скрипту. Создадим еще один файл с таким cодержанием:
$File = import-csv C:\temp\users.csv -delimiter ";" foreach ($User in $file) { $samAccountName = $user.name $email= $user.mail Get-ADUser -LDAPFilter "(samAccountName=$samAccountName)" | Set-aduser -surname $user.surname -givenname $user.givenname -title $user.Title -Department $user.department -Company $user.company -EmailAddress $email -OfficePhone $user.OfficePhone -mobile $user.mobile }
В первой строке прописываем путь к своему сохраненному файлу csv. Сохраним под именем, например, test.ps1 на диске С.
Замечание. Для серверов Windows 2008/2008R2 нужно добавить в начало еще одну строку: import-module activedirectory.
На контроллере домена стартуем powershell и запускаем скрипт.
После выполнения скрипта данные из нашего файла csv пропишутся в Active Directory.
Спасибо за информацию!!!!!