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.
Usando os comandos do PowerShell para Comando de Execução de Máquina Conectada, você pode executar scripts ou comandos remotamente e com segurança em máquinas virtuais habilitadas para Arc sem se conectar diretamente a elas por meio do Protocolo de Área de Trabalho Remota ou SSH.
Este artigo fornece exemplos que usam vários comandos do PowerShell para ajudá-lo a entender como usar o PowerShell para executar scripts ou comandos em seu servidor habilitado para Arc.
Pré-requisitos
- A versão do agente de Máquina Conectada no servidor habilitado para Arc deve ser 1.33 ou superior.
Solicitações de exemplo do PowerShell
Os exemplos a seguir usam vários comandos do PowerShell para trabalhar com comandos Run em um servidor habilitado para Arc.
Executar um script em uma máquina
Este comando entrega o script à máquina, executa-o e devolve a saída capturada.
New-AzConnectedMachineRunCommand -ResourceGroupName "myRG" -MachineName "myMachine" -Location "eastus" -RunCommandName "RunCommandName" –SourceScript "echo Hello World!"
Observação
Você pode adicionar vários comandos no -SourceScript parâmetro. Use ; para separar cada comando.
Exemplo: –SourceScript "id; echo Hello World!"
Executar um script na máquina usando um arquivo de script no armazenamento
Este comando direciona o agente de Máquina Conectada para um URI de assinatura de acesso compartilhado (SAS) para um blob de armazenamento onde um script foi carregado e, em seguida, direciona o agente para executar o script e retornar a saída capturada.
New-AzConnectedMachineRunCommand -ResourceGroupName "MyRG0" -MachineName "MyMachine" -RunCommandName "MyRunCommand" -Location "eastus" -SourceScriptUri “< SAS URI of a storage blob with read access or public URI>”
Observação
O scriptUri é um URI de assinatura de acesso compartilhado (SAS) para o blob de armazenamento e deve fornecer acesso de leitura ao blob. Sugere-se um tempo de expiração de 24 horas para o URI SAS. Você pode gerar um URI SAS no portal do Azure usando opções de blobs ou token SAS usando New-AzStorageBlobSASToken. Se gerar token SAS usando New-AzStorageBlobSASToken, o formato URI SAS é: base blob URL + "?" + o token SAS de New-AzStorageBlobSASToken.
Listar todos os recursos de comando de execução implantados numa máquina
Este comando retorna uma lista completa de Comandos de Execução implantados anteriormente, juntamente com suas propriedades.
Get-AzConnectedMachineRunCommand -ResourceGroupName "myRG" -MachineName "myMachine"
Obter status e resultados de execução
Este comando recupera o progresso atual da execução de um comando Executar, incluindo a saída mais recente, a hora de início/fim, o código de saída e o estado terminal da execução.
Get-AzConnectedMachineRunCommand -ResourceGroupName "myRG" - MachineName "myMachine" -RunCommandName "RunCommandName"
Obter informações de status para um comando Executar por meio da Visualização de Instância
Obtenha informações de status para um comando de execução na máquina com a Vista de Instância. Instance View contém o estado de execução do comando Run (bem-sucedido, falhou e assim por diante), código de saída, saída padrão e erro padrão gerado pela execução do script. Um código de saída diferente de zero indica uma execução malsucedida.
Get-AzConnectedMachineRunCommand -ResourceGroupName "MyRG" -MachineName "MyMachine" -RunCommandName "MyRunCommand"
Além de outras informações, a resposta retorna estes campos:
InstanceViewExecutionState: Estado do script do comando de execução. Consulte esse estado para saber se o script foi bem-sucedido ou não.ProvisioningState: Status do provisionamento geral de extensão de ponta a ponta (se a plataforma de extensão foi capaz de acionar o script de comando Run ou não).
Criar ou atualizar o Run Command em uma máquina e capturar mensagens de saída padrão e de erro padrão
Criar ou atualizar o comando Run numa máquina e transmitir em tempo real mensagens de saída padrão e de erro padrão para blobs de saída e erro de anexação.
New-AzConnectedMachineRunCommand -ResourceGroupName "MyRG0" - MachineName "MyMachine" -RunCommandName "MyRunCommand3" -Location "eastus" -SourceScript "id; echo HelloWorld" -OutputBlobUri <OutPutBlobUrI> -ErrorBlobUri <ErrorBlobUri>
Observação
Os blobs de saída e erro devem ser do tipo AppendBlob e seus URIs SAS devem fornecer acesso de leitura, acréscimo, criação e gravação ao blob. Sugere-se um tempo de expiração de 24 horas para o URI SAS. Se o blob de saída ou de erro não existir, um blob do tipo AppendBlob será criado. Você pode gerar URIs SAS no portal do Azure utilizando as opções do blob ou um token SAS usando New-AzStorageBlobSASToken.
Criar ou atualizar Executar comando em uma máquina como um usuário diferente
Crie ou atualize o comando Executar em uma máquina como um usuário diferente com os parâmetros RunAsUser e RunAsPassword.
Antes de poder usar esses parâmetros, você precisa:
- Entre em contato com o administrador da máquina e verifique se o usuário tem acesso à máquina.
- Verifique se o usuário tem acesso aos recursos acessados pelo comando Executar. Exemplos: diretórios, arquivos, rede e assim por diante.
- Em uma máquina Windows, verifique se 'Logon secundário' está em execução.
New-AzMachineRunCommand -ResourceGroupName "MyRG0" -MachineName "MyMachine" -RunCommandName "MyRunCommand" -Location "eastus" -SourceScript "id; echo HelloWorld" -RunAsUser myusername -RunAsPassword mypassword
Criar ou atualizar o comando Executar em uma máquina com um arquivo de script local
Crie ou atualize o Run Command em uma máquina usando um arquivo de script local na máquina cliente onde cmdlet é executado.
New-AzConnectedMachineRunCommand -ResourceGroupName "MyRG0" -VMName "MyMachine" -RunCommandName "MyRunCommand" -Location "eastus" -ScriptLocalPath "C:\MyScriptsDir\MyScript.ps1"
Criar ou atualizar o comando Executar numa máquina ao passar dados confidenciais para o script
Use ProtectedParameter para passar quaisquer entradas confidenciais para um script, como senhas ou chaves.
$privateParametersArray = @{name='inputText';value='privateParam1value'}
New-AzConnectedMachineRunCommand -MachineName "MyMachine" -ResourceGroupName "MyRG0" -RunCommandName "MyRunCommand" -Location "eastus" -SourceScriptUri <SourceScriptUri> -ProtectedParameter $privateParametersArray
Script de exemplo para capturar texto de entrada:
param ([string]$inputText)
Write-Output $inputText
Você também pode passar parâmetros públicos de maneira semelhante usando Parameter.
Windows - Parameter e ProtectedParameter são passados para um script semelhante ao exemplo a seguir:
myscript.ps1 -publicParam1 publicParam1value -publicParam2 publicParam2value -secret1 secret1value -secret2 secret2valueLinux - Uma entidade nomeada
Parametere os seus valores são atribuídos à configuração do ambiente, que deve estar acessível no script do PowerShell. Para argumentos sem nome, passe uma string vazia para a entrada de nome. Argumentos sem nome são passados para script semelhante ao exemplo a seguir:myscript.sh publicParam1value publicParam2value secret1value secret2value
Excluir o recurso RunCommand da máquina
Remova o recurso Executar comando implantado anteriormente na máquina. Se a execução do script ainda estiver em andamento, a execução será encerrada.
Remove-AzConnectedMachineRunCommand -ResourceGroupName "myRG" -MachineName "myMachine" -RunCommandName "RunCommandName"