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, você pode gerenciar suas contas e licenças de usuário do Microsoft 365. Você também pode gerenciar seus serviços do Microsoft 365, como Exchange Online, Teams e SharePoint. Se você usar o PowerShell para gerenciar esses serviços, poderá aproveitar o ambiente de linguagem de script e linha de comando para velocidade, automação e recursos adicionais.

Observação

O módulo do Azure Active Directory está sendo substituído pelo SDK do Microsoft Graph PowerShell. 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 usar o Microsoft Graph PowerShell.

Este artigo mostra como usar o PowerShell para gerenciar o Microsoft 365 para:

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

  • Configurar recursos e configurações só é possível com o PowerShell

  • Fazer operações em massa

  • Filtrar dados

  • Imprimir ou salvar dados

  • Gerenciar entre serviços

Tenha em mente que o PowerShell para Microsoft 365 é um conjunto de módulos para Windows PowerShell, que é um ambiente de linha de comando para serviços e plataformas baseados no Windows. Esse ambiente cria uma linguagem de shell de comando que pode ser estendida com módulos adicionais. Ele fornece uma maneira de executar comandos ou scripts simples ou complexos. Por exemplo, depois de instalar o PowerShell para módulos do Microsoft 365 e se conectar à sua assinatura do Microsoft 365, você poderá executar o seguinte comando para listar todas as caixas de correio do usuário para Microsoft Exchange Online:

Get-Mailbox

Você também pode obter a lista de caixas de correio usando o Centro de administração do Microsoft 365 mas contar os itens em todas as listas para todos os sites para todos os seus aplicativos Web não é fácil.

O PowerShell para Microsoft 365 foi projetado para ajudá-lo a gerenciar o Microsoft 365, não para substituir o Centro de administração do Microsoft 365. Os administradores precisam ser capazes de usar o PowerShell para o Microsoft 365 porque há alguns procedimentos de configuração que só podem ser feitos por meio do PowerShell para comandos do Microsoft 365. Para esses casos, você precisa saber como:

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

  • Conecte-se à sua assinatura do Microsoft 365 (uma vez para cada sessão do PowerShell).

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

  • Execute o PowerShell para comandos do Microsoft 365.

Depois de aprender essas habilidades básicas, você não precisará listar seus usuários de caixa de correio usando o comando Get-Mailbox . Você também não precisa entender como criar um novo comando como o comando citado anteriormente para contar todos os itens em todas as listas para todos os sites de todos os seus aplicativos Web. A Microsoft e a comunidade de administradores podem ajudá-lo com tarefas como necessárias.

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

O Centro de administração do Microsoft 365 exibe informações muito úteis, mas não exibe todas as informações possíveis que o Microsoft 365 armazena sobre usuários, licenças, caixas de correio e sites. Aqui está um exemplo para usuários e grupos no Centro de administração do Microsoft 365:

Exemplo da exibição de usuários e grupos no Centro de administração do Microsoft 365.

Essa exibição fornece as informações de que você precisa em muitos casos. No entanto, há momentos em que você precisa de mais. Por exemplo, o licenciamento do Microsoft 365 (e os recursos do Microsoft 365 disponíveis para um usuário) dependem, em parte, da localização geográfica do usuário. As políticas e recursos que você pode estender a um usuário que mora no Estados Unidos podem não ser iguais às que você pode estender a um usuário na Índia ou bélgica. Siga estas etapas no Centro de administração do Microsoft 365 para determinar a localização geográfica de um usuário:

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

  2. No painel de exibição de propriedades do usuário, selecione detalhes.

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

  4. Role até encontrar o título País ou região:

    Exemplo das informações da região para um usuário 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 você tiver muitos usuários, esse processo pode ser entediante. Com o PowerShell, você pode exibir essas informações para todos os usuários usando os comandos a seguir.

Observação

O módulo do Azure Active Directory está sendo substituído pelo SDK do Microsoft Graph PowerShell. 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, use um administrador Microsoft Entra DC, Administração de Aplicativo na Nuvem ou conta de administrador globalpara se conectar ao locatário do Microsoft 365.

Obter informações para um usuário requer o escopo de permissão User.ReadBasic.All ou uma das outras permissões listadas na página de referência 'Atribuir licença' API do Graph.

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

Observação

os módulos Azure AD e MSOnline PowerShell são 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é março de 2025.

Recomendamos migrar para o Microsoft Graph PowerShell para interagir com o Microsoft Entra ID (anteriormente Azure AD). Para perguntas comuns sobre migração, consulte as perguntas frequentes sobre migração. Nota: 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

Aqui está 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 usuários na assinatura atual do Microsoft 365 (Get-MgUser), mas exiba apenas o nome e o local para cada usuário (Selecione DisplayName, UseLocation).

