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



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

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

$O365EntE3 = New-MsolLicenseOptions -AccountSkuId tenent:ENTERPRISEPACK
Set-MsolUserLicense -UserPrincipalName $Upn -LicenseOptions $O365EntE3

我需要运行什么来检查是否首先启用了 tenent:ENTERPRISEPACK?

干杯 杰米

要检查企业包是否存在,您可以使用以下代码片段(在 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"
}

好的,所以下面也做了我想要的。因为 -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

再次感谢您,并将牢记您的记忆以备将来参考。

最新更新