Use scripts do PowerShell em dispositivos Windows 10/11 no Intune

Use a extensão de gerenciamento do Microsoft Intune para carregar scripts do PowerShell no Intune. Em seguida, use esses scripts em dispositivos Windows 10. A extensão de gerenciamento aprimora o MDM (gerenciamento de dispositivo móvel) do Windows e facilita a mudança para o gerenciamento moderno.

Importante

Para dar suporte a funcionalidades expandidas e correções de bugs, use .NET Framework 4.7.2 ou superior com a Extensão de Gerenciamento do Intune em clientes Windows. Se um cliente Windows continuar a usar uma versão anterior do .NET Framework, a Extensão de Gerenciamento do Intune continuará funcionando. O .NET Framework 4.7.2 está disponível de Windows Update a partir de 10 de julho de 2018, que está incluído no Win10 1809 (RS5) e mais recente. Observe que várias versões do .NET Framework podem coexistir em um dispositivo.

Esse recurso aplica-se a:

  • Windows 10 e posterior (exceto Windows 10 Home)

Observação

Depois que os pré-requisitos de extensão de gerenciamento do Intune são atendidos, a extensão de gerenciamento do Intune é instalada automaticamente quando um script do PowerShell ou aplicativo Win32, aplicativos da Microsoft Store, configurações de política de conformidade personalizada ou correções proativas são atribuídas ao usuário ou dispositivo. Para obter mais informações, confira os pré-requisitos de Extensão de Gerenciamento do Intune.

Os scripts do PowerShell, que não tem suporte oficial em dispositivos WPJ (Workplace Join), podem ser implantados em dispositivos WPJ. Especificamente, os scripts do PowerShell de contexto do dispositivo funcionam em dispositivos WPJ, mas os scripts do PowerShell de contexto do usuário são ignorados por design. Os scripts de contexto do usuário serão ignorados em dispositivos WPJ e não serão relatados ao centro de administração Microsoft Intune.

Mover para o gerenciamento moderno

A computação do usuário está passando por uma transformação digital. A TI tradicional se concentra em uma plataforma de dispositivo único, em dispositivos de negócios, em usuários que trabalham no escritório e em diferentes processos de TI reativos e manuais. O local de trabalho moderno usa muitas plataformas de propriedade do usuário e da empresa. Ele permite que os usuários trabalhem de qualquer lugar e fornece processos de TI automatizados e proativos.

Serviços de MDM, como o Microsoft Intune, podem gerenciar dispositivos móveis e de desktop que executam o Windows 10. O cliente de gerenciamento interno do Windows 10 se comunica com o Intune para executar tarefas de gerenciamento da empresa. Talvez você precise de algumas tarefas, como configuração avançada de dispositivo e solução de problemas. Para gerenciamento de aplicativo do Win32, você pode usar o recurso Gerenciamento de aplicativo Win32 em seus dispositivos com Windows 10.

A extensão de gerenciamento do Intune complementa os recursos de MDM internos do Windows 10. Você pode criar scripts do PowerShell para serem executados em dispositivos Windows 10. Por exemplo, crie um script do PowerShell que faça configurações avançadas do dispositivo. Em seguida, carregue o script no Intune, atribua o script a um grupo de Microsoft Entra e execute o script. Em seguida, você pode monitorar o status de execução do script do início ao fim.

Antes de começar

  • Quando os scripts estão definidos para o contexto de usuário e o usuário final tem direitos de administrador, por padrão, o script do PowerShell é executado sob o privilégio de administrador.

  • Os usuários finais não precisam entrar no dispositivo para executar scripts do PowerShell.

  • O agente de extensão de gerenciamento do Intune verifica após cada reinicialização se há novos scripts ou alterações. Depois de atribuir a política aos grupos de Microsoft Entra, o script do PowerShell é executado e os resultados da execução são relatados. Após a execução do script, ele não será executado novamente, a menos que haja uma alteração no script ou na política. Se o script falhar, o agente da extensão de gerenciamento do Intune tentará repeti-lo três vezes nos próximos três check-ins consecutivos do agente de extensão de gerenciamento do Intune.

  • Para os dispositivos compartilhados, o script do PowerShell será executado para cada novo usuário que se conectar.

  • Os scripts do PowerShell são executados antes da execução de aplicativos Win32. Ou seja, os scripts do PowerShell são executados primeiro. Depois, os aplicativos Win32 são executados.

  • Os scripts do PowerShell atingem o tempo limite após 30 minutos.

Importante

