检查是否已启用O365产品许可证

时间:2017-07-26 10:41:29

标签: powershell office365

我需要通过PowerShell配置O365许可证,我没有遇到任何问题,但是想在此之前添加一个if语句来检查产品是否在修改之前启用,否则会失败。

目前,我有以下修改(启用所有服务)已启用的Office 365企业版E3产品:

$O365EntE3 = New-MsolLicenseOptions -AccountSkuId tenent:ENTERPRISEPACK

Set-MsolUserLicense -UserPrincipalName $Upn -LicenseOptions $O365EntE3

我需要运行什么才能检查tenent:ENTERPRISEPACK是否已首先启用?

干杯 杰米

2 个答案:

答案 0 :(得分:0)

要检查是否存在Enterprise Pack,您可以使用以下代码段(在PowerShell v5中测试):

$user = Get-MsolUser -UserPrincipalName $upn 
if($user.Licenses.AccountSku.SkuPartNumber -contains 'Enterprisepack'){
    write-output "Enterprise Pack is there"
}
else{
    write-output "No Enterprise Pack"
}

答案 1 :(得分:0)

好的,所以以下也是我想要的。因为-LicenseOptions参数不会终止并且即使服务已经启用也不会产生错误,这意味着我可以在使用-AddLicenses参数的初始脚本块之后运行它。同样使用这种方法我只在一个地方配置服务,尽管在上面的if-else语句中并不难实现。

            Try
        {
            Set-MsolUserLicense -UserPrincipalName $Upn -AddLicenses tenent:ENTERPRISEPACK -ErrorAction Stop
            "$(Get-Date -f HH:mm:ss):  $($Upn): Office 365 Enterprise E3 Product License enabled" | Tee-Object $UserMigrationLog -Append
        }
        Catch
        {
            "$(Get-Date -f HH:mm:ss):  $($Upn): Office 365 Enterprise E3 Product License already assigned" | Tee-Object $UserMigrationLog -Append
        }
        #Present so specific configurations can be set if required
        Set-MsolUserLicense -UserPrincipalName $Upn -LicenseOptions $O365EntE3
        "$(Get-Date -f HH:mm:ss):  $($Upn): Office 365 Enterprise E3 configured services enabled" | Tee-Object $UserMigrationLog -Append

再次感谢,并会留意您的未来参考。