グループ メンバーシップを持つ無効なドメイン ユーザーのリストを 1 行に 1 人ずつ取得し、メンバーシップを持たないユーザーの結果を省略するにはどうすればよいですか?

グループ メンバーシップを持つ無効なドメイン ユーザーのリストを 1 行に 1 人ずつ取得し、メンバーシップを持たないユーザーの結果を省略するにはどうすればよいですか?

たとえば、ユーザーが解雇された場合、すべてのグループを削除する必要があります。ユーザーにまだ接続されているグループをチェックしたいのですが、グループが削除されたユーザーには表示したくないのです。

無効なユーザーをすべて表示する次のコードがありますが、null グループをテストする方法がわかりません。ご協力いただければ幸いです。

Import-Module Activedirectory
Get-ADUser -Filter 'enabled -eq $false' -Properties DisplayName,memberof | % {
New-Object PSObject -Property @{
UserName = $_.DisplayName
Groups = ($_.memberof | Get-ADGroup | Select -ExpandProperty Name) -join 
","}
} | Select UserName,Groups

答え1

選択の前に where チェックを追加します。

| Where-Object {$_.Groups -ne $null} 


Import-Module Activedirectory
Get-ADUser -Filter 'enabled -eq $false' -Properties DisplayName,memberof | % {
    New-Object PSObject -Property @{
    UserName = $_.Name
    Groups = ($_.memberof | Get-ADGroup | Select -ExpandProperty Name) -join ","}
} | Where-Object {$_.Groups -ne $null} | Select UserName,Groups 

関連情報