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
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
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
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.
Saiba mais sobre este assunto
12 Riscos Críticos de Segurança de Shadow AI que Sua Organização Precisa Monitorar em 2026
Leis de Privacidade de Dados por Estado: Abordagens Diferentes para a Proteção da Privacidade
Exemplo de Análise de Risco: Como Avaliar Riscos
O Triângulo da CIA e Sua Aplicação no Mundo Real
O que é Gerenciamento de Registros Eletrônicos?