Como Atribuir Licenças do Copilot em Lote com PowerShell
🔍 WiseChecker

Como Atribuir Licenças do Copilot em Lote com PowerShell

Atribuir licenças do Microsoft 365 Copilot para centenas ou milhares de usuários um por um no centro de administração é lento e propenso a erros. A atribuição em lote via PowerShell economiza tempo e reduz falhas. Este artigo explica como usar o SDK do Microsoft Graph PowerShell para atribuir licenças do Copilot a vários usuários de uma vez usando um arquivo CSV ou associação a grupo. Você aprenderá os comandos exatos, as permissões necessárias e como lidar com erros comuns durante a atribuição em lote de licenças.

Principais conclusões: Atribuir licenças do Copilot em lote com PowerShell

  • Módulo Microsoft Graph PowerShell SDK: Necessário para conectar ao seu locatário e executar comandos de atribuição de licenças.
  • Connect-MgGraph -Scopes User.ReadWrite.All, Organization.Read.All: Escopos necessários para ler contas de usuário e atribuir licenças.
  • Set-MgUserLicense -UserId <usuário> -AddLicenses <sku>: Cmdlet principal que adiciona uma licença do Copilot a um único usuário.
  • Arquivo CSV com coluna UserPrincipalName: O formato de entrada usado para percorrer vários usuários e atribuir licenças em lote.

Entendendo os SKUs de Licença do Copilot e Pré-requisitos

Antes de atribuir licenças, você precisa do identificador SKU correto para seu plano do Copilot. O Microsoft 365 Copilot usa o nome SKU SPE_E5 ou Microsoft_365_Copilot dependendo da região do seu locatário e do tipo de oferta. Para encontrar o SKU exato do seu locatário, execute o comando Get-MgSubscribedSku após conectar-se ao Microsoft Graph. A saída mostra a propriedade SkuPartNumber de cada SKU. Os nomes de SKU comuns do Copilot incluem:

  • SPE_E5 – Microsoft 365 E5 Copilot
  • Microsoft_365_Copilot – Microsoft 365 Copilot autônomo
  • COPILOT_STUDENT – Copilot para Microsoft 365 para estudantes

Você também precisa dos seguintes pré-requisitos:

  • SDK do Microsoft Graph PowerShell instalado. Instale com Install-Module Microsoft.Graph -Scope CurrentUser.
  • Função de Administrador Global ou Administrador de Licenças no Microsoft Entra ID.
  • Um arquivo CSV listando os usuários que precisam da licença do Copilot. O arquivo deve incluir uma coluna chamada UserPrincipalName.
  • Licenças do Copilot disponíveis suficientes no seu locatário. Verifique no centro de administração do Microsoft 365 em Cobrança > Licenças.

Passos para Atribuir Licenças do Copilot em Lote com PowerShell

Siga estes passos para atribuir licenças do Copilot a vários usuários a partir de um arquivo CSV. Cada passo inclui o comando PowerShell exato a ser executado.

  1. Conectar ao Microsoft Graph
    Abra o PowerShell como administrador. Execute Connect-MgGraph -Scopes User.ReadWrite.All, Organization.Read.All. Uma janela do navegador será aberta. Faça login com uma conta de Administrador Global ou Administrador de Licenças. Após o login bem-sucedido, o prompt do PowerShell mostrará Welcome to Microsoft Graph!.
  2. Encontrar o ID do SKU do Copilot
    Execute Get-MgSubscribedSku | Select-Object SkuPartNumber, SkuId, ConsumedUnits, PrepaidUnits. Procure a linha onde SkuPartNumber corresponde ao seu plano do Copilot. Copie o valor de SkuId. É um GUID como 184efa21-94c3-4e26-8e13-2b50e88f0e5f.
  3. Preparar o arquivo CSV
    Crie um arquivo CSV chamado CopilotUsers.csv com este conteúdo exato (substitua pelos nomes UPN reais):
    UserPrincipalName
    user1@contoso.com
    user2@contoso.com
    user3@contoso.com

    Salve o arquivo em C:\Scripts\CopilotUsers.csv.
  4. Executar o script de atribuição em lote
    Execute este script na mesma sessão do PowerShell:
    $users = Import-Csv -Path "C:\Scripts\CopilotUsers.csv"
    $skuId = "SEU-SKU-ID-AQUI"
    foreach ($user in $users) {
    $upn = $user.UserPrincipalName
    Set-MgUserLicense -UserId $upn -AddLicenses @{SkuId = $skuId} -RemoveLicenses @()
    Write-Host "Licença atribuída a $upn" -ForegroundColor Green
    }

    Substitua SEU-SKU-ID-AQUI pelo GUID copiado no passo 2. O script percorre cada usuário no CSV e atribui a licença do Copilot. Mensagens de confirmação verdes aparecem para cada sucesso.
  5. Verificar as atribuições
    Execute Get-MgUser -UserId user1@contoso.com -Property AssignedLicenses | Select-Object -ExpandProperty AssignedLicenses. Verifique se o SkuId corresponde ao SKU do Copilot. Repita para alguns usuários do CSV para confirmar que todas as atribuições foram bem-sucedidas.

