Freigeben über


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

Aufrufen eines Ausführungsbefehls "RunPowerShellScript" mit Überschreibung des Skripts "sample.ps1" auf einer Windows-VM mit dem Namen "vmname" in der Ressourcengruppe "rgname". Var1 und var2 werden als Parameter in der sample.ps1definiert. 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 zugehörigen 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

Fordert Sie vor dem Ausführen des Cmdlets zur Bestätigung auf.

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

-DefaultProfile

Die Anmeldeinformationen, Konten, Mandanten und Abonnements, die für die Kommunikation mit Azure verwendet werden.

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 passiert, 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