2017-03-02 4 views
0

ADの特定のOU内の1つ以上のグループのメンバである無効なユーザーを検索するスクリプトを作成しようとしています。その後、すべての無効なユーザーのグループが削除されます。しかし、私は名前のリストを除いて、ユーザーのリストを生成したい。特定の無効なユーザーのグループを削除したくないと言います。無効になっているユーザーからグループのメンバシップを削除する

$SearchBase = "OU=Disabled Users,DC=contoso,DC=com" 
$Users = Get-ADUser -filter * -SearchBase $SearchBase -Properties MemberOf 
$ExcludeUsers [email protected]("SM_82786dfdc96642ed9","SM_516a93b689334db1a") 
$Users = $Users | where-Object { $ExcludeUsers -notcontains $_.samaccountname } 
ForEach($User in $Users){ 
$User.MemberOf | Remove-ADGroupMember -Member $User -Confirm:$false 
} 

エラー:

Remove-ADGroupMember : Cannot validate argument on parameter 'Identity'. The argument is null. Provide a valid value for the argument, and then try running the command again. 
At line:3 char:22 
+  $User.MemberOf | Remove-ADGroupMember -Member $User -Confirm:$false 
+      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    + CategoryInfo   : InvalidData: (:) [Remove-ADGroupMember], ParameterBindingValidationException 
    + FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.ActiveDirectory.Management.Commands.RemoveADGroupMember 

答えて

0

あなたが任意のグループを持たないユーザーを発見したように(ドメインユーザーがmemberofの一部ではない)ようです。ヌルオブジェクトをフィルタリングするには、Where-Objectのようなものを使用します。例:

$User.MemberOf | Where-Object { $_ } | Remove-ADGroupMember -Member $User -Confirm:$false 
+0

私はそれを試しましたが運は何も起こりません。 – Arbelac

+0

何も起こりませんか?だからもうエラーはない? 'Remove-ADGroupMember'は結果を出力しません...(' Get-ADUser'またはADコンソールを使って '$ user.memberof'に古い値が残っています) –

+0

ユーザーを確認しました。私はまだユーザーのグループメンバーを見ることができます – Arbelac

関連する問題