Como exportar um relatório de licenças do Office 365 via PowerShell

Como exportar um relatório de licenças do Office 365 via PowerShell

Gostaria de tornar-se um especialista em Office 365? Então recomendo que conheça o Curso Online de Office 365 para administradores oferecido pela MW AcademyClique aqui e saiba mais,

Neste artigo iremos descrever como exportar um relatório de licenças do Office 365.
Conforme o crescimento das empresas a cada ano são adquiridas mais contas do Office 365, fazendo com que a necessidade de gerenciamento dessas licenças se torne cada vez mais complexa.
Através desse script podemos exportar um relatório em CSV de todos os usuários e suas respectivas licenças em uso no Office 365.

1) Salve o script abaixo como .ps1

# Define Hashtables for lookup
$Sku = @{
    “DESKLESSPACK” = “Office 365 (Plan K1)”
    “DESKLESSWOFFPACK” = “Office 365 (Plan K2)”
    “LITEPACK” = “Office 365 (Plan P1)”
    “EXCHANGESTANDARD” = “Office 365 Exchange Online Only”
    “STANDARDPACK” = “Office 365 (Plan E1)”
    “STANDARDWOFFPACK” = “Office 365 (Plan E2)”
    “ENTERPRISEPACK” = “Office 365 (Plan E3)”
    “ENTERPRISEPACKLRG” = “Office 365 (Plan E3)”
    “ENTERPRISEWITHSCAL” = “Office 365 (Plan E4)”
    “STANDARDPACK_STUDENT” = “Office 365 (Plan A1) for Students”
    “STANDARDWOFFPACKPACK_STUDENT” = “Office 365 (Plan A2) for Students”
    “ENTERPRISEPACK_STUDENT” = “Office 365 (Plan A3) for Students”
    “ENTERPRISEWITHSCAL_STUDENT” = “Office 365 (Plan A4) for Students”
    “STANDARDPACK_FACULTY” = “Office 365 (Plan A1) for Faculty”
    “STANDARDWOFFPACKPACK_FACULTY” = “Office 365 (Plan A2) for Faculty”
    “ENTERPRISEPACK_FACULTY” = “Office 365 (Plan A3) for Faculty”
    “ENTERPRISEWITHSCAL_FACULTY” = “Office 365 (Plan A4) for Faculty”
    “ENTERPRISEPACK_B_PILOT” = “Office 365 (Enterprise Preview)”
    “STANDARD_B_PILOT” = “Office 365 (Small Business Preview)”
    }
# The Output will be written to this file in the current working directory
$LogFile = “Office_365_Licenses.csv”
# Connect to Microsoft Online
Import-Module MSOnline
Connect-MsolService -Credential $Office365credentials
write-host “Connecting to Office 365…”
# Get a list of all licences that exist within the tenant
$licensetype = Get-MsolAccountSku | Where {$_.ConsumedUnits -ge 1}
# Loop through all licence types found in the tenant
foreach ($license in $licensetype)
{    
    # Build and write the Header for the CSV file
    $headerstring = “DisplayName,UserPrincipalName,AccountSku”
    foreach ($row in $($license.ServiceStatus))
    {
        # Build header string
        switch -wildcard ($($row.ServicePlan.servicename))
        {
            “EXC*” { $thisLicence = “Exchange Online” }
            “MCO*” { $thisLicence = “Lync Online” }
            “LYN*” { $thisLicence = “Lync Online” }
            “OFF*” { $thisLicence = “Office Profesional Plus” }
            “SHA*” { $thisLicence = “Sharepoint Online” }
            “*WAC*” { $thisLicence = “Office Web Apps” }
            “WAC*” { $thisLicence = “Office Web Apps” }
            default { $thisLicence = $row.ServicePlan.servicename }
        }
             $headerstring = ($headerstring + “,” + $thisLicence)
    }
     Out-File -FilePath $LogFile -InputObject $headerstring -Encoding UTF8 -append
    write-host (“Gathering users with the following subscription: ” + $license.accountskuid)
    # Gather users for this particular AccountSku
    $users = Get-MsolUser -all | where {$_.isLicensed -eq “True” -and $_.licenses[0].accountskuid.tostring() -eq $license.accountskuid}
    # Loop through all users and write them to the CSV file
    foreach ($user in $users) {
        write-host (“Processing ” + $user.displayname)
        $datastring = ($user.displayname + “,” + $user.userprincipalname + “,” + $Sku.Item($user.licenses[0].AccountSku.SkuPartNumber))
          foreach ($row in $($user.licenses[0].servicestatus)) {
            # Build data string
            $datastring = ($datastring + “,” + $($row.provisioningstatus))
            }
         Out-File -FilePath $LogFile -InputObject $datastring -Encoding UTF8 -append
    }
}            
write-host (“Script Completed. Results available in ” + $LogFile)

2) Execute o script e conecte-se ao tenant com suas credenciais administrativas;

3) Aguarde a conclusão do script;

4) O Arquivo Office_365_Licenses.csv será criado no diretório em que o arquivo .ps1 foi salvo.

5) Formate a planilha conforme sua preferencia. 

 * Wellington Agápto é Sócio Diretor da Edefense Segurança Digital, empresa com foco em Teste de Invasão e Análise de vulnerabilidades, Consultor UC em uma Partner Microsoft de Santa Catarina, Engenheiro Microsoft especializado em Unified Communications, Active Directory, Microsoft Lync Server e Exchange Server, Certificado Cisco CCNA, ITIL, MCP, MCSA, MCSE, MCSE Security, MCTS Lync, MCTS AD, MTA Lync 2013 Cisco, ITIL, MCSO, Security+, ISO 27002, Cobit, , Autor de artigos em sites especializados sobre tecnologia Microsoftsegurança da informação e empreendedorismo.

CONVERSATION

Inscreva-se