Общее·количество·просмотров·страницы

понедельник, 3 февраля 2014 г.

Вывод атрибутов пользователя AD при помощи PowerShell

Классическая задача для админа. Есть список пользователей в файле csv, необходимо по представленному списку сформировать файл с определенными атрибутами учетной записи.
Допустим входной файл имеет вид:


|sn              | givenName |
|Иванов     | Иван           |
 

В атрибутах учетной записи sn, как правило, фамилия, givenName имя.
Напишем небольшой скрипт и разберем его.


$users = Import-CSV c:\temp\EID2.csv
foreach ($user in $users){
$sn = $user.sn
$given_name = $user.givenName
$userset = Get-ADUser -f {(sn -eq $sn) -and (givenName -eq $given_name)} -Properties *
if ($userset -ne $Null){
$userset | Select-Object employeeID, sAMAccountName, mail  | Export-Csv -Encoding Unicode -Path c:\temp\final3.csv -Append  
}
}

 

$users = Import-CSV c:\temp\EID2.csv В переменную $users помещаем результат импорта из файла c:\temp\EID2.csv.

foreach ($user in $users){

Для тех кто немного изучал программирование, будет понятней, это цикл по объектам, $users наша переменная содержащая объекты импорта, т.е. строки файла и колонки, переменная $user содержит значения колонок текущей строки.

$sn = $user.sn

Присваиваем переменной $sn значение текущей колонки sn в файле.

$given_name = $user.givenName

То же самое для колонки givenName

$userset = Get-ADUser -f {(sn -eq $sn) -and (givenName -eq $given_name)} -Properties *

Для поиска пользователей в AD используем командлет Get-ADUser через параметр –f задаем фильтр поиска по атрибутам учетки {(sn -eq $sn) -and (givenName -eq $given_name)}, если условие одно то его можно не заключать в скобки, через параметр –Properties * получим все атрибуты.

if ($userset -ne $Null){

Если переменная $userset найдена, т.е. не равна нулю, то делаем следующее

$userset | Select-Object employeeID, sAMAccountName, mail  | Export-Csv -Encoding Unicode -Path c:\temp\final3.csv -Append  

Из переменной $userset по конвейеру передаем значение на командлет Select-Object который выбирает три параметра employeeID, sAMAccountName, mail , дальше через конвейер передаем на командлет Export-Csv -Encoding Unicode -Path c:\temp\final3.csv –Append здесь указываем кодировку файла -Encoding Unicode,  путь -Path c:\temp\final3.csv, и укажем, что нужно дозаписывать значения в конец файла –Append.
На выходе получим файл с атрибутами.


 

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

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