Partilhar via


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 run 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' substituindo o 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"

Este comando invoca um comando run '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"}

Este comando invoca um comando de execução 'RunShellScript' que executa um bloco de script em uma VM remota do Windows chamada 'vmname'. A maneira de bloco de script permite executar vários cmdlets com parâmetros em uma única chamada e também economiza tempo ao invocar vários comandos de execução para cmdlets diferentes. O(s) valor(es) do(s) parâmetro(s) pode(m) 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

Este comando invoca um comando run '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
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-CommandId

O ID do comando run.

Tipo:String
Position:Named
Default value:None
Necessário:True
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-Confirm

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

Tipo:SwitchParameter
Aliases:cf
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-DefaultProfile

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

Tipo:IAzureContextContainer
Aliases:AzContext, AzureRmContext, AzureCredential
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-Parameter

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

Tipo:Hashtable
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-ResourceGroupName

O nome do grupo de recursos.

Tipo:String
Position:0
Default value:None
Necessário:True
Aceitar entrada de pipeline:True
Aceitar carateres universais:False

-ResourceId

A ID do recurso para a VM.

Tipo:String
Position:0
Default value:None
Necessário:True
Aceitar entrada de pipeline:True
Aceitar carateres universais:False

-ScriptPath

Caminho do script a ser executado. Quando esse valor é 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
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-ScriptString

O script a ser executado como uma cadeia de caracteres.

Tipo:String
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-VM

O objeto de máquina virtual PS.

Tipo:PSVirtualMachine
Aliases:VMProfile
Position:0
Default value:None
Necessário:True
Aceitar entrada de pipeline:True
Aceitar carateres universais:False

-VMName

O nome da máquina virtual.

Tipo:String
Aliases:Name
Position:1
Default value:None
Necessário:True
Aceitar entrada de pipeline:True
Aceitar carateres universais:False

-WhatIf

Apresenta o que aconteceria mediante a execução do cmdlet. O cmdlet não é executado.

Tipo:SwitchParameter
Aliases:wi
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

Entradas

String

PSVirtualMachine

Saídas

PSRunCommandResult