Como o PowerShell para Microsoft 365 dá suporte a uma linguagem de shell de comando, você pode manipular ainda mais as informações obtidas pelo comando Get-MgUser . Por exemplo, talvez você queira classificar esses usuários por sua localização, agrupando todos os usuários brasileiros, todos os usuários Estados Unidos juntos e assim por diante. Aqui está o comando:

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

Aqui está 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 usuários na assinatura atual do Microsoft 365, mas exiba apenas o nome e o local para cada usuário e classifique-os primeiro pela localização e, em seguida, seu nome (Sort UseLocation, DisplayName).

Você também pode usar 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 

Aqui está um exemplo dos resultados:

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

A interpretação deste comando do PowerShell é: Obter todos os usuários na assinatura atual do Microsoft 365 cuja localização é o Brasil (Onde {$_. UseLocation -eq "BR"}) e, em seguida, exiba o nome e o local para cada usuário.

Uma nota sobre domínios grandes

Se você tiver um domínio grande com dezenas de milhares de usuários, tentar alguns dos exemplos que mostramos neste artigo poderá levar à limitação. Com base em fatores como poder de computação e largura de banda de rede disponível, você pode estar tentando fazer muito ao mesmo tempo. Grandes organizações podem querer dividir algumas dessas operações do PowerShell em dois comandos.

Por exemplo, o comando a seguir retorna todas as contas de usuário e mostra o nome e o local para cada um:

Get-MgUser -All | Select DisplayName, UsageLocation

Isso funciona bem com domínios menores. Mas em uma organização grande, talvez você queira dividir essa operação em dois comandos: um comando para armazenar as informações da conta de usuário em uma variável e outro para exibir 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 usuários na assinatura atual do Microsoft 365 e armazene as informações em uma variável chamada $x ($x = Get-MgUser).
  2. Exiba o conteúdo da variável $x, mas inclua apenas o nome e o local para cada usuário ($x | Selecione DisplayName, UseLocation).

O Microsoft 365 tem recursos que você 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. Em outras palavras, o Centro de administração do Microsoft 365 foi projetado para que o administrador típico possa executar as tarefas de gerenciamento mais comuns. Mas há algumas tarefas que não podem ser feitas no centro de administração.

Por exemplo, o centro de administração do Skype for Business 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. Mas há mais em configurações de configuração de reunião 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.

Essas configurações não estão disponíveis no centro de administração do Skype for Business Online. Você pode controlá-los do PowerShell para o Microsoft 365. Aqui está um comando que desabilita estas três configurações:

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

Observação

Para executar esse comando, você deve instalar o módulo Skype for Business Online do PowerShell.

A interpretação deste comando do PowerShell é:

  1. Nas configurações de novas reuniões do Skype for Business Online (Set-CsMeetingConfiguration), desabilite permitindo que usuários anônimos obtenham entrada automática em reuniões (-AdmitAnonymousUsersByDefault $False).
  2. Desabilite a capacidade dos participantes de gravar reuniões (-AllowConferenceRecording $False).
  3. Não designe todos os usuários da sua organização como apresentadores (-DesignateAsPresenter "None").

Para restaurar essas configurações padrão (habilitar as opções), execute este comando:

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

Há outros cenários semelhantes também, e é por isso que os administradores devem saber como executar o PowerShell para comandos do Microsoft 365.

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

Interfaces visuais como a Centro de administração do Microsoft 365 são mais valiosas quando você tem uma única operação a ser executada. Por exemplo, se você precisar desabilitar uma conta de usuário, poderá usar o centro de administração para localizar e limpar rapidamente uma caixa de seleção. Isso pode ser mais fácil do que executar uma operação semelhante no PowerShell.

Mas se você precisar mudar muitas coisas ou algumas coisas selecionadas em um grande conjunto de outras coisas, o Centro de administração do Microsoft 365 pode não ser a melhor ferramenta. Por exemplo, digamos que você precisa alterar o prefixo em milhares de números de telefone ou remover o usuário específico Ken Myer de todos os seus sites do SharePoint. Como você faria isso no Centro de administração do Microsoft 365?

Para o último exemplo, diga que você tem várias centenas de sites do SharePoint e não sabe de quais Ken Meyer é membro. Você teria que começar no Centro de administração do Microsoft 365 e, em seguida, executar este procedimento para cada site:

  1. Selecione a URL do site.

  2. Na caixa propriedades do conjunto de sites , selecione o link Endereço do Site da Web para abrir o site.

  3. No site, selecione Compartilhar.

  4. Na caixa de diálogo Compartilhar , selecione o link que mostra todos os usuários que têm permissões para o site:

    Exemplo de exibição dos membros de um site do SharePoint no Centro de Administração do SharePoint.

  5. Na caixa de diálogo Compartilhado com , selecione Avançado.

  6. Role para baixo a lista de usuários, localize e selecione Ken Myer (supondo que ele tenha permissões para o site) e selecione Remover permissões de usuário.

