Compartilhar via


Por que você precisa usar o PowerShell para Microsoft 365

Esse artigo se aplica ao Microsoft 365 Enterprise e ao Office 365 Enterprise.

Com o centro de administração do Microsoft 365, pode gerir as suas contas e licenças de utilizador do Microsoft 365. Também pode gerir os seus serviços do Microsoft 365, como o Exchange Online, o Teams e o SharePoint. Se, em vez disso, utilizar o PowerShell para gerir estes serviços, pode e tirar partido do ambiente de linguagem de linha de comandos e scripts para obter velocidade, automatização e capacidades adicionais.

Observação

O módulo do Azure Active Directory está a ser substituído pelo SDK do PowerShell do Microsoft Graph. Você pode usar o Microsoft Graph SDK do PowerShell para acessar todas as APIs do Microsoft Graph. Para saber mais, confira Introdução ao SDK do PowerShell do Microsoft Graph. Alguns comandos do PowerShell para Microsoft 365 neste artigo foram atualizados para utilizar o Microsoft Graph PowerShell.

Este artigo mostra como utilizar o PowerShell para gerir o Microsoft 365 para:

  • Revelar informações adicionais que não pode ver no centro de administração do Microsoft 365

  • Configurar funcionalidades e definições apenas possível com o PowerShell

  • Realizar operações em massa

  • Filtrar dados

  • Imprimir ou guardar dados

  • Gerir entre serviços

Tenha em atenção que o PowerShell para Microsoft 365 é um conjunto de módulos para o Windows PowerShell, que é um ambiente de linha de comandos para plataformas e serviços baseados no Windows. Este ambiente cria uma linguagem de shell de comandos que pode ser expandida com módulos adicionais. Fornece uma forma de executar comandos ou scripts simples ou complexos. Por exemplo, depois de instalar os módulos do PowerShell para Microsoft 365 e ligar à sua subscrição do Microsoft 365, pode executar o seguinte comando para listar todas as caixas de correio de utilizador do Microsoft Exchange Online:

Get-Mailbox

Também pode obter a lista de caixas de correio utilizando o centro de administração do Microsoft 365, mas não é fácil contar os itens em todas as listas de todos os sites de todas as suas aplicações Web.

O PowerShell para Microsoft 365 foi concebido para o ajudar a gerir o Microsoft 365 e não para substituir o centro de administração do Microsoft 365. Os administradores têm de poder utilizar o PowerShell para o Microsoft 365 porque existem alguns procedimentos de configuração que só podem ser feitos através do PowerShell para comandos do Microsoft 365. Para estes casos, precisa de saber como:

  • Instale os módulos do PowerShell para Microsoft 365 (efetuados apenas uma vez para cada computador administrador).

  • Ligue-se à sua subscrição do Microsoft 365 (uma vez para cada sessão do PowerShell).

  • Recolha as informações necessárias para executar o PowerShell necessário para os comandos do Microsoft 365.

  • Execute o PowerShell para comandos do Microsoft 365.

Depois de aprender estas competências básicas, não tem de listar os utilizadores da sua caixa de correio através do comando Get-Mailbox . Também não tem de compreender como criar um novo comando, como o comando citado anteriormente, para contar todos os itens em todas as listas de todos os sites de todas as suas aplicações Web. A Microsoft e a comunidade de administradores podem ajudá-lo com essas tarefas, conforme necessário.

O PowerShell para Microsoft 365 pode revelar informações que não pode ver com o centro de administração do Microsoft 365

O centro de administração do Microsoft 365 apresenta informações muito úteis, mas não apresenta todas as informações possíveis que o Microsoft 365 armazena sobre utilizadores, licenças, caixas de correio e sites. Eis um exemplo para utilizadores e grupos no centro de administração do Microsoft 365:

Exemplo da apresentação de utilizadores e grupos no centro de administração do Microsoft 365.

