Magic Quadrant™ para gerenciamento de acesso privilegiado 2025: Netwrix reconhecida pelo quarto ano consecutivo. Baixe o relatório.

Plataforma
Centro de recursosBlog
Dez comandos PowerShell mais úteis do Office 365

Dez comandos PowerShell mais úteis do Office 365

Sep 19, 2018

Usar o Windows PowerShell para gerenciar o Office 365 pode parecer estranho inicialmente. Afinal, soluções em nuvem prometem simplicidade e facilidade de uso — adjetivos raramente utilizados em conexão com o Windows PowerShell. Mas me acompanhe. Neste artigo, vou mostrar a você os dez cmdlets do PowerShell para Office 365 mais úteis para administradores de sistemas. Talvez, após ler estas instruções, você concorde que o PowerShell pode ser uma ferramenta valiosa, até mesmo para sistemas baseados na nuvem.

1. Conectando-se a uma instância do Office 365 com o PowerShell

Primeiro, precisamos instalar o módulo do Office 365 para o Windows PowerShell e conectar à instância do Office 365. Siga os seguintes passos:

1. Baixe e instale o Microsoft Online Services Sign-In Assistant for IT Professionals RTW.

2. Importe o módulo do PowerShell de Serviços Online para Microsoft Azure Active Directory e Office 365:

      Install-Module -Name AzureAD
Install-Module -Name MSOnline
      

3. Insira suas credenciais de administrador do Office 365:

      $Cred = Get-Credential
      

4. Crie uma sessão remota do PowerShell:

      $O365 = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $Cred -Authentication Basic -AllowRedirection
      

5. Importe os comandos da sessão para a sessão local do Windows PowerShell:

      Import-PSSession $O365
      

6. Conectar a todos os serviços do Office 365:

      Connect-MsolService –Credential $O365
      

Uma vez que importamos os módulos para o Windows PowerShell, estamos prontos para gerenciar nossa instância do Office 365.

2. Conectando-se ao Exchange Online e SharePoint Online com o PowerShell

Também podemos nos conectar separadamente ao Microsoft Exchange Online e ao Microsoft SharePoint Online. Conectar ao Exchange Online com o PowerShell é basicamente o mesmo que conectar ao Office 365:

      $Cred = Get-Credential

$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $Cred -Authentication Basic –AllowRedirection
      

Conectar-se ao SharePoint Online é um pouco diferente. Para gerenciar seu tenant do SharePoint Online, você primeiro precisa baixar e instalar o recurso SharePoint Online Management Shell. Em seguida, execute o seguinte script PowerShell:

      $admin="Admin@enterprise.onmicrosoft.com"
$orgname="enterprise"
$userCred = Get-Credential -UserName $admin -Message "Type the password."
Connect-SPOService -Url https://$orgname-admin.sharepoint.com -Credential $userCred
      

3. Obtendo uma lista dos cmdlets do PowerShell disponíveis para Office 365

Para obter uma lista de todos os Office 365 PowerShell commands disponíveis, precisamos executar o cmdlet Get-Command:

      Get-Command -module MSOnline
      
Image

Também podemos obter a lista de cmdlets para Azure Active Directory:

      Get-Command -module AzureAD
      

4. Obtendo uma lista de todos os usuários do Office 365 com PowerShell

Se você precisa fornecer uma lista de usuários e licenças do Office 365, use o cmdlet Get-MsolUser. Ele recuperará todos os usuários com uma licença válida no tenant do Office 365, juntamente com os parâmetros DisplayName, City, Department e ObjectID.

      Get-MsolUser | Select DisplayName, City, Department, ObjectID
      

Para ver o número de licenças de conta, você precisa executar o seguinte cmdlet:

      Get-MsolAccountSku
      

Para listar os serviços disponíveis, execute o seguinte script:

      Get-MsolAccountSku | select -ExpandProperty ServiceStatus
      
Image

5. Criando um novo usuário no Office 365 com PowerShell

Para criar um novo usuário, usamos o comando New-MsolUser:

      New-MsolUser -UserPrincipalName JSmith@enterprise.onmicrosoft.com -DisplayName "John Smith"  -FirstName “John” -LastName “Smith”
      

O sistema fornecerá os dados de senha e status de licença do usuário.

6. Removendo um usuário de todos os sites com PowerShell

Para remover um usuário de todos os sites de uma vez, usamos o seguinte comando:

      Get-SPOSite | ForEach {Remove-SPOUser -Site $_.Url -LoginName " JSmith@enterprise.onmicrosoft.com"}
      

