При развертывании Office 365 мы не хотели предоставлять всем нашим пользователям доступ ко всем доступным приложениям / планам. Итак, мы включили только Exchange и Skype.
Теперь мы подошли к тому моменту, когда мы хотим включить Yammer и Office Online, и у нас возникли проблемы.
$LicSKU = "<Hidden>:STANDARDPACK"
$ServicePlans = ((Get-MsolAccountSku | Where-Object {$_.AccountSkuId -eq $LicSKU}).ServiceStatus | Select-Object ServicePlan -ExpandProperty ServicePlan).ServiceName
$EnabledPlans = 'EXCHANGE_S_STANDARD','YAMMER_ENTERPRISE', 'SHAREPOINTWAC', 'MCOSTANDARD'
$DisabledPlans = @()
foreach($Plan in $ServicePlans) {
if($EnabledPlans -notcontains $Plan) {
$DisabledPlans += $Plan
}
}
$LicOption = New-MsolLicenseOptions -AccountSkuId $LicSKU -DisabledPlans $DisabledPlans
try {
$UserLicense = @{
UserPrincipalName = $UserPrincipalName
AddLicenses = $LicSKU
LicenseOptions = $LicOption
}
Set-MsolUserLicense @UserLicense -ErrorAction Stop
}
catch [Microsoft.Online.Administration.Automation.MicrosoftOnlineException] {
$UserLicense.Remove('AddLicenses')
Set-MsolUserLicense @UserLicense -ErrorAction Stop
}
При запуске я получаю следующую ошибку:
Set-MsolUserLicense : Unable to assign this license.
+ Set-MsolUserLicense @UserLicense -ErrorAction Stop
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : OperationStopped: (:) [Set-MsolUserLicense], MicrosoftOnlineException
+ FullyQualifiedErrorId : Microsoft.Online.Administration.Automation.InvalidLicenseConfigurationException,Microsof
t.Online.Administration.Automation.SetUserLicense
Если я установлю $DisablePlans = $null
, то та же команда работает без проблем.
Моя текущая работа - удалить лицензию у пользователя, а затем добавить ее снова с включенными обновленными планами.
Я надеюсь, что кто-то сталкивался с этой проблемой раньше и нашел для нее подходящее решение.
Ну я идиот. Я просмотрел графический интерфейс и попытался добавить Office Online, и он пожаловался, что для этого также требуется Sharepoint.
Итак, когда я обновил код до
$ServicePlans = ((Get-MsolAccountSku | Where-Object {$_.AccountSkuId -eq $LicSKU}).ServiceStatus | Select-Object ServicePlan -ExpandProperty ServicePlan).ServiceName
$EnabledPlans = 'EXCHANGE_S_STANDARD','YAMMER_ENTERPRISE', 'MCOSTANDARD', 'SHAREPOINTSTANDARD', 'SHAREPOINTWAC'
$DisabledPlans = @()
foreach($Plan in $ServicePlans) {
if($EnabledPlans -notcontains $Plan) {
$DisabledPlans += $Plan
}
}
Мне удалось без проблем изменить лицензию.
Вы также можете попробовать использовать Портал Azure для управления лицензиями (Azure Active Directory - Лицензии). Он поддерживает назначение лицензий группам пользователей. Таким образом, вам нужно будет выполнить назначение только один раз для некоторой группы, в которую входят все пользователи. И вам никогда не нужно будет выполнять какие-либо назначения, когда добавляются новые пользователи.