As melhores práticas de conscientização sobre privacidade ao usar scripts do PowerShell e scripts de correção incluem o seguinte:

  • Não inclua nenhum tipo de informação confidencial em scripts (como senhas)
  • Não inclua PII (Informações Pessoais Identificáveis) em scripts
  • Não use scripts para coletar PII de dispositivos
  • Sempre siga as melhores práticas de privacidade

Para obter informações relacionadas, consulte Correções.

Pré-requisitos

A extensão de gerenciamento do Intune tem os pré-requisitos a seguir. Depois que eles forem atendidos, a extensão de gerenciamento do Intune será instalada automaticamente quando um script do PowerShell ou um aplicativo Win32 for atribuído ao usuário ou ao dispositivo.

  • Dispositivos executando o Windows 10 versão 1607 ou posterior. Se o dispositivo foi registrado usando o registro automático em massa, os dispositivos precisam executar o Windows 10 versão 1709 ou posteriores. A extensão de gerenciamento do Intune não é compatível com o Windows 10 no modo S, já que o modo S não permite a execução de aplicativos que não fazem parte da loja.

  • Dispositivos ingressados no Microsoft Entra ID, incluindo:

  • Microsoft Entra ingressado no local de trabalho/registrado (WPJ): dispositivos registrados em Microsoft Entra ID, consulte Ingressar no Local de Trabalho como uma autenticação de segundo fator perfeita para obter mais informações. Normalmente, estes são dispositivos BYOD (Bring Your Own Device) que tiveram uma conta corporativa ou escolar adicionada por meio do trabalho ou da escola do Acesso de Contas>de Configurações>.

  • Dispositivos registrados no Intune, incluindo:

    • Dispositivos registrados em uma política de grupo (GPO). Veja Registrar um dispositivo Windows 10 automaticamente usando a Política de Grupo para obter orientação.

    • Dispositivos manualmente registrados no Intune, que é quando:

      • O registro automático no Intune está habilitado em Microsoft Entra ID. Os usuários entram em dispositivos usando uma conta de usuário local e ingressam manualmente no dispositivo para Microsoft Entra ID. Em seguida, eles entrarão no dispositivo usando sua conta Microsoft Entra.

      OU

      • O usuário entra no dispositivo usando sua conta Microsoft Entra e, em seguida, se registra no Intune.
    • Dispositivos cogerenciados que usam o Configuration Manager e o Intune. Ao instalar aplicativos Win32, verifique se a carga de trabalho Aplicativos está definida como Intune piloto ou Intune. Os scripts do PowerShell serão executados mesmo se a carga de trabalho Aplicativos estiver definida como Configuration Manager. A extensão de gerenciamento do Intune será implantada em um dispositivo quando você direcionar um script do PowerShell para o dispositivo. Lembre-se de que o dispositivo deve ser uma Microsoft Entra ID ou Microsoft Entra dispositivo híbrido ingressado. E ele precisa estar executando o Windows 10 versão 1607 ou posterior. Confira os seguintes artigos para obter diretrizes:

  • Os scripts implantados para clientes que executam a extensão de gerenciamento do Intune não serão executados se o relógio do sistema do dispositivo estiver excessivamente desajustado por meses ou anos. Depois que o relógio do sistema for atualizado, o script será executado conforme o esperado.

Observação

Para obter informações sobre o uso de VMs do Windows 10, confira Como usar máquinas virtuais do Microsoft 10 com o Intune.

