/
/

Como usar a Microsoft Graph API com o Windows PowerShell para monitorar e gerenciar clientes do Microsoft 365

por Team Ninja
Using Microsoft Graph API with Windows PowerShell to Monitor and Manage Microsoft 365 Clients blog banner image

Resumo instantâneo

Esta postagem do blog NinjaOne oferece uma lista abrangente de comandos CMD básicos e um mergulho profundo nos comandos do Windows, com +70 comandos CMD essenciais para usuários iniciantes e avançados. Explicamos sobre comandos práticos de prompt de comando para gerenciamento de arquivos, navegação em diretórios, solução de problemas de rede, operações de disco e automação, tudo com exemplos reais para maximizar a produtividade. Seja para aprender comandos básicos CMD ou dominar ferramentas avançadas de CLI do Windows, este guia ajuda você a usar o prompt de comando com mais eficiência.

Pontos principais

  • A Microsoft Graph API é um endpoint REST unificado que dá acesso programático aos serviços do Microsoft 365, incluindo Intune, Microsoft Entra ID, Exchange Online e Teams.
  • MSPs e equipes de TI corporativas usam a Microsoft Graph API para monitorar a conformidade de dispositivos, auditar o uso de licenças, aplicar políticas automaticamente, criar fluxos de correção disparados por alertas e montar painéis de relatórios entre tenants.
  • Antes de se conectar ao Microsoft Graph PowerShell SDK, é preciso ter um tenant do Microsoft 365 com acesso de administrador global ou delegado, o SDK instalado com PowerShell 5.1 ou superior e os escopos de permissão adequados às operações pretendidas.
  • O status de conformidade, a lista de dispositivos não conformes e os detalhes de cada dispositivo podem ser obtidos com consultas Get-MgDeviceManagementManagedDevice; ações de limpeza e bloqueio remotos são disparadas com comandos Invoke-MgDeviceManagement.
  • As políticas enviadas pelo Microsoft Graph podem ser validadas no endpoint verificando HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PolicyManager\current\device\ no Editor do Registro do Windows; o status de registro do dispositivo é conferido com dsregcmd /status.
  • Proteja os tokens de autenticação do Microsoft Graph com a Política de Grupo Local, desativando o armazenamento de credenciais e restringindo a execução do PowerShell apenas a scripts assinados.

A Microsoft Graph API é um endpoint unificado que dá aos administradores acesso programático a vários serviços do Microsoft 365, como Intune, Microsoft Entra (antigo Azure AD), Exchange Online, Teams e muito mais, usando o Windows PowerShell.

Os casos de uso são muitos, principalmente em ambientes corporativos. A Microsoft Graph API serve para:

  • Monitorar conformidade e integridade de dispositivos
  • Acompanhar uso e atribuição de licenças
  • Automatizar o gerenciamento de políticas e grupos
  • Criar fluxos de alerta e correção
  • Gerar relatórios entre tenants para painéis de MSP

Pré-requisitos:

  • É necessário ter um tenant do Microsoft 365 com acesso de administrador global ou delegado.
  • É preciso registrar o Microsoft Graph no Microsoft Entra (antigo Azure AD).
  • Algumas ações podem exigir licenças do Intune e do Microsoft Entra Premium.
  • Você vai precisar de uma baseline de GPO para proteger os tokens de autenticação e garantir que a execução dos scripts seja segura.

Para uma visão geral rápida, assista ao nosso guia em vídeo: Como usar a Microsoft Graph API com o Windows PowerShell para monitorar e gerenciar clientes do Microsoft 365.

Como instalar o Microsoft Graph PowerShell SDK