Esta vista fornece as informações de que precisa em muitos casos. No entanto, há alturas em que precisa de mais. Por exemplo, o licenciamento do Microsoft 365 (e as funcionalidades do Microsoft 365 disponíveis para um utilizador) depende, em parte, da localização geográfica do utilizador. As políticas e funcionalidades que pode estender a um utilizador que vive nos Estados Unidos podem não ser as mesmas que as que pode estender a um utilizador na Índia ou na Bélgica. Siga estes passos no centro de administração do Microsoft 365 para determinar a localização geográfica de um utilizador:

  1. Clique duas vezes no Nome de exibição do usuário.

  2. No painel de apresentação de propriedades do utilizador, selecione os detalhes.

  3. Na apresentação de detalhes, selecione detalhes adicionais.

  4. Desloque-se até encontrar o cabeçalho País ou região:

    Exemplo das informações de região de um utilizador no centro de administração do Microsoft 365.

  5. Escreva o nome de exibição e localização do usuário em um pedaço de papel ou copie e cole no Bloco de notas.

Você deve repetir este procedimento para cada usuário. Se tiver muitos utilizadores, este processo pode ser entediante. Com o PowerShell, pode apresentar estas informações para todos os seus utilizadores através dos seguintes comandos.

Observação

O módulo do Azure Active Directory está a ser substituído pelo SDK do PowerShell do Microsoft Graph. Você pode usar o Microsoft Graph SDK do PowerShell para acessar todas as APIs do Microsoft Graph. Para saber mais, confira Introdução ao SDK do PowerShell do Microsoft Graph.

Primeiro, utilize uma conta de administrador do Microsoft Entra DC ou de Administrador de Aplicações na Cloud para ligar ao seu inquilino do Microsoft 365.

A obtenção de informações para um utilizador requer o âmbito de permissão User.ReadBasic.All ou uma das outras permissões listadas na página de referência da Graph API "Atribuir licença".

O âmbito de permissão Organization.Read.All é necessário para ler as licenças disponíveis no inquilino.

Observação

Os módulos Azure AD e MSOnline PowerShell foram preteridos a partir de 30 de março de 2024. Para saber mais, leia a atualização sobre substituição. Após essa data, o suporte para esses módulos é limitado à assistência de migração para o SDK do Microsoft Graph PowerShell e correções de segurança. Os módulos preteridos continuarão funcionando até 30 de março de 2025.

Recomendamos migrar para o Microsoft Graph PowerShell para interagir com o Microsoft Entra ID (anteriormente Azure AD). Para obter respostas para perguntas de migração comuns, consulte as perguntas frequentes sobre migração. Observação: as versões 1.0.x do MSOnline podem sofrer interrupções após 30 de junho de 2024.

Connect-MgGraph -Scopes "User.ReadBasic.All"
Get-MgUser -All -Property DisplayName, UsageLocation | Select DisplayName, UsageLocation

Eis um exemplo dos resultados:

DisplayName                               UsageLocation
-----------                               -------------
Bonnie Kearney                            GB
Fabrice Canel                             BR
Brian Johnson (TAILSPIN)                  US
Anne Wallace                              US
Alex Darrow                               US
David Longmuir                            BR

A interpretação deste comando do PowerShell é: Obtenha todos os utilizadores na subscrição atual do Microsoft 365 (Get-MgUser), mas apresente apenas o nome e a localização de cada utilizador (Selecione DisplayName, UsageLocation).

Uma vez que o PowerShell para Microsoft 365 suporta uma linguagem de shell de comandos, pode manipular ainda mais as informações obtidas pelo comando Get-MgUser . Por exemplo, talvez queira ordenar estes utilizadores pela respetiva localização, agrupando todos os utilizadores brasileiros, todos os utilizadores dos Estados Unidos em conjunto, etc. Eis o comando:

Get-MgUser -All -Property DisplayName, UsageLocation | Select DisplayName, UsageLocation | Sort UsageLocation, DisplayName

Eis um exemplo dos resultados:

DisplayName                                 UsageLocation
-----------                                 -------------
David Longmuir                              BR
Fabrice Canel                               BR
Bonnie Kearney                              GB
Alex Darrow                                 US
Anne Wallace                                US
Brian Johnson (TAILSPIN)                    US

A interpretação deste comando do PowerShell é: Obtenha todos os utilizadores na subscrição atual do Microsoft 365, mas apenas apresente o nome e a localização de cada utilizador e ordene-os primeiro pela respetiva localização e, em seguida, o respetivo nome (Sort UsageLocation, DisplayName).

