PowerShell 列出所有 O365 用户和相关许可证

PowerShell List all O365 Users and Associated Licenses

我正在尝试从租户获取所有 O365 用户的列表,以及分配给他们的个人许可证。输出需要采用以下格式(注意多次列出拥有多个许可证的用户):

UPN |执照 用户1 |标准包装 用户1 |计划者独立 用户2 |企业包 用户2 | power_bi_standard 用户2 | ems

我可以用这个获取信息:

$groupOfUsers = Get-MsolUser -all | where { $_.IsLicensed -eq $True }
$licenses = foreach ($individual in $groupOfUsers) 
{ 
    $allLicenses = $individual.licenses | Select -ExpandProperty AccountSkuId
        foreach ($lic in $allLicenses)
            { write-host = $individual.UserPrincipalName $lic }
} 

我想做的是以我最终可以导入 SQL 的格式输出此文件 - 所以 table 格式或我可以导出到 csv 的格式会很棒开始。

如有任何帮助,我们将不胜感激。

试试这个

$groupOfUsers = Get-MsolUser -all | where { $_.IsLicensed -eq $True }

$results = foreach ($user in $groupOfUsers) {
    $licenses = $user.licenses.accountskuid
    foreach ($license in $licenses) {
        [pscustomobject]@{
            UPN = $user.userprincipalname
            License = $license
        }
    }
}

$results

$results | Export-Csv c:\temp\o365licenses.csv -NoTypeInformation

start c:\temp65licenses.csv

使用 powershell 获取许可证列表 Get-MsolAccountSku

和 Get-MsolUser | Where-Object {($_.licenses).AccountSkuId -匹配 "EnterprisePremium"}