Pré-requisitos:

  • O recomendado é usar o Windows PowerShell 7 ou superior. O Windows PowerShell 5.1 é o requisito mínimo. (Verifique a versão do seu PowerShell )
  • É preciso ter o .NET Framework 4.7.2 ou superior instalado.
  • O PowerShellGet deve estar atualizado para a versão mais recente. Para isso, digite Install-Module PowerShellGet no Windows PowerShell e pressione Enter.
  • A política de execução precisa estar definida como remote signed ou menos restritiva. Para conferir se a política está correta, digite Get-ExecutionPolicy no Windows PowerShell e pressione Enter. Para mudar a política de execução para remote signed, digite Set-ExecutionPolicy -ExecutionPolicy RemoteSigned e pressione Enter.

Passos:

  1. Abra o Menu Iniciar e procure por Windows PowerShell.
  2. Clique com o botão direito em Windows PowerShell > Executar como administrador.
  3. Digite Install-Module Microsoft.Graph -Scope CurrentUser -Repository PSGallery -Force e pressione Enter.

Observação: essa mudança vale apenas para o perfil de usuário atual. Para instalar o Microsoft Graph PowerShell SDK em todos os perfis, troque o -Scope para AllUsers.

  1. Confirme a instalação quando solicitado.

Como se conectar ao Microsoft Graph PowerShell SDK

  1. Digite Connect-MgGraph -Scopes "User.Read.All",”DeviceManagementManagedDevices.Read.All”,”Directory.Read.All” no Windows PowerShell e pressione Enter para conectar.

Observação: isso dá acesso ao Graph inteiro. Dá para ajustar as permissões conforme a necessidade, editando o que vem depois de -Scopes. Para ver todas as permissões disponíveis, digite Find-MgGraphCommand -command Get-MgGroup.

  1. Se já estiver conectado, siga para o próximo passo. Se não, siga as instruções na tela para fazer login.
  2. Também dá para usar Get-MgContext para obter detalhes específicos, como ID do cliente, ID do tenant, escopos consentidos e mais.

Observação: use -TenantID para acesso multi-tenant e -ClientID para aplicativos registrados.

Como obter informações de dispositivos e status de conformidade

Para listar todos os dispositivos gerenciados pelo Intune, digite este comando e pressione Enter:

Get-MgDeviceManagementManagedDevice |
Select DisplayName, ComplianceState, OperatingSystem

Para encontrar dispositivos não conformes nessa lista, digite este comando e pressione Enter:

Get-MgDeviceManagementManagedDevice |
Where-Object {$_.ComplianceState -ne "compliant"}

Também é possível localizar dispositivos específicos pelo nome:

Get-MgDeviceManagementManagedDevice -ManagedDeviceId <GUID>

Troque <GUID> pelo ID do dispositivo que está procurando.

Como monitorar atividade de usuários e licenciamento

Para listar todos os usuários com os respectivos detalhes de licença, digite este comando e pressione Enter:

Get-MgUser | Select-Object DisplayName, UserPrincipalName, AssignedLicenses

Para encontrar usuários sem licença, digite este comando e pressione Enter:

Get-MgUser | Where-Object { !$_.AssignedLicenses }
Obter atividade de login (requer AuditLog.Read.All):
Get-MgAuditLogSignIn -Top 50 | Select UserDisplayName, UserPrincipalName, Status, AppDisplayName

Como automatizar a correção e a aplicação de políticas

Se um dispositivo for perdido ou comprometido, apague os dados dele pelo Microsoft Graph digitando este comando e pressionando Enter:

Invoke-MgDeviceManagementManagedDeviceWipe -ManagedDeviceId <GUID>

Substitua <GUID> pelo ID do dispositivo perdido ou comprometido.

Para bloquear um dispositivo remotamente:

Invoke-MgDeviceManagementManagedDeviceRemoteLock -ManagedDeviceId <GUID>

Substitua <GUID> pelo ID do dispositivo perdido ou comprometido.

Para atribuir uma política de conformidade, digite este comando e pressione Enter:

