2013-08-19 2 views
1

Я хотел бы удалить участников из группы, если они имеют какое-либо значение в атрибуте employeeNumber для AD. Я могу вернуть всех членов группы, используя Get-ADGroupMember, но как я могу перебрать их для удаления членов, у которых есть значение?Powershell - удалить участников из группы с атрибутом AD

ответ

2

Попробуйте что-то вроде этого, чтобы перечислить членов группы, которые имеют установленный атрибут:

Get-ADGroupMember 'groupname' | Get-ADUser -Properties * | 
    ? { $_.employeeNumber -ne $null } 

Чтобы действительно удалить эти элементы из группы, вы должны добавить второй шаг, как это:

$membersToRemove = Get-ADGroupMember 'groupname' ` 
    | Get-ADUser -Properties * ` 
    | ? { $_.employeeNumber -ne $null } ` 
    | % { $_.sAMAccountName } 
Remove-ADGroupMember 'groupname' $membersToRemove 
+0

О, это здорово! Большое спасибо! – user2145047

+0

Вы уверены, что удалили участников? –

+0

Если бы этот вопрос был направлен на меня: так как это код, просто перечисляет члены данной группы, у которых есть атрибут 'employeeNumber'. Он ничего не удаляет. –

1
$members = Get-ADGroupMember -Identity group1 | 
Where-Object { (Get-ADUser -Filter {SamAccountName -eq $_.SamAccountName} -Properties EmployeeNumber).EmployeeNumber } 

Remove-ADGroupMember -Identity group1 -Members $members -Confirm:$false