Criar uma política de script e atribuí-la

  1. Entre no Centro de administração do Microsoft Intune.

  2. Selecione Scripts> de Dispositivos>Adicionar> Windows 10 e posterior.

    Captura de tela que mostra a criação de um novo script para um dispositivo do Windows 10.

  3. Em Noções Básicas, insira as seguintes propriedades e selecione Avançar:

    • Nome:insira um nome para o script do PowerShell.
    • Descrição: insira uma descrição para o script do PowerShell. Essa configuração é opcional, mas recomendada.
  4. Em Configurações de script, insira as seguintes propriedades e selecione Avançar:

    • Local do script: procure pelo script do PowerShell. O script deve ter menos de 200 KB (ASCII).

    • Execute este script usando as credenciais registradas: Selecione Sim (padrão) para executar o script com as credenciais do usuário no dispositivo. Escolha Não para executar o script no contexto do sistema. Muitos administradores escolhem Sim. Se for necessário executar o script no contexto do sistema, escolha Não.

    • Impor marcar de assinatura de script: selecione Sim (padrão) se o script precisar ser assinado por um editor confiável. Selecione Não se não houver um requisito para que o script seja assinado.

    • Executar o script em um host do PowerShell de 64 bits: selecione Sim para executar o script em um host do PowerShell de 64 bits em uma arquitetura de cliente de 64 bits. Selecione Não (padrão) para executar o script em um host do PowerShell de 32 bits.

      Ao definir como Sim ou Não, use a tabela a seguir para um comportamento de política novo ou existente:

      Executar o script no host de 64 bits Arquitetura do cliente Novo script Script de política existente
      Não 32 bits Host do PowerShell de 32 bits com suporte É executado somente no host do PowerShell de 32 bits, que funciona em arquiteturas de 32 e de 64 bits.
      Sim 64 bits Executa o script no host do PowerShell de 64 bits para arquiteturas de 64 bits. Quando executado em 32 bits, o script é executado em um host do PowerShell de 32 bits. Executa o script no host do PowerShell de 32 bits. Se essa configuração for alterada para 64 bits, o script será aberto (ele não será executado) em um host do PowerShell de 64 bits e relatará os resultados. Quando executado em 32 bits, o script é executado em um host do PowerShell de 32 bits.
  5. Selecione Marcas de escopo. As marcas de escopo são opcionais. Usar o RBAC (controle de acesso baseado em função) e marcas de escopo para TI distribuída traz mais informações.

    Para adicionar uma marca de escopo:

    1. Escolha Selecionar marcas> de escopo selecione uma marca de escopo existente na lista >Selecionar.

    2. Quando terminar, selecione Avançar.

  6. Selecione Atribuições>Selecionar grupos a serem incluídos. Uma lista existente de grupos de Microsoft Entra é mostrada.

    1. Selecione um ou mais grupos que contenham os usuários cujos dispositivos recebem o script. Escolha Selecionar. Os grupos escolhidos são mostrados na lista e receberão sua política.

      Observação

      Os scripts do PowerShell no Intune podem ser direcionados para Microsoft Entra grupos de segurança do dispositivo ou Microsoft Entra grupos de segurança do usuário. No entanto, ao direcionar dispositivos WPJ (ingressados no local de trabalho), somente Microsoft Entra grupos de segurança do dispositivo podem ser usados (o destino do usuário será ignorado). Para obter mais informações, confira Suporte do aplicativo Win32 para dispositivos WPJ (ingresso no local de trabalho).

    2. Selecione Avançar.

      Atribuir ou implantar o script do PowerShell em grupos de dispositivos no Microsoft Intune

  7. Em Examinar + adicionar, é mostrado um resumo das configurações definidas. Selecione Adicionar para salvar o script. Quando você seleciona Adicionar, a política é implantada nos grupos escolhidos.

Falha ao executar o script de exemplo

8h

  • Fazer ceck-in
  • Executar script ConfigScript01
  • Falha no script

9h

  • Fazer ceck-in
  • Executar script ConfigScript01
  • Falha de script (contagem de repetições = 1)

10h

  • Fazer ceck-in
  • Executar script ConfigScript01
  • Falha de script (contagem de repetições = 2)

11h

  • Fazer ceck-in
  • Executar script ConfigScript01
  • Falha de script (contagem de repetições = 3)

12h

  • Fazer ceck-in
  • Nenhuma tentativa adicional de execução do script ConfigScript01 é feita.
  • Se nenhuma alteração adicional for feita no script, nenhuma tentativa adicional de execução do script será feita.

Monitorar status de execução

Você pode monitorar o status de execução de scripts do PowerShell para usuários e dispositivos no portal.

No painel Scripts do PowerShell, selecione o script a ser monitorado, escolha Monitorar e, em seguida, escolha um dos seguintes relatórios:

  • Status do dispositivo
  • Status do usuário

Logs da extensão de gerenciamento do Intune

Os logs do agente no computador cliente geralmente estão em C:\ProgramData\Microsoft\IntuneManagementExtension\Logs. Você pode usar CMTrace.exe para exibir esses arquivos de log.

Captura de tela ou exemplo de logs do agente cmtrace no Microsoft Intune

Excluir um script

Em scripts do PowerShell, clique com o botão direito do mouse no script e selecione Excluir.

Problemas e resoluções comuns

Problema: a extensão de gerenciamento do Intune não baixa

Possíveis resoluções:

  • O dispositivo não é associado a Microsoft Entra ID. Verifique se os dispositivos atendem aos pré-requisitos (neste artigo).
  • Não há scripts do PowerShell nem aplicativos Win32 atribuídos aos grupos aos quais o usuário ou dispositivo pertence.
  • O dispositivo não consegue fazer check-in no serviço do Intune. Por exemplo, não há acesso à Internet, não há acesso aos WNS (Serviços de Notificação por Push do Windows) e assim por diante.
  • O dispositivo está no modo S. A extensão de gerenciamento do Intune não é compatível com dispositivos que executam no modo S.

