Powershell 抓取用户所在的所有组

Powershell 抓取用户所在的所有组,powershell,active-directory,Powershell,Active Directory,我正试图在屏幕上显示某个用户所属的所有组: Connect-MsolService Connect-AzureAD Import-Module AzureAD $UserName = "user.email@company.com" $groups = Get-AzureADGroup | Where-Object -FilterScript {$_.Members -contains $UserName} foreach ($group in $groups) { $props

我正试图在屏幕上显示某个用户所属的所有组:

Connect-MsolService
Connect-AzureAD
Import-Module AzureAD
$UserName = "user.email@company.com"
$groups = Get-AzureADGroup | Where-Object -FilterScript {$_.Members -contains $UserName}
foreach ($group in $groups) {
        $props = @{'Name'           = $group.Name;
                   'DisplayName'    = $group.DisplayName;
                   'Identity'       = $group.SamAccountName;
                   'PrimaryEmail'   = $group.WindowsEmailAddress}

        $obj = New-Object -TypeName PSObject -Property $props
        Write-Output $obj
    }

但这一切都没有发生,我过滤错了吗?我一直在使用MsolService和AzureAD模块,因为我似乎无法让ActiveDirectory模块工作,但这是一个单独的问题。此代码不会抛出任何错误,但我不知道为什么屏幕上没有任何输出。

组成员是否使用其电子邮件地址作为名称?您正在筛选一个名为
$UserName
的变量,但您的示例显示了正在添加的电子邮件地址。对于AD,包含成员的属性称为
Member
,并且名称存储为可分辨名称。这对于Azure AD,还是对于on-prem AD?Jason,我想使用用户的电子邮件地址,因为它是唯一的,$\成员是否会在电子邮件地址上进行筛选?米奇-广告中是否有过滤电子邮件地址的功能?TheMadTech-我不确定,我是powershell新手,我无法加载activedirectory模块或找到AD服务器,我发现msol和AzureAD模块将加载并拉取正确的资源,所以我选择了这些!希望这有助于解释。