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
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?
Análise de Risco Quantitativa: Expectativa de Perda Anual