Powershell:根据可用许可证在 E3、E1 之间进行选择

Powershell: Choose between E3, E1 based on available licenses

我正在寻找一种方法来根据许可证的可用性向用户添加 E3 或 E1 许可证。

例如:如果没有 E3 许可证,则添加 E1 许可证

我所做的是在两行中使用“Set-MsolUserLicense”命令。如果第一行给出类似的错误,则不再可用。然后它转到第二行并执行第二行。

如果第一行没有错误然后转到第二行然后出现错误,则已经添加了许可证。

这就是我的方式:)

有什么想法吗? :)

周, M

根据上述共享要求,我们编写了以下 powershell 脚本,将检查当前可用的许可证单元,并相应地为用户分配适当的许可证 e3 或 e1。

Connect-MsolService

$userlist={'user1@microsoft.com','user2@microsoft.com'}

foreach($users in $userlist){
$e3= Get-MsolAccountSku | Where AccountSkuId -Contains microsoft:ENTERPRISEPACK 
$e1= Get-MsolAccountSku | Where AccountSkuId -Contains microsoft:STANDARDPACK

if( $e3.ConsumedUnits -le $e3.ActiveUnits){
    Write-Host "Need to append e3"
    Set-MsolUserLicense -AddLicenses $e3.AccountSkuId  -UserPrincipalName $users
    }
    elseif( $e1.ConsumedUnits -le $e1.ActiveUnits){

    Write-Host "Need to append e1"
    Set-MsolUserLicense -AddLicenses $e3.AccountSkuId  -UserPrincipalName $users
    }
    else{
    Write-host "No active E1 or E3 Linceses available  for the current tenant"
    }

}

您可以参考此文档以获取有关 Product names and service plan identifiers for licensing

的更多信息