Também pode utilizar filtragem adicional. Por exemplo, se você quiser ver informações sobre usuários baseados no Brasil, use este comando:

Get-MgUser -All -Property DisplayName, Country | Where-Object {$_.Country -eq "BR"} | Select DisplayName, Country 

Eis um exemplo dos resultados:

DisplayName                                           UsageLocation
-----------                                           -------------
David Longmuir                                        BR
Fabrice Canel                                         BR

A interpretação deste comando do PowerShell é: Obter todos os utilizadores na subscrição atual do Microsoft 365 cuja localização é Brasil (Onde {$_. UsageLocation -eq "BR"}) e, em seguida, apresenta o nome e a localização de cada utilizador.

Uma nota sobre domínios grandes

Se tiver um domínio grande com dezenas de milhares de utilizadores, experimentar alguns dos exemplos que mostramos neste artigo pode levar à limitação. Com base em fatores como o poder de computação e a largura de banda de rede disponível, pode estar a tentar fazer demasiado de uma só vez. As grandes organizações podem querer dividir algumas destas operações do PowerShell em dois comandos.

Por exemplo, o comando seguinte devolve todas as contas de utilizador e mostra o nome e a localização de cada:

Get-MgUser -All | Select DisplayName, UsageLocation

Isso funciona bem com domínios menores. No entanto, numa organização grande, poderá querer dividir essa operação em dois comandos: um comando para armazenar as informações da conta de utilizador numa variável e outro para apresentar as informações necessárias. Veja um exemplo:

$x = Get-MgUser -All -Property DisplayName, UsageLocation
$x | Select DisplayName, UsageLocation

A interpretação deste conjunto de comandos do PowerShell é:

  1. Obtenha todos os utilizadores na subscrição atual do Microsoft 365 e armazene as informações numa variável denominada $x ($x = Get-MgUser).
  2. Apresentar o conteúdo da variável $x, mas incluir apenas o nome e a localização de cada utilizador ($x | Selecione DisplayName, UsageLocation).

O Microsoft 365 tem funcionalidades que só pode configurar com o PowerShell para o Microsoft 365

O centro de administração do Microsoft 365 destina-se a fornecer acesso a tarefas administrativas comuns e úteis que se aplicam à maioria dos ambientes. Por outras palavras, o centro de administração do Microsoft 365 foi concebido para que o administrador típico possa realizar as tarefas de gestão mais comuns. No entanto, existem algumas tarefas que não podem ser feitas no centro de administração.

Por exemplo, o centro de administração do Skype para Empresas Online fornece algumas opções para criar convites de reunião personalizados:

Exemplo da exibição de convites de reunião personalizados no Centro de administração do Skype for Business Online.

Com essas configurações, você pode adicionar um toque de personalização e profissionalismo a convites de reunião. No entanto, existem mais definições de configuração de reuniões do que simplesmente criar convites de reunião personalizados. Por exemplo, por padrão, as reuniões permitem:

  • Usuários anônimos obterem entrada automática para cada reunião.

  • Participantes gravem a reunião.

  • Todos os usuários da sua organização serem designado como apresentadores quando eles entrarem na reunião.

Estas definições não estão disponíveis no centro de administração do Skype para Empresas Online. Pode controlá-los a partir do PowerShell para Microsoft 365. Eis um comando que desativa estas três definições:

Set-CsMeetingConfiguration -AdmitAnonymousUsersByDefault $False -AllowConferenceRecording $False -DesignateAsPresenter "None"

Observação

Para executar este comando, tem de instalar o Módulo do PowerShell do Skype para Empresas Online.

A interpretação deste comando do PowerShell é:

  1. Nas definições das novas reuniões do Skype para Empresas Online (Set-CsMeetingConfiguration), desative a possibilidade de os utilizadores anónimos entrarem automaticamente em reuniões (-AdmitAnonymousUsersByDefault $False).
  2. Desative a capacidade de os participantes gravarem reuniões (-AllowConferenceRecording $False).
  3. Não designe todos os utilizadores da sua organização como apresentadores (-DesignateAsPresenter "None").