7. Alterando uma senha no Office 365 com PowerShell

Se você precisa alterar a senha de uma conta, use o cmdlet Set-MsolUserPassword. Você pode especificar uma nova senha como no exemplo abaixo, ou omitir o parâmetro -NewPassword para que o sistema gere automaticamente uma senha aleatória.

      Set-MsolUserPassword -UserPrincipalName JSmith@Netwrixqcspa.onmicrosoft.com -NewPassword P@SSw0rd!
      

8. Gerenciando a associação de grupos no Office 365 com PowerShell

We can also manage Office 365 groups using PowerShell cmdlets. To retrieve a list of all groups in Office 365, simply use the command Get-MsolGroup. To add users to a group, use the Add-MsolGroupMember command:

      Add-MsolGroupMember -GroupObjectId 5b61d9e1-a13f-4a2d-b5ba-773cebc08eec -GroupMemberObjectId a56cae92-a8b9-4fd0-acfc-6773a5c1c767 -GroupMembertype user
      

GroupObjectId é o ID hexadecimal do grupo, que você pode obter a partir do comando Get-MsolGroup. GroupMemberObejctId é o ID do objeto do usuário, que você pode encontrar executando este comando:

      Get-MsolUser | Select ObjectID.
      

Para remover um usuário de um grupo, use o cmdlet Remove-MsoGroupMember.

9. Criando uma coleção de sites SharePoint com PowerShell

Também podemos criar uma coleção de sites SharePoint utilizando PowerShell:

      New-SPOSite -Url "https://enterprise.sharepoint.com/sites/NewSite" -Owner "JSmith@enterprise.onmicrosoft.com" -StorageQuota "100" -Title "New Site"
      

10. Criando relatórios no Office 365 com PowerShell

O PowerShell é uma ótima ferramenta para fazer diferentes relatórios. Aqui estão alguns relatórios do Office 365 úteis feitos via PowerShell:

  • Detalhes sobre todas as caixas de correio:
      Get-mailbox | get-MailboxStatistics
      
  • Uma lista de todas as caixas de correio que não foram acessadas nos últimos 30 dias:
      Get-Mailbox –RecipientType 'UserMailbox' | Get-MailboxStatistics | Sort-Object LastLogonTime | Where {$_.LastLogonTime –lt ([DateTime]::Now).AddDays(-30) } | Format-Table DisplayName, LastLogonTime
      
  • Um relatório sobre os remetentes e destinatários de maior volume:
      Get-MailTrafficTopReport
      
  • Um relatório sobre todos os grupos e seus membros:
      function Get-AllO365Members
{
    Try
    {   
     $O365Groups=Get-UnifiedGroup
        foreach ($O365Group in $O365Groups) 
        { 
            Write-Host "Group Membership: " $O365Group.DisplayName -ForegroundColor Green
            Get-UnifiedGroupLinks –Identity $O365Group.Identity –LinkType Members
            Write-Host
        } 
    }
    catch [System.Exception]
    {
        Write-Host -ForegroundColor Red $_.Exception.ToString()   
    } 
}
Get-AllO365Members
      

Observe que a maioria dos cmdlets de relatório foram descontinuados em janeiro de 2018 e substituídos pela nova MS Graph Reporting API. Portanto, alguns relatórios estão agora disponíveis apenas no Office 365 Security & Compliance Center.

Como você pode ver, o gerenciamento do Office 365 com o PowerShell é rápido e fácil, assim como no Microsoft Windows Server. Não se esqueça de auditar todas as alterações que você faz no seu ambiente do Office 365; isso ajudará você a solucionar problemas e se recuperar de incidentes mais rapidamente. Para aprender como configurar a auditoria nativa no seu ambiente do Office 365, dê uma olhada no nosso Exchange Online Auditing Quick Reference Guide e no Exchange Online Mailbox Auditing Quick Reference Guide. Se você deseja inteligência acionável sobre o que está acontecendo no seu ambiente do Office 365, juntamente com relatórios flexíveis, alertas proativos, pesquisa ao estilo Google e muito mais, solicite um teste gratuito do Netwrix Auditor for Office 365.

Compartilhar em

Saiba Mais

Sobre o autor

Asset Not Found

Jeff Melnick

Diretor de Engenharia de Sistemas

Jeff é um ex-Diretor de Engenharia de Soluções Globais na Netwrix. Ele é um blogueiro, palestrante e apresentador da Netwrix há muito tempo. No blog da Netwrix, Jeff compartilha lifehacks, dicas e truques que podem melhorar drasticamente sua experiência em administração de sistemas.