Atribuir Licenças do Copilot com Base em Associação a Grupo

Se preferir atribuir licenças a todos os membros de um grupo de segurança, use este método alternativo. Primeiro, obtenha o ID do objeto do grupo no centro de administração do Microsoft Entra. Depois execute:

$groupId = "ID-DO-SEU-GRUPO"
$skuId = "SEU-SKU-ID-AQUI"
$members = Get-MgGroupMember -GroupId $groupId -All
foreach ($member in $members) {
Set-MgUserLicense -UserId $member.Id -AddLicenses @{SkuId = $skuId} -RemoveLicenses @()
Write-Host "Licença atribuída a $($member.Id)" -ForegroundColor Green
}

Substitua os placeholders pelo ID do grupo e pelo SKU ID. Este método não requer um arquivo CSV e inclui automaticamente novos membros do grupo quando você executa o script novamente.

Erros Comuns na Atribuição em Lote de Licenças e Correções

“Insufficient privileges to complete the operation”

Este erro significa que sua conta não tem a função de administrador necessária. Faça login com uma conta de Administrador Global ou Administrador de Licenças. Para verificar sua função atual, execute (Get-MgContext).Scopes e verifique se User.ReadWrite.All aparece na lista.

“License could not be assigned because the user already has the license”

O script tenta atribuir uma licença que o usuário já possui. Para pular esses usuários, adicione uma condição if antes da atribuição. Primeiro, verifique as licenças atuais do usuário com Get-MgUserLicenseDetail -UserId $upn. Se o SKU ID já existir, pule esse usuário.

“The license SKU is not available in this tenant”

Você usou um SKU ID incorreto. Execute Get-MgSubscribedSku novamente e confirme o SkuPartNumber exato para o Copilot. Copie o valor SkuId correspondente. Se você não vir nenhum SKU do Copilot, compre licenças primeiro no centro de administração do Microsoft 365 em Cobrança > Comprar serviços.

“User not found”

O UserPrincipalName no CSV não corresponde a nenhum usuário no seu locatário. Abra o CSV e verifique cada endereço de e-mail. Use Get-MgUser -Filter "UserPrincipalName eq 'user@contoso.com'" para testar entradas individuais. Corrija quaisquer erros de digitação e execute o script novamente.

PowerShell em Lote vs Centro de Administração: Principais Diferenças

Item Método PowerShell em Lote Centro de Administração Microsoft 365
Tempo para atribuir 500 licenças 2-5 minutos 30-60 minutos
Tratamento de erros Manual com blocos try-catch Tentativa automática para atribuições com falha
Entrada CSV ou grupo Arquivo CSV ou ID do objeto do grupo Seleção manual de usuários ou upload de CSV
Log de auditoria Saída Write-Host ou exportação para arquivo Log de atividades integrado no centro de administração
Requer função de administrador Administrador Global ou Administrador de Licenças Administrador Global ou Administrador de Licenças

Agora você pode atribuir licenças do Copilot a centenas de usuários em minutos usando PowerShell. Comece com um pequeno grupo de teste de três usuários para verificar o SKU ID e a lógica do script. Depois, aumente para sua lista completa de usuários. Para atribuições recorrentes, como novos funcionários, salve o script como um arquivo .ps1 e execute-o semanalmente. Combine este método com licenciamento baseado em grupo no Microsoft Entra ID para automatizar a atribuição de licenças quando usuários entrarem ou saírem de grupos de segurança.