Para restaurar estas predefinições (ativar as opções), execute este comando:

Set-CsMeetingConfiguration -AdmitAnonymousUsersByDefault $True -AllowConferenceRecording $True -DesignateAsPresenter "Company"

Também existem outros cenários semelhantes, razão pela qual os administradores devem saber como executar comandos do PowerShell para o Microsoft 365.

O PowerShell para Microsoft 365 é ótimo para operações em massa

As interfaces visuais, como o centro de administração do Microsoft 365, são mais valiosas quando tem uma única operação a fazer. Por exemplo, se precisar de desativar uma conta de utilizador, pode utilizar o centro de administração para localizar e desmarcar rapidamente uma caixa de verificação. Isto pode ser mais fácil do que executar uma operação semelhante no PowerShell.

No entanto, se tiver de alterar muitas coisas ou alguns itens selecionados num grande conjunto de outras coisas, o centro de administração do Microsoft 365 poderá não ser a melhor ferramenta. Por exemplo, digamos que tem de alterar o prefixo em milhares de números de telefone ou remover o utilizador específico Ken Myer de todos os seus sites do SharePoint. Como o faria no centro de administração do Microsoft 365?

No último exemplo, digamos que tem várias centenas de sites do SharePoint e não sabe quais são os quais Ken Meyer é membro. Teria de começar no centro de administração do Microsoft 365 e, em seguida, efetuar este procedimento para cada site:

  1. Selecione o URL do site.

  2. Na caixa de propriedades da coleção de sites , selecione a ligação Endereço do Web Site para abrir o site.

  3. No site, selecione Partilhar.

  4. Na caixa de diálogo Partilhar , selecione a ligação que mostra todos os utilizadores que têm permissões para o site:

    Exemplo de visualização dos membros de um site do SharePoint no Centro de administração do SharePoint.

  5. Na caixa de diálogo Partilhado Com , selecione Avançadas.

  6. Desloque-se para baixo na lista de utilizadores, localize e selecione Ken Myer (assumindo que tem permissões para o site) e, em seguida, selecione Remover Permissões de Utilizador.

Isto levaria muito tempo para várias centenas de sites.

A alternativa é executar o seguinte comando no PowerShell para Microsoft 365 para remover Ken Myer de todos os seus sites:

Get-SPOSite | ForEach {Remove-SPOUser -Site $_.Url -LoginName "kenmyer@litwareinc.com"}

Observação

Este comando requer que instale o módulo do PowerShell do SharePoint.

A interpretação deste comando do PowerShell é: Obtenha todos os sites do SharePoint na subscrição atual do Microsoft 365 (Get-SPOSite) e, para cada site, remova Ken Meyer da lista de utilizadores que podem aceder aos mesmos (ForEach {Remove-SPOUser -Site $_. URL -LoginName "kenmyer@litwareinc.com"}).

Dizemos ao Microsoft 365 para remover Ken Meyer de todos os sites, incluindo aqueles a que não tem acesso. Assim, os resultados mostrarão erros para os sites aos quais não tem acesso. Podemos utilizar uma condição adicional neste comando para remover Ken Meyer apenas dos sites que o têm na lista de inícios de sessão. No entanto, os erros devolvidos não causam danos aos próprios sites. Este comando pode demorar alguns minutos a ser executado em centenas de sites, em vez de horas de trabalho através do centro de administração do Microsoft 365.

Eis outro exemplo de operação em massa. Utilize este comando para adicionar Bonnie Kearney, uma nova administradora do SharePoint, a todos os sites na organização:

Get-SPOSite | ForEach {Add-SPOUser -Site $_.Url -LoginName "bkearney@litwareinc.com" -Group "Members"}

A interpretação deste comando do PowerShell é: Obtenha todos os sites do SharePoint na subscrição atual do Microsoft 365 e, para cada site, permita o acesso de Bonnie Kearney ao adicionar o nome de início de sessão ao grupo Membros do site (ForEach {Add-SPOUser -Site $_. Url -LoginName "bkearney@litwareinc.com" -Group "Members"}).

