Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O recurso Executar Comando usa o agente da máquina virtual (VM) para executar scripts do PowerShell dentro de uma VM Windows do Azure. Use esses scripts para o gerenciamento geral de máquinas ou aplicativos. Eles podem ajudá-lo a diagnosticar e corrigir rapidamente problemas de rede e acesso à VM e colocar a VM em um bom estado.
Benefícios
Acesse as máquinas virtuais de várias maneiras. O recurso Executar Comando pode executar scripts nas máquinas virtuais remotamente usando o agente de VM. Use Executar Comando por meio do portal do Azure, da API REST, ou do PowerShell para VMs do Windows.
Esse recurso é útil em todos os cenários em que você deseja executar um script em uma máquina virtual. É uma das únicas maneiras de solucionar problemas e corrigir uma máquina virtual que não tem a porta RDP ou SSH aberta devido à configuração imprópria da rede ou do usuário administrativo.
Pré-requisitos
Sistemas Operacionais Windows com Suporte
| Versão do sistema operacional | x64 | ARM64 |
|---|---|---|
| Windows 10 | Com suporte | Com suporte |
| Windows 11 | Com suporte | Com suporte |
| Windows Server 2016 | Com suporte | Com suporte |
| Windows Server 2016 Core | Com suporte | Com suporte |
| Windows Server 2019 | Com suporte | Com suporte |
| Windows Server 2019 Core | Com suporte | Com suporte |
| Windows Server 2022 | Com suporte | Com suporte |
| Windows Server 2022 Core | Com suporte | Com suporte |
| Windows Server 2022 Azure Edition | Com suporte | Com suporte |
| Windows Server 2025 | Com suporte | Com suporte |
| Windows Server 2025 Core | Com suporte | Com suporte |
| Windows Server 2025 Azure Edition | Com suporte | Com suporte |
Restrições
As seguintes restrições se aplicam ao usar o recurso Executar Comando:
- A saída está limitada aos últimos 4.096 bytes.
- O tempo mínimo para executar um script é de cerca de 20 segundos.
- Os scripts são executados como sistema no Windows.
- É possível executar um script por vez.
- Scripts que solicitam informações (modo interativo) não têm suporte.
- Não é possível cancelar um script em execução.
- O tempo máximo que um script pode ser executado é 90 minutos. Depois disso, ele atingirá o tempo limite.
- A conectividade de saída da VM é necessária para retornar os resultados do script.
- Não é recomendável executar um script que causará uma parada ou atualização do Agente de VM. Isso pode deixar a extensão no estado Em transição, levando a um tempo limite.
Observação
Para funcionar corretamente, Executar Comando requer conectividade (porta 443) a endereços IP públicos do Azure. Se a extensão não tiver acesso a esses pontos de extremidade, os scripts poderão ser executados com êxito, mas não retornarão os resultados. Se você estiver bloqueando o tráfego na máquina virtual, poderá usar marcas de serviço para permitir o tráfego para os endereços IP públicos do Azure usando a marca AzureCloud.
O recurso Executar Comando não funcionará se o status do agente de VM for NÃO ESTÁ PRONTO. Verifique o status do agente nas propriedades da VM no portal do Azure.
Comandos disponíveis
Esta tabela mostra a lista de comandos disponíveis para VMs Windows. Use o comando RunPowerShellScript para executar qualquer script personalizado que desejar. Quando você estiver usando a CLI do Azure ou o PowerShell para executar um comando, o valor fornecido para o parâmetro --command-id ou -CommandId deverá ser um dos seguintes valores listados. Quando especifica um valor que não é um comando disponível, recebe este erro:
The entity was not found in this Azure location
Comandos disponíveis
| CommandID | Descrição | Mais informações: |
|---|---|---|
| RunPowerShellScript | Executa um script do PowerShell | |
| DisableNLA | Desabilita NLA (Autenticação no Nível da Rede). Você deve reiniciar a VM após a conclusão do script para que a alteração entre em vigor. O script em si não reinicia a VM. | readme |
| DisableWindowsUpdate | Desabilite atualizações automáticas por meio do Windows Update. | readme |
| EnableAdminAccount | Verifica se a conta de Administrador local está desabilitada e, se assim for, a habilita. | readme |
| EnableEMS | Habilite o EMS (Serviços de Gerenciamento de Emergência) para permitir a conexão de console serial em cenários de solução de problemas. | readme |
| EnableRemotePS | Ative o PowerShell remoto. | readme |
| EnableWindowsUpdate | Habilitar atualizações automáticas por meio do Windows Update. | readme |
| IMDSCertCheck | Verifica a integridade do IMDS e analisa os certificados atualmente instalados dos quais o IMDS depende. Se estiver ausente, mostrará detalhes adicionais e etapas de mitigação. | readme |
| IPConfig | Mostra informações detalhadas sobre o endereço IP, a máscara de sub-rede e o gateway padrão para cada adaptador associado ao TCP/IP. Para uso, consulte Executar scripts | readme |
| RDPSettings | Verifica as configurações do registro e de política de domínio. Sugere ações de política se o computador faz parte de um domínio ou modifica as configurações para valores padrão. | readme |
| ResetRDPCert | Remove o certificado SSL vinculado ao ouvinte RDP e restaura a segurança do ouvinte RDP como padrão. Use este script se houver algum problema com o certificado. | readme |
| SetRDPPort | Define o número de porta padrão ou especificado pelo usuário para conexões de Área de Trabalho Remota. Habilita a regra de firewall para acesso de entrada à porta. | readme |
| WindowsActivationValidation | Verifica o status atual da licença do Windows (ativado ou não) e o alerta será gerado se o computador não estiver ativado. | readme |
| WindowsGhostedNicValidationScript | Esse script verifica o registro do Windows em busca de adaptadores de rede em barramentos PCI e VMBUS, compara-os com adaptadores de rede atualmente ativos e identifica NICs fantasmas. Útil para solucionar problemas de rede ou limpar NICs antigas. | readme |
| WindowsUpgradeAssessmentValidation | Esse script foi projetado para avaliar a preparação de um computador Windows (cliente ou servidor) para uma atualização do sistema operacional in-loco, com considerações especiais para máquinas virtuais do Azure. Ele avalia a versão do sistema operacional, os caminhos de atualização com suporte, o espaço em disco do sistema e os recursos de segurança do Azure, como Inicialização Confiável, Inicialização Segura e vTPM. | readme |
Limitando o acesso ao recurso Executar Comando
Listar os comandos de execução ou mostrar os detalhes de um comando requer a permissão Microsoft.Compute/locations/runCommands/read no Nível de Assinatura. A função Leitor interna e os níveis superiores têm essa permissão.
A execução de um comando requer a permissão Microsoft.Compute/virtualMachines/runCommand/action. A função Colaborador de Máquina Virtual e os níveis superiores têm essa permissão.
Use uma das funções internas ou crie uma função personalizada para usar o recurso Executar Comando.
Usando comandos de execução
Observação
- Os valores de parâmetro podem ser do tipo cadeia de caracteres somente e o script é responsável por convertê-los para outros tipos, se necessário.
- Dependendo da modalidade usada para executar, algum escape pode ser necessário. Por exemplo, se você estiver executando o comando em uma sessão do PowerShell, o caminho para o arquivo de script precisará estar entre aspas.
- Os comandos internos não podem ser editados.
Acesse uma VM no portal do Azure e selecione Executar comando no menu à esquerda, em Operações. Você vê uma lista dos comandos disponíveis a serem executados na VM.
Escolha um comando a ser executado. Alguns dos comandos podem ter parâmetros de entrada obrigatórios ou opcionais. Para esses comandos, os parâmetros são apresentados como campos de texto para você fornecer os valores de entrada. Para cada comando, é possível exibir o script que está em execução expandindo Exibir script. RunPowerShellScript é diferente dos outros comandos, uma vez que permite a você fornecer seu próprio script personalizado.
Depois de escolher o comando, selecione Executar para executar o script. Quando o script for concluído, ele retornará a saída e os erros na janela de saída. A captura de tela a seguir mostra um exemplo de saída da execução do comando RDPSettings.
Solução de problemas do Windows para Ação Executar Comando
Ao solucionar problemas da ação executar comando para ambientes do Windows, confira o arquivo de log RunCommandExtension normalmente localizado no seguinte diretório: C:\WindowsAzure\Logs\Plugins\Microsoft.CPlat.Core.RunCommandWindows\<version>\RunCommandExtension.log, para obter mais detalhes.
Problemas conhecidos
A Extensão da Ação Executar Comando pode não ser executada no ambiente Windows, se o comando contiver caracteres reservados. Por exemplo:
Se o símbolo
&for passado no parâmetro do comando, como o script do PowerShell abaixo, ele poderá falhar.$paramm='abc&jj' Invoke-AzVMRunCommand -ResourceGroupName AzureCloudService1 -Name test -CommandId 'RunPowerShellScript' -ScriptPath C:\data\228332902\PostAppConfig.ps1 -Parameter @{"Prefix" = $paramm}Use o caractere
^para sair do&no argumento, como$paramm='abc^&jj'A extensão Executar Comando também pode não ser executada, se o comando a ser executado contiver "\n" no caminho, pois ela será tratada como uma nova linha. Por exemplo,
C:\Windows\notepad.execontém o\nno caminho do arquivo. Substitua\npor\Nno caminho.Verifique se você não tem nenhuma configuração personalizada na chave do Registro
HKLM\SOFTWARE\Microsoft\Command Processor\AutoRun(detalhada aqui). Isso pode ser disparado durante a instalação da Extensão RunCommand ou habilitar fases e causar um erro como 'XYZ não é reconhecido como um comando interno ou externo, programa operável ou arquivo em lotes'.
Remoção da Ação Executar Comando
Se precisar remover a extensão do Windows da ação Executar Comando, confira as etapas abaixo para o Azure PowerShell e a CLI:
Substitua rgname e vmname pelo nome do grupo de recursos relevante e pelo nome da máquina virtual nos exemplos de remoção a seguir.
Invoke-AzVMRunCommand -ResourceGroupName 'rgname' -VMName 'vmname' -CommandId 'RemoveRunCommandWindowsExtension'
Observação
Ao aplicar Executar Comando novamente, a extensão será instalada automaticamente. Use o comando de remoção de extensão para solucionar problemas relacionados à extensão.
Próximas etapas
Para conhecer outras maneiras de executar scripts e comandos remotamente em sua VM, consulte Executar scripts na VM do Windows.