Exibir usuários do Microsoft 365 licenciados e não licenciados com o PowerShell

Esse artigo se aplica ao Microsoft 365 Enterprise e ao Office 365 Enterprise.

As contas de usuário em sua organização do Microsoft 365 podem ter algumas, todas ou nenhuma das licenças disponíveis atribuídas a elas nos planos de licenciamento disponíveis em sua organização. Você pode usar o PowerShell para o Microsoft 365 para localizar rapidamente os usuários licenciados e não licenciados em sua organização.

Usar o SDK do Microsoft Graph PowerShell

Primeiro, conecte-se ao locatário do Microsoft 365.

Ler propriedades do usuário, incluindo detalhes da licença, requer o escopo de permissão User.Read.All ou uma das outras permissões listadas na página de referência 'Obter um usuário' API do Graph.

O escopo de permissão Organization.Read.All é necessário para ler as licenças disponíveis no locatário.

Connect-Graph -Scopes User.Read.All, Organization.Read.All

Para exibir os detalhes da licença de uma conta de usuário específica, execute o seguinte comando:

Get-MgUserLicenseDetail -UserId "<user sign-in name (UPN)>"

Por exemplo:

Get-MgUserLicenseDetail -UserId "belindan@litwareinc.com"

Para exibir a lista de todas as contas de usuário em sua organização que NÃO foram atribuídas a nenhum dos seus planos de licenciamento (usuários não licenciados), execute o seguinte comando:

Get-MgUser -Filter 'assignedLicenses/$count eq 0' -ConsistencyLevel eventual -CountVariable unlicensedUserCount -All

Write-Host "Found $unlicensedUserCount unlicensed users."

Para exibir a lista de todas as contas de usuário membro (excluindo convidados) em sua organização que não receberam nenhum dos seus planos de licenciamento (usuários não licenciados), execute o seguinte comando:

Get-MgUser -Filter "assignedLicenses/`$count eq 0 and userType eq 'Member'" -ConsistencyLevel eventual -CountVariable unlicensedUserCount -All

Write-Host "Found $unlicensedUserCount unlicensed users (excluding guests)."

Para exibir a lista de todas as contas de usuário em sua organização que receberam qualquer um de seus planos de licenciamento (usuários licenciados), execute o seguinte comando:

Get-MgUser -Filter 'assignedLicenses/$count ne 0' -ConsistencyLevel eventual -CountVariable licensedUserCount -All -Select UserPrincipalName,DisplayName,AssignedLicenses | Format-Table -Property UserPrincipalName,DisplayName,AssignedLicenses

Write-Host "Found $licensedUserCount licensed users."

Para exibir a lista de todas as contas de usuário em sua organização que têm uma licença E5 atribuída, execute o seguinte comando:

$e5Sku = Get-MgSubscribedSku -All | Where SkuPartNumber -eq 'SPE_E5'

Get-MgUser -Filter "assignedLicenses/any(x:x/skuId eq $($e5sku.SkuId) )" -ConsistencyLevel eventual -CountVariable e5licensedUserCount -All

Write-Host "Found $e5licensedUserCount E5 licensed users."

Use o PowerShell do Azure Active Directory para o módulo do gráfico

Primeiro, conecte-se ao locatário do Microsoft 365.

Para exibir a lista de todas as contas de usuário em sua organização que NÃO foram atribuídas a nenhum dos seus planos de licenciamento (usuários não licenciados), execute o seguinte comando:

Get-AzureAdUser | ForEach{ $licensed=$False ; For ($i=0; $i -le ($_.AssignedLicenses | Measure).Count ; $i++) { If( [string]::IsNullOrEmpty(  $_.AssignedLicenses[$i].SkuId ) -ne $True) { $licensed=$true } } ; If( $licensed -eq $false) { Write-Host $_.UserPrincipalName} }

Para exibir a lista de todas as contas de usuário em sua organização que receberam qualquer um de seus planos de licenciamento (usuários licenciados), execute o seguinte comando:

Get-AzureAdUser | ForEach { $licensed=$False ; For ($i=0; $i -le ($_.AssignedLicenses | Measure).Count ; $i++) { If( [string]::IsNullOrEmpty(  $_.AssignedLicenses[$i].SkuId ) -ne $True) { $licensed=$true } } ; If( $licensed -eq $true) { Write-Host $_.UserPrincipalName} }

Observação

Para listar todos os usuários em sua assinatura, use o Get-AzureAdUser -All $true comando.

Use o módulo Microsoft Azure Active Directory para Windows PowerShell

Primeiro, conecte-se ao locatário do Microsoft 365.

Para exibir a lista de todas as contas de usuário e seus status de licenciamento em sua organização, execute o seguinte comando no PowerShell:

Get-MsolUser -All

Observação

O PowerShell Core não dá suporte ao módulo Microsoft Azure Active Directory para Windows PowerShell módulo e cmdlets com Msol em seu nome. Para continuar usando esses cmdlets, você deve executá-los a partir do Windows PowerShell.

Para visualizar a lista de todas as contas de usuários não licenciados em sua organização, execute o seguinte comando:

Get-MsolUser -All -UnlicensedUsersOnly

Para visualizar a lista de todas as contas de usuários licenciados em sua organização, execute o seguinte comando:

Get-MsolUser -All | where {$_.isLicensed -eq $true}

Confira também

Gerenciar contas de usuário, licenças e grupos do Microsoft 365 com o PowerShell

Gerenciar o Microsoft 365 com o PowerShell

Introdução ao PowerShell para o Microsoft 365