O PowerShell para Microsoft 365 é ótimo para filtrar dados

O centro de administração do Microsoft 365 fornece várias formas de filtrar os seus dados para localizar facilmente um subconjunto de informações direcionado. Por exemplo, o Exchange facilita a filtragem de praticamente qualquer propriedade da caixa de correio de um usuário. Por exemplo, eis a lista de caixas de correio para todos os utilizadores que vivem na cidade de Bloomington:

Exemplo de uma pesquisa avançada no centro de administração do Microsoft 365 para obter a lista de caixas de correio para todos os utilizadores que vivem na cidade de Bloomington.

O Centro de administração do Exchange também lhe permite combinar critérios de filtro. Por exemplo, pode encontrar as caixas de correio para todas as pessoas que vivem em Bloomington e trabalham no departamento financeiro.

No entanto, existem limitações ao que pode fazer no Centro de Administração do Exchange. Por exemplo, não podia encontrar facilmente as caixas de correio de pessoas que vivem em Bloomington ou San Diego, ou as caixas de correio para todas as pessoas que não vivem em Bloomington.

Pode utilizar o seguinte comando do PowerShell para Microsoft 365 para obter uma lista de caixas de correio para todas as pessoas que vivem em Bloomington ou San Diego:

Get-User | Where {$_.RecipientTypeDetails -eq "UserMailbox" -and ($_.City -eq "San Diego" -or $_.City -eq "Bloomington")} | Select DisplayName, City

Eis um exemplo dos resultados:

DisplayName                              City
-----------                              ----
Alex Darrow                              San Diego
Bonnie Kearney                           San Diego
Julian Isla                              Bloomington
Rob Young                                Bloomington

A interpretação deste comando do PowerShell é: Obtenha todos os utilizadores na subscrição atual do Microsoft 365 que tenham uma caixa de correio na cidade de San Diego ou Bloomington (Onde {$_. RecipientTypeDetails -eq "UserMailbox" - e ($_. City -eq "San Diego" ou $_. City -eq "Bloomington")}) e, em seguida, apresenta o nome e a cidade para cada (Selecione DisplayName, City).

E aqui está o comando para listar todas as caixas de correio para pessoas que vivem em qualquer lugar exceto Bloomington:

Get-User | Where {$_.RecipientTypeDetails -eq "UserMailbox" -and $_.City -ne "Bloomington"} | Select DisplayName, City

Eis um exemplo dos resultados:

DisplayName                               City
-----------                               ----
MOD Administrator                         Redmond
Alex Darrow                               San Diego
Allie Bellew                              Bellevue
Anne Wallace                              Louisville
Aziz Hassouneh                            Cairo
Belinda Newman                            Charlotte
Bonnie Kearney                            San Diego
David Longmuir                            Waukesha
Denis Dehenne                             Birmingham
Garret Vargas                             Seattle
Garth Fort                                Tulsa
Janet Schorr                              Bellevue

A interpretação deste comando do PowerShell é: Obtenha todos os utilizadores na subscrição atual do Microsoft 365 que tenham uma caixa de correio não localizada na cidade de Bloomington (Onde {$_. RecipientTypeDetails -eq "UserMailbox" e $_. City -ne "Bloomington"}) e, em seguida, apresenta o nome e a cidade para cada um.

Utilizar carateres universais

Também pode utilizar carateres universais nos filtros do PowerShell para corresponder a parte de um nome. Por exemplo, suponha que está à procura de uma conta de utilizador. Tudo o que se lembra é que o apelido do utilizador era Anderson ou talvez Henderson ou Jorgenson.

Pode localizar esse utilizador no centro de administração do Microsoft 365 com a ferramenta de pesquisa e realizar três pesquisas diferentes:

  • Uma para Mendes

  • Uma para Gonçalves

  • Uma para Gomes

Uma vez que os três nomes terminam em "filho", pode indicar ao PowerShell para apresentar todos os utilizadores cujo nome termina em "filho". Eis o comando:

Get-User -Filter '{LastName -like "*son"}'

