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



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

UPN |许可证用户1 |标准包用户1 |规划器独立用户2 |企业包用户2 |power_bi_standard用户2 |特快专递

我可以使用这个来获取信息:

$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 中的格式 - 因此表格格式或我可以导出为 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:tempo365licenses.csv -NoTypeInformation
start c:temp365licenses.csv

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

和获取-MsolUser |Where-Object {($_.licenses).AccountSkuId -match "EnterprisePremium"}

最新更新