Modificando o plano de serviço do O365 com o PowerShell

4

Para a implantação do Office 365, não desejamos conceder a todos os nossos usuários acesso a todos os aplicativos / planos disponíveis. Então, só habilitamos o Exchange e o Skype.

Agora, estamos no ponto em que queremos ativar o Yammer e o Office on-line e estamos com problemas.

$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
}

O erro que recebo quando executo isso é o seguinte:

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

Se eu definir o $DisablePlans = $null , o mesmo comando será executado sem problemas.

Meu trabalho atual é remover a licença do usuário e adicioná-la novamente com os planos atualizados ativados.

Espero que alguém tenha encontrado esse problema antes e encontrado uma solução adequada para isso.

    
por shinjijai 21.04.2017 / 19:34

2 respostas

7

Bem, eu sou um idiota. Eu passei pela GUI e tentei adicionar o Office Online e ele reclamou que também requer o SharePoint.

Então, quando atualizei o código para

$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
    }
}

Consegui modificar a licença sem problemas.

    
por 21.04.2017 / 19:55
3

Você também pode tentar usar o Portal do Azure para o gerenciamento de licenças (Azure Active Directory - Licenças). Ele suporta a atribuição de licenças a grupos de usuários. Então, você só precisa fazer uma atribuição para algum grupo que inclua todos os usuários. E você nunca precisaria fazer nenhuma tarefa quando novos usuários fossem incluídos.

    
por 21.04.2017 / 20:27