diesen Code in das Ausführen eines Skripts (das aus einem Formular packt Details) eine Liste von Benutzergruppen zu erhalten und von allen außer Gruppe mit dem Namen „Gruppe1“ und „Group2“ entfernen:foreach loop läuft zweimal?
#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
}
}
Das Skript arbeitet und Sie kann sehen, dass die Gruppen entfernt wurden, aber Logs zeigen ein "Kann Argument nicht an Parameter 'Name' binden, weil es Null ist." Fehler für jede Gruppe, die diesen Kriterien entspricht ".
[2016-10-19 113117-820] : Removing user.test1 from Other-group [2016-10-19 113117-820] : Error removing user.test1 from Other-group Cannot bind argument to parameter 'Name' because it is null. continuing.
Ich weiß es wahrscheinlich etwas wirklich einfach in der Logik der foreach
Schleife ist mir persönlich fehlt
Vielen Dank. – J1raya
Kein Problem man. Wenn das Ihre Frage löst, markieren Sie bitte die angenommene Antwort. –