Invoke-AzVMRunCommand

Execute um comando na VM.

Sintaxe

Invoke-AzVMRunCommand
      [-ResourceGroupName] <String>
      [-VMName] <String>
      -CommandId <String>
      [-ScriptPath <String>]
      [-ScriptString <String>]
      [-Parameter <Hashtable>]
      [-AsJob]
      [-DefaultProfile <IAzureContextContainer>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Invoke-AzVMRunCommand
      -CommandId <String>
      [-ScriptPath <String>]
      [-ScriptString <String>]
      [-Parameter <Hashtable>]
      [-ResourceId] <String>
      [-AsJob]
      [-DefaultProfile <IAzureContextContainer>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Invoke-AzVMRunCommand
      -CommandId <String>
      [-ScriptPath <String>]
      [-ScriptString <String>]
      [-Parameter <Hashtable>]
      [-VM] <PSVirtualMachine>
      [-AsJob]
      [-DefaultProfile <IAzureContextContainer>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]

Description

Invoque um comando de execução na VM.

Exemplos

Exemplo 1: Invocar um comando no Windows – Usando o parâmetro ScriptPath quando o script reside na VM remota do Windows

Invoke-AzVMRunCommand -ResourceGroupName 'rgname' -VMName 'vmname' -CommandId 'RunPowerShellScript' -ScriptPath 'sample.ps1' -Parameter @{param1 = "var1"; param2 = "var2"}

Invoque um comando de execução 'RunPowerShellScript' com a substituição do script 'sample.ps1' em uma VM do Windows chamada 'vmname' no grupo de recursos 'rgname'. Var1 e var2 são definidos como parâmetros no sample.ps1. O valor do parâmetro pode ser apenas do tipo string e o script é responsável por convertê-los em outros tipos, se necessário.

Exemplo 2: invocar um comando no Windows – usando o parâmetro ScriptString para executar o cmdlet na VM do Windows

Invoke-AzVMRunCommand -ResourceGroupName 'rgname' -VMName 'vmname' -CommandId 'RunPowerShellScript' -ScriptString "Set-TimeZone -Name 'Coordinated Universal Time' -PassThru"

Esse comando invoca um comando de execução 'RunShellScript' que executará o cmdlet Set-TimeZone com seus parâmetros associados. Este exemplo é útil quando você deseja executar comandos curtos na VM do Windows.

Exemplo 3: Invocar um comando no Windows – Usando o parâmetro ScriptString para executar blocos de script na VM do Windows

$ScriptBlock = {
    param(
        [string] $NewTimeZone,
        [string] $NewDate
        )
    Set-TimeZone -Id $NewTimeZone
    Set-Date -Date [DateTime]$NewDate
}

$Script = [scriptblock]::create($ScriptBlock)

Invoke-AzVMRunCommand -ResourceGroupName 'rgname' -VMName 'vmname' -CommandId 'RunPowerShellScript' -ScriptString $Script -Parameter @{'NewTimeZone' = "UTC"; 'NewDate' = "Dec-8"}

Esse comando invoca um comando de execução 'RunShellScript' que executa um bloco de script em uma VM remota do Windows chamada 'vmname'. O modo de bloco de script permite que você execute vários cmdlets com parâmetros em uma única invocação e também economiza tempo na invocação de vários comandos de execução para diferentes cmdlets. Os valores dos parâmetros podem ser apenas do tipo string.

Exemplo 4: Invocar um comando no Linux

export param1=var1 param2=var2
set -- var1 var2 var3

Invoke-AzVMRunCommand -ResourceGroupName 'rgname' -Name 'vmname' -CommandId 'RunShellScript' -ScriptPath 'sample.bash' -Parameter @{"param1" = "var1";"param2" = "var2"}
echo This is a sample bash script
echo Usage 1: Ordered parameters: $0 $1
echo Usage 2: Named exports: $var1 $var2

Esse comando invoca um comando de execução 'RunShellScript' com a substituição do script 'sample.bash' em uma VM Linux chamada 'vmname'. Var1 e var2 são definidos como parâmetros no sample.bash.

Parâmetros

-AsJob

Execute o cmdlet em segundo plano e retorne um objeto de trabalho para acompanhar o progresso.

Tipo:SwitchParameter
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-CommandId

A ID do comando de execução.

Tipo:String
Cargo:Named
Valor padrão:None
Obrigatório:True
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-Confirm

Solicita sua confirmação antes de executar o cmdlet.

Tipo:SwitchParameter
Aliases:cf
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-DefaultProfile

As credenciais, a conta, o locatário e a assinatura usados para a comunicação com o Azure.

Tipo:IAzureContextContainer
Aliases:AzContext, AzureRmContext, AzureCredential
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-Parameter

Os parâmetros do comando run. Especifique os parâmetros como pares chave/valor a serem passados na execução do script.

Tipo:Hashtable
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-ResourceGroupName

O nome do grupo de recursos.

Tipo:String
Cargo:0
Valor padrão:None
Obrigatório:True
Aceitar a entrada de pipeline:True
Aceitar caracteres curinga:False

-ResourceId

A ID do recurso para a VM.

Tipo:String
Cargo:0
Valor padrão:None
Obrigatório:True
Aceitar a entrada de pipeline:True
Aceitar caracteres curinga:False

-ScriptPath

Caminho do script a ser executado. Quando esse valor for fornecido, o script fornecido substituirá o script padrão do comando. O caminho deve apontar para um arquivo de um sistema de arquivos local. O comando irá carregá-lo e enviá-lo para execução.

Tipo:String
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-ScriptString

O script a ser executado como uma cadeia de caracteres.

Tipo:String
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-VM

O objeto de máquina virtual PS.

Tipo:PSVirtualMachine
Aliases:VMProfile
Cargo:0
Valor padrão:None
Obrigatório:True
Aceitar a entrada de pipeline:True
Aceitar caracteres curinga:False

-VMName

O nome da máquina virtual.

Tipo:String
Aliases:Name
Cargo:1
Valor padrão:None
Obrigatório:True
Aceitar a entrada de pipeline:True
Aceitar caracteres curinga:False

-WhatIf

Mostra o que aconteceria se o cmdlet fosse executado. O cmdlet não é executado.

Tipo:SwitchParameter
Aliases:wi
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

Entradas

String

PSVirtualMachine

Saídas

PSRunCommandResult