【发布时间】:2019-06-27 22:39:39
【问题描述】:
我需要一个脚本来验证多个用户是否是 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:无法验证参数“身份”上的参数。这 参数为空。为参数提供一个有效值,然后尝试运行 再次命令。 在行:12 字符:44 + 删除-ADGroupMember -Identity $group.Name -Members $user.SamAccount ... + ~~~~~~~~~~~ + CategoryInfo : InvalidData: (:) [Remove-ADGroupMember], ParameterBindingValidationException + FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.ActiveDirectory.Management.Commands.RemoveADGroupMember【问题讨论】:
-
错误消息指出
Cannot validate argument on parameter 'Identity'. The argument is null.验证$group.name(也许尝试使用$group代替? -
如果你想删除它们,你可以使用Remove-ADPrincipalGroupMembership。您不必事先检查。 ;-) 当您添加
-ErrorAction SilentlyContinue时,如果一个帐户不是组的成员,您将不会收到错误。
标签: powershell active-directory