2016-07-20 14 views
0

配布グループのすべてのメンバをしばらく削除せずに削除しようとしています。私はこれがトリックをするように見える別のstackoverflowポストを見つけた:配布グループ内のすべてのメンバを削除する

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

しかし、それはユーザーを削除しません。これは、削除しようとするすべてのユーザーのためにこれを示しています...

パラメータ 'Member'で引数変換を処理できません。値 "Smith、John"を "Microsoft.Exchange.Configuration.Tasks.GeneralRecipientIdParameter"と入力できません。エラー: "ハッシュテーブルを に変換できません。次のタイプのオブジェクト:Microsoft.Exchange.Configuration.Tasks.GeneralRecipientIdParameterハッシュテーブルからオブジェクトへの変換は、制限された言語モードまたはデータセクションではサポートされていません。

私は '名前'はremove-distributiongroupmemberがとるプロパティになると思うだろうが、ここに望むようには見えない。

だから私は、このテスト:

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

をそして、それは働きます!私は手動で名前を入力するときにそれはユーザーを削除します。だから私は何が間違っているの?

答えて

1

ちょうど1つの行でそれをやろうとするのではなく、whileループを使って古風なやり方でした。

​​
0

私はそれが一年後だけど、ここで私はあなたの出発点を取り、仕事に少しそれをどのように変化したかである:

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

それは、グループの各メンバーを通過するforeachループであります同じグループからユーザーを削除しますが、メンバーオブジェクトの代わりにプライマリ電子メールアドレスを使用します。 PrimarySmtpAddressプロパティの代わりにNameを使用することもできますが、電子メールアドレスが読みやすくなっていると思います。

私のO365環境のグループでこのコードを使用しました。出発点をありがとうございます。この寄稿が今後の読者に役立つことを願っています。

関連する問題