【发布时间】:2018-02-13 16:59:30
【问题描述】:
我正在使用以下文章 View account license and service details with Office 365 PowerShell 尝试获取我们租户中所有用户的报告,其中分配了产品许可证 Office 365 Enterprise E3 但仅启用了服务 Exchange Online(计划 2)。
文章建议这可以使用类似于以下的命令来完成:
Get-MsolUser |
Where-Object {
$_.isLicensed -eq $true
-and $_.Licenses[0].ServiceStatus[16].ProvisioningStatus -eq "Enabled"
}
就我而言 [16] 是 Office 365 Enterprise E3 列表中的第 17 项服务。
之前还有其他几行将其余服务的条件设置为“已禁用”,但希望您明白这一点,但文章还指出,索引号反映了产品许可证和服务计划出现时的顺序运行以下任一脚本块:
许可证:
Get-MsolUser -UserPrincipalName o365.test1@tenant.com | Format-List DisplayName,Licenses
服务:
Get-MsolUser -UserPrincipalName o365.test2@tenant.com).Licenses.ServiceStatus
上述问题是许多用户启用了不同的计划组合,因此对于某些用户来说,[0] 的许可证索引将指代不同的服务计划。例如user1 已分配 Visio Online 计划 2 和 Office 365 Enterprise E3 产品许可证,但 user2 仅分配了 Office 365 Enterprise E3。在这种情况下,索引 [0] 会有所不同,使得初始脚本块在查找启用了特定服务的所有用户时无用,无论分配的产品许可证组合如何。
我错过了什么吗?
【问题讨论】:
标签: powershell office365