A interpretação deste comando do PowerShell é: Obtenha todos os utilizadores na subscrição atual do Microsoft 365, mas utilize um filtro que apenas lista os utilizadores cujos apelidos terminam em "son" (-Filter '{LastName -like "*son"}'). O * significa qualquer conjunto de carateres, que são letras no apelido do utilizador.

O PowerShell para Microsoft 365 facilita a impressão ou a gravação de dados

O centro de administração do Microsoft 365 permite-lhe ver listas de dados. Eis um exemplo do centro de administração do Skype para Empresas Online a apresentar uma lista de utilizadores que foram ativados para o Skype para Empresas Online:

Exemplo do Centro de administração do Skype for Business Online exibindo uma lista de usuários que foram habilitados para o Skype for Business Online.

Para guardar essas informações num ficheiro, tem de colá-la num documento ou numa folha de cálculo do Microsoft Excel. Qualquer um dos casos pode exigir formatação adicional. Além disso, o centro de administração do Microsoft 365 não fornece uma forma de imprimir diretamente a lista apresentada.

Felizmente, pode utilizar o PowerShell não só para apresentar a lista, mas também para guardá-la num ficheiro que pode ser facilmente importado para o Excel. Eis um comando de exemplo para guardar dados de utilizador do Skype para Empresas Online num ficheiro de valores separados por vírgulas (CSV), que pode ser facilmente importado como uma tabela numa folha de cálculo do Excel:

Get-CsOnlineUser | Select DisplayName, UserPrincipalName, UsageLocation | Export-Csv -Path "C:\Logs\SfBUsers.csv" -NoTypeInformation

Eis um exemplo dos resultados:

Exemplo de uma tabela importada para uma folha de cálculo do Excel para dados de utilizador do Skype para Empresas Online que foram guardados num ficheiro de valores separados por vírgulas.

A interpretação deste comando do PowerShell é: Obter todos os utilizadores do Skype para Empresas Online na subscrição atual do Microsoft 365 (Get-CsOnlineUser); obtenha apenas o nome de utilizador, UPN e localização (Selecione DisplayName, UserPrincipalName, UsageLocation); e, em seguida, guarde essas informações num ficheiro CSV com o nome C:\Logs\SfBUsers.csv (Export-Csv -Path "C:\Logs\SfBUsers.csv" -NoTypeInformation).

Também pode utilizar opções para guardar esta lista como um ficheiro XML ou uma página HTML. Na verdade, com comandos adicionais do PowerShell, pode guardá-lo diretamente como um ficheiro do Excel, com qualquer formatação personalizada pretendida.

Também pode enviar a saída de um comando do PowerShell que apresenta uma lista diretamente para a impressora predefinida no Windows. Eis um comando de exemplo:

Get-CsOnlineUser | Select DisplayName, UserPrincipalName, UsageLocation | Out-Printer

O seu documento impresso ficará assim:

Exemplo de um documento impresso que foi a saída de um comando do PowerShell enviado diretamente para a impressora predefinida no Windows.

A interpretação deste comando do PowerShell é: Obter todos os utilizadores do Skype para Empresas Online na subscrição atual do Microsoft 365; obter apenas o nome de utilizador, UPN e localização; e, em seguida, envie essas informações para a impressora Predefinida do Windows (Out-Printer).

O documento impresso tem a mesma formatação simples que a apresentação na janela de comandos do PowerShell. Para obter uma cópia em disco rígido, basta adicionar | Fora da Impressora até ao fim do comando.

O PowerShell para Microsoft 365 permite-lhe gerir em todos os produtos de servidor

Os componentes que compõem o Microsoft 365 foram concebidos para funcionarem em conjunto. Por exemplo, suponha que adiciona um novo utilizador ao Microsoft 365 e especifica essas informações, como o departamento do utilizador e o número de telefone. Essas informações estarão então disponíveis se aceder às informações do utilizador em qualquer um dos serviços do Microsoft 365: Skype para Empresas Online, Exchange ou SharePoint.

No entanto, isto é para informações comuns que abrangem o conjunto de produtos. Normalmente, as informações específicas do produto, como informações sobre a caixa de correio do Exchange de um utilizador, não estão disponíveis no conjunto de aplicações. Por exemplo, as informações sobre se a caixa de correio de um utilizador está ativada ou não estão disponíveis apenas no centro de administração do Exchange.

