середа, 19 березня 2014 р.

ActiveDirectory get list memberof for user

Powershell 3.0

1) Данный скрипт позволяет получить в консоль список групп, в которых пользователь является членом.

$User = 'User.Name'
(Get-ADUser -Identity $User -Properties memberOf).memberOf | Sort-Object | % {(Get-ADGroup -Identity $_).Name}


2) Если пользователей несколько, то можно добавить цикл:

$UserList = 'User.One','User.Two'
foreach ($User in $UserList) {
"----------------------"
"User: " + $User + " is member of"
"----------------------"
(Get-ADUser -Identity $User -Properties memberOf).memberOf | Sort-Object | % {(Get-ADGroup -Identity $_).Name}
"----------------------"
}

Таким образом в консоли отобразится членство в группах с разделением по пользователям.

3) Если нами нужно получить членство в группах для всех пользователей определенной группы, то используем слегка модифицированный скрипт из второго пункта

$UserList = Get-ADgroupmember AD_Group
foreach ($User in $UserList) {
"----------------------"
"User: " + $User + " is member of"
"----------------------"
(Get-ADUser -Identity $User -Properties memberOf).memberOf | Sort-Object | % {(Get-ADGroup -Identity $_).Name}
"----------------------"
}

4) Если групп/пользователей несметное количество, или их нужно заекспортить в текстовый файл, то при запуске скрипта нужно вконце добавить > filename.txt, например:

PS C:\> .\myscript.ps1 > out.txt

P.S. Скрипт не производит никаких модификаций, а лишь выборку, поэтому он абсолютно безопасен.

Немає коментарів:

Дописати коментар