Powershell: выбор между E3, E1 в зависимости от доступных лицензий

Я ищу способ добавить пользователю лицензию E3 или E1 в зависимости от наличия лицензии.

Например: если лицензии E3 больше нет, добавьте лицензию E1.

Что я делаю, я использую команду «Set-MsolUserLicense» в 2 строки. Если первая строка выдает ошибку вроде, больше нет в наличии. Затем он переходит на 2-ю строку и выполняет вторую.

Если первая строка идет без ошибки и доходит до 2 строки и потом выдает ошибку, уже лицензия добавлена.

Так что это мой путь :)

Есть идеи, как это должно быть? :)

Вкр, М

1 ответ

Основываясь на вышеуказанном общем требовании, мы написали приведенный ниже сценарий 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"
    }

}

Вы можете обратиться к этой документации для получения дополнительной информации о названиях продуктов и идентификаторах тарифных планов для лицензирования.

Другие вопросы по тегам