New-MgDeviceManagementCompliancePolicyAssignment -CompliancePolicyId <PolicyID> -Target @{ “@odata.type” = “#microsoft.graph.groupAssignmentTarget”; “groupId” = “<EntraGroupId>” }

Troque <PolicyID> pelo ID da política que quer atribuir. Troque <EntraGroupId> pelo grupo que vai receber a política.

Esses comandos ajudam bastante na hora de configurar correções automáticas em ambientes diferentes. Também dá para dispará-los automaticamente quando o sistema recebe um alerta da ferramenta de gerenciamento de endpoints.

Como validar políticas no endpoint (Editor do Registro, Prompt de Comando)

Para confirmar se as políticas enviadas pelo Microsoft Graph foram aplicadas, verifique o Editor do Registro do Windows.

Por exemplo, acesse HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PolicyManager\current\device\ no Editor do Registro e veja se as políticas foram aplicadas (Defender, política de criptografia etc.).

Também dá para usar o Prompt de Comando para registrar o dispositivo em um MDM e acompanhar o status de perto.

  1. Abra o Prompt de Comando como administrador.
  2. Digite isto e pressione Enter: start ms-device-enrollment:?mode=mdm

Para verificar o status de ingresso/registro, digite: dsregcmd /status

Como proteger o uso de tokens com Políticas de Grupo Locais e controles no endpoint

Use Políticas de Grupo Locais para proteger os tokens de autenticação do Microsoft Graph e a automação em PowerShell nos dispositivos gerenciados. Siga estes passos:

  1. Abra o Editor de Política de Grupo Local.
  2. Vá para Configuração do Computador > Configurações do Windows > Configurações de Segurança > Políticas Locais > Opções de Segurança
  3. Localize Não permitir o armazenamento de senhas e credenciais para autenticação de rede e dê dois cliques.
  4. Defina como Ativado.
  5. Clique em Aplicar > OK.
  6. Vá para Configuração do Computador > Modelos Administrativos > Componentes do Windows > Windows PowerShell.
  7. Localize Ativar Execução de Script e dê dois cliques.
  8. Defina como Ativado.
  9. Abra o menu suspenso e selecione Permitir apenas scripts assinados.
  10. Clique em Aplicar > OK.

Outros pontos de atenção ao usar a Microsoft Graph API

  • Use o Graph Explorer para testar a API on-line, sem instalar nada nos dispositivos.
  • Aplique permissões de aplicativo para tarefas em segundo plano e scripts multi-tenant.
  • Adote limitação de taxa e lógica de repetição nos scripts de produção.
  • Use políticas de acesso condicional do Microsoft Entra ID para restringir o uso do Graph em dispositivos não gerenciados.

Solução de problemas da Microsoft Graph API

ProblemaCausas possíveisSoluções
O Microsoft Graph falha.Faltam permissões, ou seja, o tenant não tem autorização para executar aquele comando.Conceda as permissões adequadas a esse tenant. Outra opção é usar uma conta de administrador com permissões completas.
O dispositivo não aparece na consulta.O dispositivo não é gerenciado pelo Intune ou não está sincronizado corretamente.Verifique o registro no Microsoft Endpoint Management (MEM) e o status do dispositivo no Microsoft Entra (antigo AAD).
Você atingiu o limite de taxa da API.Há consultas simultâneas demais.Use o comando -Top e processamento em lotes.
Os valores de registro de uma política específica não aparecem.A política não foi aplicada.Valide o direcionamento de grupo e dispare uma sincronização para aplicar a mudança no dispositivo.

Serviços NinjaOne

NinjaOne complementa a Microsoft Graph API de várias formas:

Monitore os dispositivos gerenciados com a Microsoft Graph API

A Microsoft Graph API é uma ferramenta poderosa: dá aos administradores controle centralizado e automatizado das contas do Microsoft 365 da organização por meio do Windows PowerShell. Depois de instalar e conectar pelo PowerShell, use-a para monitorar usuários e a conformidade dos dispositivos, além de automatizar ações e atribuições de políticas.

Valide essas atribuições verificando o Editor do Registro do Windows e usando o Prompt de Comando. E vá além nos seus fluxos de trabalho com os recursos de automação e visibilidade do NinjaOne.

Artigos relacionados:

Guia de início rápido

O que NinjaOne faz com a Microsoft Graph API e o Windows PowerShell:

Integração com a Microsoft Graph API

NinjaOne oferece integração com a Microsoft Graph API e o PowerShell, principalmente para:

  1. Autenticação por entidade de serviço (SPA):
    • NinjaOne oferece autenticação por entidade de serviço para backups do Microsoft 365
    • Exige um administrador global na configuração inicial
    • Dá suporte a vários escopos e permissões para diferentes serviços do Microsoft 365
  2. Integração com PowerShell:
    • NinjaOne disponibiliza módulos e scripts de PowerShell para interagir com a API
    • Dá suporte ao fluxo de autorização OAuth 2.0
    • Traz scripts de exemplo para automatizar tarefas como:
      • Gerenciamento de vulnerabilidades
      • Geração de tokens
      • Tratamento de requisições de API

Pontos de atenção

  • A integração permite monitorar e gerenciar clientes do Microsoft 365
  • Dá suporte a operações como:
    • Backup e restauração
    • Gerenciamento de usuários
    • Obtenção de informações de dispositivos
    • Autorização e gerenciamento de tokens

FAQs

A Microsoft Graph API (pelo Microsoft Graph PowerShell SDK) é a interface atual e unificada de todos os serviços do Microsoft 365, com acesso a Intune, Entra ID, Exchange Online, Teams e SharePoint por meio de uma única API consistente. Já o Azure AD PowerShell (módulos AzureAD e MSOnline) era a abordagem antiga, voltada apenas ao gerenciamento de identidades e diretórios. Qualquer script ou automação que use os módulos AzureAD ou MSOnline precisa migrar para os equivalentes do Graph SDK antes de parar de funcionar no seu tenant.

Os escopos mínimos para gerenciar dispositivos do Intune pelo Microsoft Graph são DeviceManagementManagedDevices.Read.All para dados de conformidade e status somente leitura, DeviceManagementManagedDevices.ReadWrite.All para ações remotas (limpeza e bloqueio) e DeviceManagementConfiguration.ReadWrite.All para criar e atribuir políticas de conformidade. Para consultas de usuários e licenças, é preciso User.Read.All; para acessar os logs de auditoria de login, AuditLog.Read.All.

Sim. Use o parâmetro -TenantId em Connect-MgGraph para indicar o tenant do cliente ou registre um aplicativo multi-tenant no Microsoft Entra ID, com consentimento explícito dos clientes por uma URL de consentimento de administrador. Plataformas de RMM como NinjaOne também automatizam a execução de scripts do Microsoft Graph em todos os tenants gerenciados ao mesmo tempo, o que elimina a conexão manual cliente por cliente.

O Microsoft Graph PowerShell SDK encapsula a API REST do Microsoft Graph em cmdlets do PowerShell. O SDK cuida sozinho da autenticação, da renovação de tokens, da paginação e do tratamento de erros, o que facilita muito a vida de administradores de TI e MSPs.

Quando o limite de taxa da Graph API é ultrapassado, a API retorna 429 Too Many Requests com um cabeçalho Retry-After indicando quanto tempo esperar. Nos scripts de produção, implemente uma lógica de repetição que capture as respostas 429, leia o valor de Retry-After, aguarde o tempo indicado e tente de novo. Em operações em massa, use o parâmetro -Top para limitar o tamanho do resultado, a Batch API do Microsoft Graph (endpoint $batch) para juntar várias requisições em uma só chamada e distribua os horários de execução dos scripts entre os tenants, para que não rodem todos ao mesmo tempo.

Recomendados para você

Pronto para simplificar as partes mais difíceis da TI?