Проверьте, является ли пользователь участником, и удалите - PullRequest
0 голосов
/ 04 февраля 2019

Мне нужен скрипт, чтобы проверить, являются ли несколько пользователей членом списка групп AD, и, если они есть, удалить их.У меня что-то вроде этого:

Import-Module ActiveDirectory

$users = Get-Content -Path "C:\users.txt"
$groups = Get-Content -Path "C:\groups.txt"

foreach ($group in $groups) {
    foreach ($user in $users) {
        $members = Get-ADGroupMember -Identity $group -Recursive |
                   Select -ExpandProperty SamAccountName

        if ($members -contains $user) {
            Remove-ADGroupMember -Identity $group.Name -Members $user.SamAccountName -Confirm:$false
            Write-Host "$user has been removed from $group"
        } else {
            Write-Host "$user is not a member of $group"
        }
    }
}

Но я получаю следующую ошибку:

Remove-ADGroupMember : Cannot validate argument on parameter 'Identity'. The
argument is null. Provide a valid value for the argument, and then try running
the command again.
At line:12 char:44
+             Remove-ADGroupMember -Identity $group.Name -Members $user.SamAccount ...
+                                            ~~~~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [Remove-ADGroupMember], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.ActiveDirectory.Management.Commands.RemoveADGroupMember

1 Ответ

0 голосов
/ 04 февраля 2019

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

Remove-ADGroupMember -Identity $group.Name -Members $user.SamAccountName -Confirm:$false

Легко исправить, вам просто нужно изменить *От 1004 * до $group, а также от $user.SamAccountName до $user

Remove-ADGroupMember -Identity $group -Members $user -Confirm:$false
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...