Usar scripts do PowerShell em dispositivos Windows no Intune

Use a extensão de gerenciamento do Microsoft Intune para carregar scripts do PowerShell no Intune. Em seguida, execute esses scripts em dispositivos Windows. A extensão de gerenciamento aprimora o MDM e facilita a mudança para o gerenciamento moderno.

Observação

Para obter informações sobre a extensão de gerenciamento do Intune para Windows, consulte Extensão de gerenciamento do Intune para Windows.

Antes de começar

  • Os scripts definidos para o contexto do usuário com direitos de administrador executam o PowerShell por padrão sob privilégio de administrador.

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

  • A 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 do 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, a extensão de gerenciamento de Intune repetirá o script três vezes nas próximas três marcar consecutivas de extensão de gerenciamento de Intune.

  • Os scripts do PowerShell atribuídos ao dispositivo são executados para cada novo usuário que entra, exceto em SKUs de várias sessões em que o usuário marcar está desabilitado.

  • 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 práticas recomendadas para conscientização de privacidade ao usar scripts do PowerShell e scripts de correção incluem:

  • Não inclua nenhum tipo de informação confidencial em scripts (como senhas)
  • Não inclua dados pessoais em scripts
  • Não use scripts para coletar dados pessoais de dispositivos
  • Sempre siga as práticas recomendadas de privacidade

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

Pré-requisitos

  • A extensão de gerenciamento do Intune é instalada automaticamente quando um aplicativo de script do PowerShell é atribuído ao usuário ou dispositivo. Para obter mais informações, consulte Extensão de gerenciamento do Intune para Windows.

Importante

Os scripts implantados em 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 desatualizado em meses ou anos. Depois que o relógio do sistema é atualizado, o script é executado conforme o esperado.

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

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

  2. Selecionar Dispositivos,>Scripts e correçõesScripts> de > plataformaAddWindows>10 e posterior.

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

  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 conectadas: 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 assinatura de script marcar: selecione Sim (padrão) se o script precisar ser assinado por um fornecedor 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 controle de acesso baseado em função e as marcas de escopo para a TI distribuída tem mais informações.

    Para adicionar uma marca de escopo:

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

    • Quando terminar, selecione Avançar.

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

    • 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 recebem sua política.

      Observação

      Os scripts do PowerShell no Intune podem ser direcionados para grupos de segurança de dispositivo do Microsoft Entra ou grupos de segurança de usuário do Microsoft Entra. No entanto, ao direcionar dispositivos WPJ (associados ao local de trabalho), somente grupos de segurança de dispositivo do Microsoft Entra podem ser usados (o destino do usuário é ignorado).

    • 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.

Cenário - Falha ao executar script

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 outra tentativa é feita para executar o script ConfigScript01.
  • Se nenhuma outra alteração for feita no script, nenhuma outra tentativa será feita para executar o script.

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

Observação

As exportações de status do dispositivo do centro de administração do Intune para scripts de plataforma agora usam a API de exportação do Intune e os nomes de coluna CSV se alinham com o esquema da API.

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: 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). Depois que um dispositivo for reinicializado, esse serviço poderá ser reiniciado e marcar se há scripts do PowerShell atribuídos com o serviço do Intune. Se o serviço de Extensão de Gerenciamento do Microsoft Intune estiver definido como Manual, o serviço poderá não reiniciar após a reinicialização do dispositivo.

  • Certifique-se de que os dispositivos estejam associados ao Microsoft Entra ID. Os dispositivos registrados apenas com seu local de trabalho ou organização no Microsoft Entra ID não recebem os scripts.

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

  • Os scripts não são executados em Surface Hubs ou Windows 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

    • Se o script relata que foi bem-sucedido, mas não foi realmente bem-sucedido, é possível que seu serviço antivírus esteja colocando o AgentExecutor. 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 deve 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
      

Problema: Por que os scripts estão em execução, embora o Windows não seja mais gerenciado?

Quando um dispositivo Windows com scripts atribuídos não é mais gerenciado, o IME não é removido imediatamente. O IME detecta que o Windows não é gerenciado no próximo check-in do marcar do IME (geralmente a cada 8 horas) e cancela as execuções de scripts. Enquanto isso, todos os scripts armazenados localmente poderiam ser executados. Quando o IME não consegue marcar, ele tenta fazer check-in novamente por até 24 horas (dispositivo ativo) e, em seguida, é removido do dispositivo Windows.

Próximas etapas

Monitorar e solucionar problemas de seus perfis.