Passos para ver se o dispositivo é registrado automaticamente:

  1. Acesse Configurações>Contas>Acessar conta corporativa ou de estudante.
  2. Selecione a conta > ingressada Informações.
  3. Em Relatório de Diagnóstico Avançado, selecione Criar Relatório.
  4. Abra o MDMDiagReport em um navegador da Web.
  5. Procure a propriedade MDMDeviceWithAAD. Se a propriedade existe, o dispositivo é registrado automaticamente. Se essa propriedade não existe, o dispositivo não foi registrado automaticamente.

Habilitar o registro automático do Windows 10 inclui as etapas para configurar o registro automático no Intune.

Problema: os scripts do PowerShell não são executados

Possíveis resoluções:

  • Os scripts do PowerShell não são executados em cada entrada. Eles são executados:

    • Quando o script é atribuído a um dispositivo

    • Se você alterar o script, carregue-o e atribua-o a um usuário ou dispositivo

      Dica

      A Extensão de gerenciamento do Microsoft Intune é um serviço que é executado no dispositivo, assim como qualquer outro serviço listado no aplicativo de Serviços (services.msc). Após a reinicialização de um dispositivo, esse serviço também pode reiniciar e verificar se há qualquer script do PowerShell atribuído com o serviço Intune. Se o serviço Extensão de Gerenciamento do Microsoft Intune for definido como Manual, o serviço poderá não ser reiniciado depois que o dispositivo for reinicializado.

  • Certifique-se de que os dispositivos estão unidos ao Microsoft Entra ID. Os dispositivos que estão ingressados apenas em seu local de trabalho ou organização (registrados em Microsoft Entra ID) não receberão os scripts.

  • Confirme se a extensão de gerenciamento do Intune foi baixada em %ProgramFiles(x86)%\Microsoft Intune Management Extension.

  • Scripts não são executados nos Surface Hubs nem no Windows 10 no modo S.

  • Examine os logs em busca de erros. Confira Logs da extensão de gerenciamento do Intune (neste artigo).

  • Para possíveis problemas de permissão, certifique-se que as propriedades do script do PowerShell estejam definidas como Run this script using the logged on credentials. Verifique também se o usuário conectado tem as permissões apropriadas para executar o script.

  • Para isolar problemas de script, faça o seguinte:

    • Examine a configuração de execução do PowerShell em seus dispositivos. Consulte a Política de execução do PowerShell para obter orientação.

    • Execute um script de exemplo usando a extensão de gerenciamento do Intune. Por exemplo, crie o diretório C:\Scripts e dê controle total a todos. Execute o seguinte script:

      write-output "Script worked" | out-file c:\Scripts\output.txt
      

      Se tiver êxito, output.txt deve ser criado e deve incluir o texto "Script worked" (O script funcionou).

    • Para testar a execução do script sem o Intune, execute os scripts na conta do Sistema usando a ferramenta psexec localmente:

      psexec -i -s

    • Caso o script relate que obteve êxito quando, na verdade, não obteve, é possível que seu serviço de antivírus tenha colocado o AgentExecutor na área restrita. O script a seguir sempre relata uma falha no Intune. Como um teste, você pode usar este script:

      Write-Error -Message "Forced Fail" -Category OperationStopped
      mkdir "c:\temp" 
      echo "Forced Fail" | out-file c:\temp\Fail.txt
      

      Se o script relatar que obteve êxito, confira AgentExecutor.log para confirmar a saída do erro. Se o script for executado, o comprimento deverá ser >2.

    • Para capturar os arquivos .error e .output, o snippet a seguir executa o script pelo por meio do AgentExecutor para PowerShell x86 (C:\Windows\SysWOW64\WindowsPowerShell\v1.0). Ele mantém os logs para sua análise. Lembre-se que a Extensão de Gerenciamento do Intune limpa os logs após a execução do script:

      $scriptPath = read-host "Enter the path to the script file to execute"
      $logFolder = read-host "Enter the path to a folder to output the logs to"
      $outputPath = $logFolder+"\output.output"
      $errorPath =  $logFolder+"\error.error"
      $timeoutPath =  $logFolder+"\timeout.timeout"
      $timeoutVal = 60000 
      $PSFolder = "C:\Windows\SysWOW64\WindowsPowerShell\v1.0"
      $AgentExec = "C:\Program Files (x86)\Microsoft Intune Management Extension\agentexecutor.exe"
      &$AgentExec -powershell  $scriptPath $outputPath $errorPath $timeoutPath $timeoutVal $PSFolder 0 0
      

Próximas etapas

Monitorar e solucionar problemas de seus perfis.