Suponha que você queira fazer um relatório que mostre as seguintes informações sobre todos os seus usuários:

  • O nome de exibição do usuário

  • Se o utilizador está licenciado para o Microsoft 365

  • Se a caixa de correio do Exchange do usuário está habilitada

  • Se o usuário está habilitado para o Skype for Business online

Não pode produzir facilmente um relatório deste tipo no centro de administração do Microsoft 365. Em vez disso, teria de criar um documento separado para armazenar as informações, como uma folha de cálculo do Excel. Em seguida, obtenha todos os nomes de utilizador e informações de licenciamento do centro de administração do Microsoft 365, obtenha informações da caixa de correio a partir do Centro de administração do Exchange, obtenha informações do Skype para Empresas Online a partir do Centro de Administração do Skype para Empresas Online e, em seguida, combine essas informações.

A alternativa é utilizar um script do PowerShell para compilar o relatório por si.

O script de exemplo seguinte é mais complicado do que os comandos que viu até agora neste artigo. No entanto, mostra o potencial de utilizar o PowerShell para criar vistas de informações difíceis de obter. Eis o script para compilar e apresentar a lista de que precisa:

Connect-MgGraph -Scopes "User.ReadBasic.All"
$x = Get-MgUser -All

foreach ($i in $x)
    {
      $y = Get-Mailbox -Identity $i.UserPrincipalName
      $i | Add-Member -MemberType NoteProperty -Name IsMailboxEnabled -Value $y.IsMailboxEnabled

      $y = Get-CsOnlineUser -Identity $i.UserPrincipalName
      $i | Add-Member -MemberType NoteProperty -Name EnabledForSfB -Value $y.Enabled
    }

$x | Select DisplayName, IsLicensed, IsMailboxEnabled, EnabledforSfB

Eis um exemplo dos resultados:

DisplayName             IsLicensed   IsMailboxEnabled   EnabledForSfB
-----------             ----------   ----------------   --------------
Bonnie Kearney          True         True               True
Fabrice Canel           True         True               True
Brian Johnson           False        True               False
Anne Wallace            True         True               True
Alex Darrow             True         True               True
David Longmuir          True         True               True
Katy Jordan             False        True               False
Molly Dempsey           False        True               False

A interpretação deste script do PowerShell é:

  1. Obtenha todos os utilizadores na subscrição atual do Microsoft 365 e armazene as informações numa variável denominada $x ($x = Get-MgUser).
  2. Iniciar um ciclo que é executado por todos os utilizadores na variável $x (foreach ($i em $x)).
  3. Defina uma variável com o nome $y e armazene as informações da caixa de correio do utilizador na mesma ($y = Get-Mailbox -Identity $i.UserPrincipalName).
  4. Adicione uma nova propriedade às informações do utilizador denominadas IsMailBoxEnabled. Defina-o como o valor da propriedade IsMailBoxEnabled da caixa de correio do utilizador ($i | Add-Member -MemberType NoteProperty -Name IsMailboxEnabled -Value $y.IsMailboxEnabled).
  5. Defina uma variável com o nome $y e armazene as informações do Skype para Empresas Online do utilizador na mesma ($y = Get-CsOnlineUser -Identity $i.UserPrincipalName).
  6. Adicione uma nova propriedade às informações do utilizador denominadas EnabledForSfB. Defina-o como o valor da propriedade Ativado das informações do Skype para Empresas Online do utilizador ($i | Add-Member -MemberType NoteProperty -Name EnabledForSfB -Value $y.Enabled).
  7. Apresentar a lista de utilizadores, mas incluir apenas o respetivo nome, se são licenciados e as duas novas propriedades que indicam se a caixa de correio está ativada e se estão ativadas para o Skype para Empresas Online ($x | Selecione DisplayName, IsLicensed, IsMailboxEnabled, EnabledforSfB).

Confira também

Introdução ao Windows PowerShell para o Microsoft 365

Gerenciar contas de usuário, licenças e grupos do Microsoft 365 com o PowerShell

Usar o PowerShell do Windows para criar relatórios no Microsoft 365