Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
O recurso Executar Comando usa o agente de máquina virtual (VM) para executar scripts do PowerShell em uma VM do Windows do Azure. Pode utilizar estes scripts para a gestão geral de computadores ou aplicações. Eles podem ajudá-lo a diagnosticar e corrigir rapidamente o acesso à VM e problemas de rede e fazer com que a VM volte a um bom estado.
Benefícios
Você pode acessar suas máquinas virtuais de várias maneiras. Executar comando pode executar scripts em suas máquinas virtuais remotamente usando o agente de VM. Você usa Executar Comando por meio do portal do Azure, API REST ou 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 incorreta do usuário administrativo ou de rede.
Pré-requisitos
Sistemas operacionais Windows suportados
| Versão do SO | x64 | ARM64 |
|---|---|---|
| Janelas 10 | Suportado | Suportado |
| Janelas 11 | Suportado | Suportado |
| Windows Server 2016 | Suportado | Suportado |
| Núcleo do Windows Server 2016 | Suportado | Suportado |
| Windows Server 2019 | Suportado | Suportado |
| Núcleo do Windows Server 2019 | Suportado | Suportado |
| Windows Server 2022 | Suportado | Suportado |
| Núcleo do Windows Server 2022 | Suportado | Suportado |
| Windows Server 2022 Azure Edition | Suportado | Suportado |
| Windows Server 2025 | Suportado | Suportado |
| Núcleo do Windows Server 2025 | Suportado | Suportado |
| Windows Server 2025 Azure Edition | Suportado | Suportado |
Restrições
Aplicam-se as seguintes restrições quando utiliza o Comando Executar:
- A saída está limitada aos últimos 4096 bytes.
- O tempo mínimo para executar um script é cerca de 20 segundos.
- Os scripts funcionam como Sistema no Windows.
- Pode ser executado um script de cada vez.
- Não há suporte para scripts que solicitam informações (modo interativo).
- Não pode cancelar um script em execução.
- O tempo máximo que um script pode ser executado é de 90 minutos. Depois disso, excede o limite de tempo.
- A conectividade de saída da VM é necessária para devolver os resultados do script.
- Não é recomendado executar um script que causará uma parada ou atualização do Agente de VM. Isso pode deixar a extensão em um estado de transição, levando a um tempo limite.
Nota
Para funcionar corretamente, o Run Command requer conectividade (porta 443) com 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 estiver a bloquear o tráfego na máquina virtual, pode utilizar etiquetas de serviço para permitir o tráfego para endereços IP públicos do Azure utilizando a AzureCloud etiqueta.
O recurso Executar comando não funcionará se o status do agente da VM NÃO estiver 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 do Windows. Você pode usar o comando RunPowerShellScript para executar qualquer script personalizado desejado. Quando você estiver usando a CLI do Azure ou o PowerShell para executar um comando, o valor fornecido para o --command-id parâmetro or -CommandId deve ser um dos seguintes valores listados. Quando você especifica um valor que não é um comando disponível, você recebe este erro:
The entity was not found in this Azure location
Comandos disponíveis
| ID de comando | Descrição | Mais informações |
|---|---|---|
| RunPowerShellScript | Executa um script do PowerShell | |
| DesativarNLA | Desabilita a Autenticação de Nível de Rede (NLA). 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 |
| DesativarWindowsUpdate | Desative as Atualizações Automáticas através do Windows Update. | readme |
| EnableAdminAccount | Verifica se a conta de Administrador local está desativada e, em caso afirmativo, se a habilita. | readme |
| HabilitarEMS | Habilite os Serviços de Gerenciamento de Emergência (EMS) para permitir a conexão do console serial em cenários de solução de problemas. | readme |
| EnableRemotePS | Habilite o PowerShell remoto. | readme |
| EnableWindowsUpdate | Habilite as Atualizações Automáticas através do Windows Update. | readme |
| IMDSCertCheck | Verifica a integridade do IMDS e, em seguida, analisa os certificados instalados atualmente e dos quais o IMDS depende. Se faltar, mostra detalhes adicionais e etapas de mitigação. | readme |
| IPConfig | Mostra informações detalhadas para o endereço IP, máscara de sub-rede e gateway padrão para cada adaptador vinculado ao TCP/IP. Para uso, consulte Executar scripts | readme |
| RDPSettings | Verifica as configurações do Registro e as configurações da diretiva de domínio. Sugere ações de política se a máquina fizer parte de um domínio ou modificar 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 para padrão. Use este script se vir 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 (ativada ou não) e o alerta é gerado se a máquina não estiver ativada. | readme |
| WindowsGhostedNicValidationScript | Este script analisa o registo do Windows à procura de adaptadores de rede em barramentos PCI e VMBUS, compara-os com adaptadores de rede atualmente ativos e identifica NICs fantasma. Útil para resolver problemas de rede ou limpar antigas placas de rede. | readme |
| WindowsUpgradeAssessmentValidation | Este script foi concebido para avaliar a prontidão de uma máquina Windows (cliente ou servidor) para uma atualização do sistema operativo no local, com considerações especiais para as Máquinas Virtuais Azure. Avalia a versão do sistema operativo, os caminhos de atualização suportados, o espaço em disco do sistema e as funcionalidades de segurança do Azure como Trusted Launch, Secure Boot e vTPM. | readme |
Limitar o acesso ao Comando Executar
Listar os comandos de execução ou mostrar os detalhes de um comando requer a Microsoft.Compute/locations/runCommands/read permissão no Nível de Assinatura. A função de leitor interna e os níveis superiores têm essa permissão.
A execução de um comando requer a Microsoft.Compute/virtualMachines/runCommand/action permissão. A função de Colaborador de Máquina Virtual e os níveis superiores têm essa permissão.
Você pode usar uma das funções internas ou criar uma função personalizada para usar o Comando Executar.
Utilização de Comandos de Execução
Nota
- Os valores de parâmetro podem ser apenas do tipo string e o script é responsável por convertê-los em outros tipos, se necessário.
- Dependendo de qual modalidade é usada para executar, algumas fugas podem ser necessárias. Por exemplo, se você estiver executando o comando em uma sessão do PowerShell, o caminho para o arquivo de script precisará ter aspas.
- Os comandos internos não são editáveis.
Vá para uma VM no portal do Azure e selecione Executar comando no menu à esquerda, em Operações. Você verá uma lista dos comandos disponíveis para serem executados na VM.
Escolha um comando para executar. Alguns dos comandos podem ter parâmetros de entrada opcionais ou necessários. Para esses comandos, os parâmetros são apresentados como campos de texto para você fornecer os valores de entrada. Para cada comando, você pode exibir o script que está sendo executado expandindo View script. RunPowerShellScript é diferente dos outros comandos, porque permite que você forneça seu próprio script personalizado.
Depois de escolher o comando, selecione Executar para executar o script. Depois que o script termina, ele retorna a saída e quaisquer 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 Action Run Command Windows
Ao solucionar o comando run action para ambientes Windows, consulte 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 Action Run Command pode falhar ao 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 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 escapar do&no argumento, como$paramm='abc^&jj'A extensão Executar Comando também pode falhar na execução se o comando a ser executado contiver "\n" no caminho, pois será tratado como uma nova linha. Por exemplo,
C:\Windows\notepad.execontém o\nno caminho do arquivo. Considere substituir\npor\Nno seu caminho.Certifique-se de que não tem qualquer definição personalizada na chave
HKLM\SOFTWARE\Microsoft\Command Processor\AutoRunde registo (detalhada aqui). Isso pode ser acionado durante as fases de instalação ou habilitação da extensão RunCommand e causar um erro como "XYZ não é reconhecido como um comando interno ou externo, programa operável ou arquivo em lotes".
Ação Executar Remoção de Comando
Se precisar remover a extensão do comando action run do Windows, consulte 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'
Nota
Quando você aplica um Run Command novamente, a extensão será instalada automaticamente. Você pode usar o comando extension removal para solucionar quaisquer problemas relacionados à extensão.
Próximos passos
Para saber mais sobre outras maneiras de executar scripts e comandos remotamente em sua VM, consulte Executar scripts em sua VM do Windows.