通过PowerShell提取Office 365组需要ManagedBy属性以显示UPN而不是显示名称

问题描述

我是PowerShell的新手。我使用get-unifiedgroup命令提取所有Office 365组。成功,但是ManagedBy仅显示所有者displayName,而不显示UPN。有什么建议吗?以下是我使用的命令。 TIA!

Get-UnifiedGroup -ResultSize unlimited | Select-Object displayName,PrimarySMTPAddress,ManagedBy,Accesstype,WhenCreated,WhenChanged | Export-CSV C:\Users\XXXX\Downloads\XXXXX.csv

解决方法

尝试一下:

$groups = Get-UnifiedGroup -ResultSize unlimited | Select-Object DisplayName,PrimarySMTPAddress,ManagedBy,AccessType,WhenCreated,WhenChanged

foreach ($group in $groups){
    $managedBys = ""

    foreach ($managedBy in $group.ManagedBy){
        $user = Get-User -Filter "Name -eq '${managedBy}'" | Select-Object UserPrincipalName
        if($managedBys -eq ""){
            $managedBys += $user.UserPrincipalName
        }else{
            $managedBys += "," + $user.UserPrincipalName
        }
    }

    $group.ManagedBy.Clear() 

    $group.ManagedBy.Add($managedBys)
}

$groups | Export-CSV C:\Users\XXXX\Downloads\XXXXX.csv

请注意,由于使用循环,可能会影响效率。