Exportar um relatório de licença do Office 365 usando o PowerShell


Exportar um relatório de licença do Office 365 usando o PowerShell

 

Olá Amigos

 

À medida que mais e mais empresas migram para Microsoft Office 365, gerentes de TI precisam encontrar uma maneira de conciliar as suas licenças com base em nuvem com seus números de usuários reais. Afinal ninguém quer pagar por licenças que não estão sendo usadas!

Podemos coletar estas informações de maneira segura e organizada usando o PowerShell.

As seguintes informações que podemos coletar com este script:

DisplayName

UserPrincipalName

AccountSku

YAMMER_ENTERPRISE

RMS_S_ENTERPRISE

Office Profesional Plus

Lync Online

Office Web Apps

Sharepoint Online

Exchange Online

 

Para começar:

Você deve ter acesso ao console de administração “Tenant” do Office 365 para poder coletar os relatórios.

Instale o Módulo Windows Azure Active Directory para Windows PowerShell

Instale Microsoft Online Services Sign-In Assistant for IT Professionals RTW

 

Copiar o comando e colar no bloco de notas “NotePad”

# 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)

 

Como vai ficar no Bloco de Notas “NotePad”

Salve o arquivo como relatorio.ps1

 

Resultado do comando que executamos no Módulo Windows Azure Active Directory para Windows PowerShell

Comando que executamos gerou um relatório

Opção para quem prefere executar o comando usando o PowerShell ISE

Com o PowerShell ISE aberto, localize o comando que você salvou para ser aberto dentro do PowerShell ISE.

Resultado do relatório que criamos usando o PowerShell.

 

 

 

Sobre Julio Vaz

Microsoft Certifications Windows NT 4.0 Server Administrator Windows 2000 Server Administrator Windows Server 2003 Administrator Windows Server 2008 Administrator Microsoft Exchange Server 2000 Administrator Microsoft Exchange Server 2003 Administrator Microsoft Exchange Server 2007 Administrator Microsoft ISA Server 2000 Microsoft ISA Server 2004 Microsoft ISA Server 2006 Microsoft ForeFront Client Security Microsoft System Center Office 365 As a Microsoft Certified Systems Administrator I have experience building and maintaining Windows networks including Exchange, SQL Server, and SharePoint sites, in addition to proven customer relations and management expertise. My strengths include my ability to work independently and as a strong team member; to creatively manage projects, people and time; to attend to detail while keeping the bigger picture in sight; to motivate and communicate; to set goals and determine the steps necessary to meet those goals on time. I am an innovative self-starter and quick learner, with multi-faceted and unique experiences that enable me to relate to all types of people and to be flexible in varying environments. Especializações: Microsoft Isa Server, Forefront Threat Management Gateway 2010, Microsoft Exchange Server, Microsoft ForeFront, Microsoft System Center Data Protection Manager, System Center Virtual Machine Manager, Windows Server Active Directory, Blackberry Enterprise Server, Microsoft SharePoint, computer hardware, network support, operating systems, printers, servers, troubleshooting. Customer relations, budgeting, leadership, management, organization.
Esse post foi publicado em Não categorizado. Bookmark o link permanente.

4 respostas para Exportar um relatório de licença do Office 365 usando o PowerShell

  1. Pingback: Office 365 | Exportar Lista de Usuários e Licenças | Helio Júnior - Blog de TI

  2. Ingrid disse:

    Boa tarde Julio,
    Excelente explicação, relatório muito bem detalhado, obrigada !!!

    Curtir

  3. Valeu Júlio. O Script funcionou perfeitamente.
    Continua o mesmo desde o CRF!
    Grande abraço e obrigado!
    Thomas

    Curtir

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alteração )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alteração )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alteração )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alteração )

Conectando a %s