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

I'm a results-driven IT professional on consulting for integration projects with extensive experience in the engineering, administration and support. Direct experience with customer relationships, complex problem troubleshooting, implementation, optimization, technology advisor and training deliveries. Always interested in professional growth as well as high-quality service delivery. Specialties: Office 365. Windows Intune. Windows Azure. Microsoft Windows Server and Active Directory Microsoft Exchange Server 2000/2003/2007/2010, 2013 Windows Virtualization: Hyper-V Windows server 2008, 2008 R2, 2012, 2012 R2. Microsoft Isa Server 2000, Isa Server 2004, Isa Server 2006. Microsoft Forefront TMG 2010. Microsoft Project Server 2007/2010, 2013 Microsoft SharePoint 2007/2010, 2013 Documentation of the computing environment and services. Elaboration of technical procedures. Elaboration of proposals and projects. Management and training of support staff. Implementation and maintenance of security and backup policies. Implementation, administration and migration from Microsoft . Windows NT, Windows 2000 Server, Windows Server 2003 R2, Windows Server 2008 R2, Windows Server 2012 R2 Implementation and migration from Microsoft Office Communications Server 2007 Implementation and migration from Microsoft Lync Server 2010, 2013. Implementation and migration from Microsoft Exchange Server 2000, 2003 and 2007, 2010, 2013. Implementation and migration from Microsoft Isa Server 2000, 2004 and 2006, Forefront TMG Implementation Microsoft System Center 2012 R2 - SCCM, SCOM, DPM. Migration of servers and domains
Esse post foi publicado em Não categorizado. Bookmark o link permanente.

6 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 !!!

    Curtida

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

    Curtida

  4. David Santos disse:

    Julio, e se o usuário tiver mais de 1 licença?

    Curtida

Deixe uma resposta

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