удалить определенные группы членства большой список пользователей в файле CSV - PullRequest
0 голосов
/ 05 марта 2019

Я могу удалить все членство для пользователей.Я пробовал сценарий, как показано ниже.Мой вопрос: я искал сценарий, который удалил бы определенное членство в группе.Также у нас есть большой список пользователей в файле CSV.

$RemovefromGroups = $UserisMember.memberOf | ForEach-Object {Get-ADGroup -Filter "name -like '*group*'"}

Сообщение об ошибке:

    Get-ADGroup : A positional parameter cannot be found that accepts argument 'CN=group_name,OU=GP,DC=contoso,DC=com'.
At line:1 char:73
+ $RemovefromGroups = $UserisMember.memberOf | ForEach-Object {Get-ADGroup <<<<  $_ -Filter "name -like '*group*'"}
    + CategoryInfo          : InvalidArgument: (:) [Get-ADGroup], ParameterBindingException
    + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.ActiveDirectory.Management.Commands.GetADGroup

Код:

#import csv info for use in foreach loop
$csv = import-csv "c:\temp\a.csv" #have header column for "userinput"

foreach ($v in $csv) {

  $userinput = $v.userinput

  # Remove user from all AD groups
  $UserisMember = Get-ADUser $userinput -Properties memberOf
  $RemovefromGroups = $UserisMember.memberOf | ForEach-Object {Get-ADGroup $_ }
  $RemovefromGroups | ForEach-Object { Remove-ADGroupMember -Identity $_ -Members $UserisMember -Confirm:$false}          
}

1 Ответ

0 голосов
/ 05 марта 2019

Добавьте предложение Where-Object в конец этого конвейера:

$RemovefromGroups = $UserisMember.memberOf | ForEach-Object {Get-ADGroup $_ }

, чтобы оно стало

$RemovefromGroups = $UserisMember.memberOf | ForEach-Object {Get-ADGroup $_ } | Where-Object {$_.Name -like '*SSL_VPN*'}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...