Invoke-AzVMRunCommand

Führen Sie einen Befehl auf dem virtuellen Computer aus.

Syntax

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

Beschreibung

Rufen Sie einen Ausführungsbefehl auf der VM auf.

Beispiele

Beispiel 1: Aufrufen eines Befehls unter Windows – Verwenden des ScriptPath-Parameters, wenn sich das Skript auf der Windows-Remote-VM befindet

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

Rufen Sie einen Ausführungsbefehl "RunPowerShellScript" mit überschreiben des Skripts "sample.ps1" auf einer Windows-VM namens "vmname" in der Ressourcengruppe "rgname" auf. Var1 und var2 werden als Parameter im Sample.ps1 definiert. Der Parameterwert kann nur Zeichenfolgentyp sein, und das Skript ist bei Bedarf für die Konvertierung in andere Typen verantwortlich.

Beispiel 2: Aufrufen eines Befehls unter Windows – Verwenden des ScriptString-Parameters zum Ausführen des Cmdlets auf der Windows-VM

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

Dieser Befehl ruft einen Ausführungsbefehl "RunShellScript" auf, der das Cmdlet Set-TimeZone mit den zugeordneten Parametern ausführt. Dieses Beispiel ist nützlich, wenn Sie kurze Befehle auf windows-VM ausführen möchten.

Beispiel 3: Aufrufen eines Befehls unter Windows – Verwenden des ScriptString-Parameters zum Ausführen von Skriptblöcken auf der Windows-VM

$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"}

Mit diesem Befehl wird ein Ausführungsbefehl "RunShellScript" aufgerufen, der einen Skriptblock auf einer Windows-Remote-VM namens "vmname" ausführt. Mit der Skriptblock-Methode können Sie mehrere Cmdlets mit Parametern in einem einzigen Aufruf ausführen und sparen außerdem Zeit beim Aufrufen mehrerer Ausführungsbefehle für verschiedene Cmdlets. Parameterwerte können nur vom Zeichenfolgentyp sein.

Beispiel 4: Aufrufen eines Befehls unter 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

Mit diesem Befehl wird ein Ausführungsbefehl "RunShellScript" aufgerufen, wobei das Skript "sample.bash" auf einer Linux-VM mit dem Namen "vmname" überschrieben wird. Var1 und var2 werden als Parameter im Sample.bash definiert.

Parameter

-AsJob

Führen Sie das Cmdlet im Hintergrund aus, und geben Sie ein Auftragsobjekt zurück, um den Fortschritt nachzuverfolgen.

Typ:SwitchParameter
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-CommandId

Die Befehls-ID ausführen.

Typ:String
Position:Named
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Confirm

Hiermit werden Sie vor der Ausführung des Cmdlets zur Bestätigung aufgefordert.

Typ:SwitchParameter
Aliase:cf
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-DefaultProfile

Anmeldeinformationen, Konto, Mandant und Abonnement für die Kommunikation mit Azure

Typ:IAzureContextContainer
Aliase:AzContext, AzureRmContext, AzureCredential
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Parameter

Die Befehlsparameter ausführen. Geben Sie Parameter als Schlüssel-Wert-Paare an, die bei der Skriptausführung übergeben werden sollen.

Typ:Hashtable
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-ResourceGroupName

Der Name der Ressourcengruppe.

Typ:String
Position:0
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:True
Platzhalterzeichen akzeptieren:False

-ResourceId

Die Ressourcen-ID für den virtuellen Computer.

Typ:String
Position:0
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:True
Platzhalterzeichen akzeptieren:False

-ScriptPath

Pfad des auszuführenden Skripts. Wenn dieser Wert angegeben wird, überschreibt das angegebene Skript das Standardskript des Befehls. Der Pfad sollte auf eine Datei aus einem lokalen Dateisystem verweisen. Der Befehl lädt ihn und sendet ihn zur Ausführung.

Typ:String
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-ScriptString

Das Skript, das als Zeichenfolge ausgeführt werden soll.

Typ:String
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-VM

Das VIRTUELLE PS-Computerobjekt.

Typ:PSVirtualMachine
Aliase:VMProfile
Position:0
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:True
Platzhalterzeichen akzeptieren:False

-VMName

Der Name des virtuellen Computers.

Typ:String
Aliase:Name
Position:1
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:True
Platzhalterzeichen akzeptieren:False

-WhatIf

Zeigt, was geschieht, wenn das Cmdlet ausgeführt wird. Das Cmdlet wird nicht ausgeführt.

Typ:SwitchParameter
Aliase:wi
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

Eingaben

String

PSVirtualMachine

Ausgaben

PSRunCommandResult