我需要通过PowerShell配置O365许可证,我没有遇到任何问题,但是想在此之前添加一个if语句来检查产品是否在修改之前启用,否则会失败。
目前,我有以下修改(启用所有服务)已启用的Office 365企业版E3产品:
$O365EntE3 = New-MsolLicenseOptions -AccountSkuId tenent:ENTERPRISEPACK
Set-MsolUserLicense -UserPrincipalName $Upn -LicenseOptions $O365EntE3
我需要运行什么才能检查tenent:ENTERPRISEPACK是否已首先启用?
干杯 杰米
答案 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
再次感谢,并会留意您的未来参考。