Como Gerar Relatório de Uso de Licenças no Microsoft 365 com PowerShell

Fala pessoal, tudo bem com vocês?
Se você trabalha administrando Microsoft 365, com certeza já passou pela situação de ter que descobrir quem está usando quais licenças — seja pra controle de custos, planejamento ou só pra entender o que realmente está sendo usado.
Esse script aqui vai salvar teu tempo (e tua paciência também rsrs).
O que esse script faz?
- Lista todos os usuários que possuem determinadas licenças específicas
- Mostra o nome de usuário, SKU da licença e o nome da licença
- Exporta tudo pra um arquivo
.csv
bonitinho - Tudo automatizado, sem sofrimento
O que você precisa pra rodar?
- Ter o módulo Microsoft.Graph instalado
- Ter permissão pra rodar consultas com
Directory.Read.All
- Uma conta com acesso de admin no Microsoft 365
Bora lá pro código:
#
.DESCRIPTION
Criar relatório de licenças usadas via PowerShell
#>
Install-Module -Name Microsoft.Graph -Force
Connect-MgGraph -Scopes "Directory.Read.All"
Get-MgSubscribedSku | Select-Object SkuId, SkuPartNumber
# Aqui você coloca as SKUs que quer rastrear
$skuid = @(
"f8a1db68-be16-40ed-86d5-cb42ce701560", # POWER_BI_PRO
"f30db892-07e9-47e9-837c-80727f46fd3d", # FLOW_FREE
"606b54a9-78d8-4298-ad8b-df6ef4481c80", # CCIBOTS_PRIVPREV_VIRAL
"c42b9cae-ea4f-4ab7-9717-81576235ccac", # DEVELOPERPACK_E5
"3f9f06f5-3c31-472c-985f-62d9c10ec167", # Power_Pages_vTrial_for_Makers
"8c4ce438-32a7-4ac5-91a6-e22ae08d9c8b", # RIGHTSMANAGEMENT_ADHOC
"5b631642-bd26-49fe-bd20-1daaa972ef80" # POWERAPPS_DEV
)
$users = Get-MgUser -All
$usersL= @()
foreach ($user in $users) {
$userslicenses = Get-MgUserLicenseDetail -UserId $user.Id
foreach ($licenca in $userslicenses) {
if ($skuid -contains $licenca.SkuId) {
$usersL += [PSCustomObject]@{
Nome = $user.UserPrincipalName
Licenca = $licenca.SkuId
NomeLicenca = $licenca.SkuPartNumber
}
}
}
}
$usersL | Export-Csv -Path "C:\Temp\LicencasUsuarios.csv"
Write-Host "Relatório gerado com sucesso: C:\Temp\LicencasUsuarios.csv" -ForegroundColor Green
Disconnect-Graph
Qual a parte boa aqui?
- Você não precisa sair catando usuário por usuário.
- Pode rodar o script sempre que quiser atualizar o relatório.
- O resultado vai direto pro C:\Temp\LicencasUsuarios.csv — se quiser, é só abrir no Excel.
Administrar sem automação é pedir pra sofrer, né? Script simples assim vira ouro no dia a dia.
Se curtiu, compartilha com teu time. E fica de olho aqui no blog — vem muito mais coisa útil por aí! 🚀