2016-07-20 6 views
0

Ich versuche, alle Mitglieder einer Verteilergruppe zu löschen, ohne die Gruppe als eine Weile zu löschen. Ich fand einen anderen Stackoverflow Post, wo dieser den Trick zu tun schien:Entfernen aller Mitglieder in einer Verteilergruppe

foreach ($member in Get-DistributionGroupMember -Identity [email protected]) 
{ 
    write-host $member 
    Remove-DistributionGroupMember -Identity [email protected] -Member $member -Confirm:$False 
} 

Es wird jedoch nicht die Benutzer löschen. Er sagt dies für jeden Benutzer, den es zu löschen versucht ...

Die Argumenttransformation kann nicht am Parameter 'Member' verarbeitet werden. Der Wert "Smith, John" kann nicht in "Microsoft.Exchange.Configuration.Tasks.GeneralRecipientIdParameter" konvertiert werden. Fehler: "Kann Hash-Tabelle nicht in ein Objekt des folgenden Typen konvertieren: Microsoft.Exchange.Configuration.Tasks.GeneralRecipientIdParameter. Hashtable-zu-Objekt-Konvertierung wird nicht in eingeschränktem Sprachenmodus oder einem Datenabschnitt unterstützt."

Ich würde denken, 'name' wäre eine Eigenschaft remove-distributiongroupmember würde nehmen, aber es scheint nicht so, als wolle es hier.

So testete ich dies:

Remove-DistributionGroupMember -Identity [email protected] -Member 'Smith, John' 

Und es funktioniert! Es löscht den Benutzer gerade gut, wenn ich den Namen manuell eingib. Was mache ich falsch?

Antwort

1

War es nur die altmodische Art mit einer while-Schleife, anstatt es in einer Zeile zu versuchen.

$list = Get-DistributionGroupMember -Identity $DistributionGroup 
$list | % { 
    Remove-DistributionGroupMember -Identity $DistributionGroup -Member $_.Name -Confirm:$false 
    } 
0

Ich weiß, dass es ein Jahr später ist, aber hier ist, wie ich Ihren Ausgangspunkt nahm und änderte es leicht an der Arbeit:

foreach ($member in (Get-DistributionGroupMember -Identity $groupname)) { 
    Write-Host $member.primarySmtpAddress 
    Remove-DistributionGroupMember -Identity $groupname -Member $member.PrimarySmtpAddress -Confirm:$false 
} 

Es ist eine foreach-Schleife, die durch jedes Mitglied einer Gruppe geht , und entfernt dann den Benutzer aus der gleichen Gruppe, aber es verwendet die primäre E-Mail-Adresse anstelle des Mitgliedsobjekts, wo Sie stecken bleiben könnten. Sie könnten Name anstelle der PrimarySmtpAddress-Eigenschaft verwenden, aber ich denke, dass die E-Mail-Adresse besser lesbar ist.

Ich habe diesen Code nur für eine Gruppe in meiner O365-Umgebung verwendet. Vielen Dank für den Start, und ich hoffe, dieser Beitrag hilft zukünftigen Lesern Ihrer Frage.

Verwandte Themen