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
Ausgaben
Azure PowerShell