Isso 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

Esse comando exige que você instale o módulo do SharePoint PowerShell.

A interpretação deste comando do PowerShell é: Obtenha todos os sites do SharePoint na assinatura atual do Microsoft 365 (Get-SPOSite) e para cada site remova Ken Meyer da lista de usuários que podem acessá-lo (ForEach {Remove-SPOUser -Site $_. Url -LoginName "kenmyer@litwareinc.com"}).

Dizemos ao Microsoft 365 para remover Ken Meyer de todos os sites, incluindo aqueles aos quais ele não tem acesso. Portanto, os resultados mostrarão erros para os sites aos quais ele não tem acesso. Podemos usar uma condição adicional neste comando para remover Ken Meyer somente dos sites que o têm na lista de entrada. Mas os erros retornados não causam nenhum dano aos próprios sites. Esse comando pode levar alguns minutos para ser executado em centenas de sites, em vez de horas trabalhando no Centro de administração do Microsoft 365.

Aqui está outro exemplo de operação em massa. Use este comando para adicionar Bonnie Kearney, uma nova administradora do SharePoint, a todos os sites da 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 assinatura atual do Microsoft 365 e, para cada site, permita acesso a Bonnie Kearney adicionando seu nome de entrada ao grupo Membros do site (ForEach {Add-SPOUser -Site $_. Url -LoginName "bkearney@litwareinc.com" -Grupo "Membros"}).

O PowerShell para Microsoft 365 é ótimo em filtrar dados

O Centro de administração do Microsoft 365 fornece várias maneiras de filtrar 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, aqui está a lista de caixas de correio para todos os usuários que moram na cidade de Bloomington:

Exemplo de fazer uma pesquisa avançada no Centro de administração do Microsoft 365 para a lista de caixas de correio para todos os usuários que moram na cidade de Bloomington.

O centro de administração do Exchange também permite combinar critérios de filtro. Por exemplo, você pode encontrar as caixas de correio para todas as pessoas que moram em Bloomington e trabalham no departamento de Finanças.

Mas há limitações para o que você pode fazer no Centro de Administração do Exchange. Por exemplo, você não poderia encontrar tão 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.

Você pode usar o seguinte comando do PowerShell para Microsoft 365 para obter uma lista de caixas de correio para todas as pessoas que moram em Bloomington ou San Diego:

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

Aqui está 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 é: Obter todos os usuários na assinatura atual do Microsoft 365 que têm 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, exiba 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 moram em qualquer lugar, exceto Bloomington:

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

Aqui está 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 é: obter todos os usuários na assinatura atual do Microsoft 365 que têm uma caixa de correio não localizada na cidade de Bloomington (Onde {$_. RecipientTypeDetails -eq "UserMailbox" -e $_. City -ne "Bloomington"}) e, em seguida, exiba o nome e a cidade para cada um.

Usar curingas

Você também pode usar caracteres curinga em seus filtros do PowerShell para corresponder a parte de um nome. Por exemplo, suponha que você esteja procurando uma conta de usuário. Tudo o que você pode se lembrar é que o sobrenome do usuário era Anderson ou talvez Henderson ou Jorgenson.

Você pode rastrear esse usuário no Centro de administração do Microsoft 365 usando a ferramenta de pesquisa e realizando três pesquisas diferentes:

  • Uma para Mendes

  • Uma para Gonçalves

  • Uma para Gomes

Como todos esses três nomes terminam em "filho", você pode dizer ao PowerShell para exibir todos os usuários cujo nome termina em "filho". Aqui está o comando:

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

A interpretação deste comando do PowerShell é: Obtenha todos os usuários na assinatura atual do Microsoft 365, mas use um filtro que lista apenas os usuários cujos sobrenomes terminam em "filho" (-Filtrar '{LastName -like "*son"}'). O * significa qualquer conjunto de caracteres, que são letras no sobrenome do usuário.

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

O Centro de administração do Microsoft 365 permite exibir listas de dados. Aqui está um exemplo do centro de administração do Skype for Business Online que exibe uma lista de usuários habilitados para Skype for Business 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 salvar essas informações em um arquivo, você deve cole-as em um documento ou planilha do Microsoft Excel. Qualquer caso pode exigir formatação adicional. Além disso, o Centro de administração do Microsoft 365 não fornece uma maneira de imprimir diretamente a lista exibida.

