【发布时间】:2016-10-19 00:43:47
【问题描述】:
在脚本中运行此代码(从表单中获取详细信息)以获取用户组列表并从名为“Group1”和“Group2”的组之外的所有组中删除:
#remove any group memberships except Group1 and Group2
$groups = Get-ADPrincipalGroupMembership $Inputsamaccountname.Text | Where-Object -filter {$_.name -ne 'Group1' -And $_.name -ne 'Group2'}
foreach ($group in $groups) {
$group = $groups.Name
$RemovegroupMsg = "Removing " + $inputSamAccountName.Text + " from " + $group
logentryDateTime $removeGroupMsg
Remove-ADPrincipalGroupMembership -Identity $inputSamAccountName.Text -MemberOf $group -Confirm:$false
if ($Error) {
$errorMessage = "Error removing " + $inputSamAccountName.Text + " from " + $group + " " + ($Error[0].ToString()) + " continuing."
logentryDateTime $errorMessage
$Error.Clear()
continue
} elseif (!$Error) {
Write-Output "" >> $outlogfile
logentryDateTime "Successfully removed " + $inputSamAccountName.Text + " from " + $group
}
}
脚本有效,您可以看到这些组已被删除,但是日志显示“无法将参数绑定到参数 'Name',因为它为空。”符合该条件的每个组的错误”:
[2016-10-19 113117-820]:从其他组中删除 user.test1 [2016-10-19 113117-820]:从其他组中删除 user.test1 时出错无法将参数绑定到参数“名称”,因为它为空。继续。
我知道这可能是我所缺少的 foreach 循环的逻辑中非常简单的事情。
【问题讨论】:
标签: powershell foreach