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.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-CommandId

ID comando di esecuzione.

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Confirm

Richiede conferma prima di eseguire il cmdlet.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DefaultProfile

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

Type:IAzureContextContainer
Aliases:AzContext, AzureRmContext, AzureCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Parameter

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

Type:Hashtable
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ResourceGroupName

Nome del gruppo di risorse.

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-ResourceId

ID risorsa per la macchina virtuale.

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters: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.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ScriptString

Script da eseguire come stringa.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-VM

Oggetto macchina virtuale PS.

Type:PSVirtualMachine
Aliases:VMProfile
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-VMName

Nome della macchina virtuale.

Type:String
Aliases:Name
Position:1
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-WhatIf

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

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Input

String

PSVirtualMachine

Output

PSRunCommandResult