Felizmente, você pode usar o PowerShell não só para exibir a lista, mas para salvá-la em um arquivo que pode ser facilmente importado para o Excel. Aqui está um comando de exemplo para salvar Skype for Business dados de usuário online em um arquivo CSV (valores separados por vírgulas), que pode ser facilmente importado como uma tabela em uma planilha do Excel:

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

Aqui está um exemplo dos resultados:

Exemplo de uma tabela importada para uma planilha do Excel para Skype for Business dados de usuário online que foram salvos em um arquivo de valores separados por vírgulas.

A interpretação deste comando do PowerShell é: obtenha todos os usuários do Skype for Business Online na assinatura atual do Microsoft 365 (Get-CsOnlineUser); obtenha apenas o nome de usuário, UPN e local (Selecione DisplayName, UserPrincipalName, UseLocation); e salve essas informações em um arquivo CSV chamado C:\Logs\SfBUsers.csv (Export-Csv -Path "C:\Logs\SfBUsers.csv" -NoTypeInformation).

Você também pode usar opções para salvar essa lista como um arquivo XML ou uma página HTML. Na verdade, com comandos adicionais do PowerShell, você pode salvá-lo diretamente como um arquivo do Excel, com qualquer formatação personalizada desejada.

Você também pode enviar a saída de um comando do PowerShell que exibe uma lista diretamente para a impressora padrão no Windows. Aqui está 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 padrão no Windows.

A interpretação deste comando do PowerShell é: Obter todos os usuários do Skype for Business Online na assinatura atual do Microsoft 365; obtenha apenas o nome de usuário, UPN e local; e envie essas informações para a impressora Padrão do Windows (Out-Printer).

O documento impresso tem a mesma formatação simples que a exibição na janela de comando do PowerShell. Para obter uma cópia impressa, basta adicionar | Out-Printer até o final do comando.

O PowerShell para Microsoft 365 permite gerenciar entre produtos de servidor

Os componentes que compõem o Microsoft 365 foram projetados para trabalhar juntos. Por exemplo, suponha que você adicione um novo usuário ao Microsoft 365 e especifique essas informações como o departamento do usuário e o número de telefone. Essas informações estarão disponíveis se você acessar as informações do usuário em qualquer um dos serviços do Microsoft 365: Skype for Business Online, Exchange ou SharePoint.

Mas isso é para informações comuns que abrangem o pacote de produtos. Informações específicas do produto, como informações sobre a caixa de correio do Exchange de um usuário, normalmente não estão disponíveis em todo o pacote. Por exemplo, informações sobre se a caixa de correio de um usuário está habilitada 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 usuário 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

Você não pode produzir facilmente esse relatório no Centro de administração do Microsoft 365. Em vez disso, você teria que criar um documento separado para armazenar as informações, como uma planilha do Excel. Em seguida, obtenha todos os nomes de usuário e informações de licenciamento do Centro de administração do Microsoft 365, obtenha informações da caixa de correio do centro de administração do Exchange, obtenha Skype for Business Informações online do Skype for Business Online Administração centralize e, em seguida, combine essas informações.

A alternativa é usar um script do PowerShell para compilar o relatório para você.

O script de exemplo a seguir é mais complicado do que os comandos que você viu até agora neste artigo. Mas, ele mostra o potencial de usar o PowerShell para criar exibições de informações difíceis de obter de outra forma. Aqui está o script para compilar e exibir a lista de que você 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

Aqui está 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 usuários na assinatura atual do Microsoft 365 e armazene as informações em uma variável chamada $x ($x = Get-MgUser).
  2. Inicie um loop que percorre todos os usuários na variável $x (foreach ($i em $x)).
  3. Defina uma variável chamada $y e armazene as informações da caixa de correio do usuário nela ($y = Get-Mailbox -Identity $i.UserPrincipalName).
  4. Adicione uma nova propriedade às informações do usuário chamada IsMailBoxEnabled. Defina-o como o valor da propriedade IsMailBoxEnabled da caixa de correio do usuário ($i | Add-Member -MemberType NoteProperty -Name IsMailboxEnabled -Value $y.IsMailboxEnabled).
  5. Defina uma variável chamada $y e armazene as informações do Skype for Business Online do usuário nela ($y = Get-CsOnlineUser -Identity $i.UserPrincipalName).
  6. Adicione uma nova propriedade às informações do usuário chamada EnableedForSfB. Defina-o como o valor da propriedade Habilitada das informações do Skype for Business Online do usuário ($i | Add-Member -MemberType NoteProperty -Name EnabledForSfB -Value $y.Enableed).
  7. Exiba a lista de usuários, mas inclua apenas seu nome, se eles estão licenciados e as duas novas propriedades que indicam se sua caixa de correio está habilitada e se eles estão habilitados para Skype for Business 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