Condividi tramite


Invoke-AzVMRunCommand

Eseguire un comando nella macchina virtuale.

Sintassi

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>]

Descrizione

Richiamare un comando di esecuzione nella macchina virtuale.

Esempio

Esempio 1: Richiamare un comando in Windows - Uso del parametro ScriptPath quando lo script si trova nella macchina virtuale Windows remota

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

Richiamare un comando di esecuzione 'RunPowerShellScript' con l'override dello script 'sample.ps1' in una macchina virtuale Windows denominata 'vmname' nel gruppo di risorse 'rgname'. Var1 e var2 sono definiti come parametri in sample.ps1. Il valore del parametro può essere di tipo stringa solo e lo script è responsabile della conversione in altri tipi, se necessario.

Esempio 2: Richiamare un comando in Windows - Uso del parametro ScriptString per eseguire il cmdlet nella macchina virtuale Windows

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

Questo comando richiama un comando di esecuzione 'RunShellScript' che eseguirà il cmdlet Set-TimeZone con i parametri associati. Questo esempio è utile quando si vogliono eseguire brevi comandi nella macchina virtuale Windows.

Esempio 3: Richiamare un comando in Windows - Uso del parametro ScriptString per eseguire blocchi di script nella macchina virtuale 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"}

Questo comando richiama un comando di esecuzione 'RunShellScript' che esegue un blocco di script in una macchina virtuale Windows remota denominata 'vmname'. Il modo del blocco di script consente di eseguire più cmdlet con parametri in un singolo richiamo e consente anche di richiamare più comandi di esecuzione per cmdlet diversi. I valori dei parametri possono essere solo di tipo stringa.

Esempio 4: Richiamare un comando in 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

Questo comando richiama un comando di esecuzione 'RunShellScript' con l'override dello script 'sample.bash' in una macchina virtuale Linux denominata 'vmname'. Var1 e var2 sono definiti come parametri in sample.bash.

Parametri

-AsJob

Eseguire il cmdlet in background e restituire un oggetto processo per tenere traccia dello stato di avanzamento.

Tipo:SwitchParameter
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-CommandId

ID comando di esecuzione.

Tipo:String
Posizione:Named
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Confirm

Richiede conferma prima di eseguire il cmdlet.

Tipo:SwitchParameter
Alias:cf
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-DefaultProfile

Le credenziali, l’account, il tenant e la sottoscrizione usati per comunicare con Azure.

Tipo:IAzureContextContainer
Alias:AzContext, AzureRmContext, AzureCredential
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Parameter

Parametri del comando di esecuzione. Specificare i parametri come coppie chiave/valore da passare durante l'esecuzione dello script.

Tipo:Hashtable
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-ResourceGroupName

Nome del gruppo di risorse.

Tipo:String
Posizione:0
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:True
Accettare caratteri jolly:False

-ResourceId

ID risorsa per la macchina virtuale.

Tipo:String
Posizione:0
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:True
Accettare caratteri jolly:False

-ScriptPath

Percorso dello script da eseguire. Quando questo valore viene specificato, lo script specificato eseguirà l'override dello script predefinito del comando. Il percorso deve puntare a un file da un file system locale. Il comando lo caricherà e lo invierà per l'esecuzione.

Tipo:String
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-ScriptString

Script da eseguire come stringa.

Tipo:String
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-VM

Oggetto macchina virtuale PS.

Tipo:PSVirtualMachine
Alias:VMProfile
Posizione:0
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:True
Accettare caratteri jolly:False

-VMName

Nome della macchina virtuale.

Tipo:String
Alias:Name
Posizione:1
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:True
Accettare caratteri jolly:False

-WhatIf

Mostra gli effetti dell'esecuzione del cmdlet. Il cmdlet non viene eseguito.

Tipo:SwitchParameter
Alias:wi
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

Input

String

PSVirtualMachine

Output

PSRunCommandResult