Udostępnij za pośrednictwem


Invoke-AzVMRunCommand

Uruchom polecenie na maszynie wirtualnej.

Składnia

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

Opis

Wywołaj polecenie run na maszynie wirtualnej.

Przykłady

Przykład 1: Wywoływanie polecenia w systemie Windows — używanie parametru ScriptPath, gdy skrypt znajduje się na zdalnej maszynie wirtualnej z systemem Windows

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

Wywołaj polecenie uruchamiania "RunPowerShellScript" z zastąpieniem skryptu "sample.ps1" na maszynie wirtualnej z systemem Windows o nazwie "vmname" w grupie zasobów "rgname". Var1 i var2 są definiowane jako parametry w pliku sample.ps1. Wartość parametru może być tylko typem ciągu, a skrypt jest odpowiedzialny za konwertowanie ich na inne typy w razie potrzeby.

Przykład 2: Wywoływanie polecenia w systemie Windows — używanie parametru ScriptString do wykonywania polecenia cmdlet na maszynie wirtualnej z systemem Windows

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

To polecenie wywołuje polecenie uruchamiania "RunShellScript", które wykona polecenie cmdlet Set-TimeZone z skojarzonymi parametrami. Ten przykład jest przydatny, gdy chcesz wykonać krótkie polecenia na maszynie wirtualnej z systemem Windows.

Przykład 3: Wywoływanie polecenia w systemie Windows — używanie parametru ScriptString do uruchamiania bloków skryptów na maszynie wirtualnej z systemem 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"}

To polecenie wywołuje polecenie uruchamiania "RunShellScript", które wykonuje blok skryptu na zdalnej maszynie wirtualnej z systemem Windows o nazwie "vmname". Sposób blokowania skryptu umożliwia wykonywanie wielu poleceń cmdlet z parametrami w jednym wywołaniu, a także pozwala zaoszczędzić czas na wywoływanie wielu poleceń uruchamiania dla różnych poleceń cmdlet. Wartości parametrów mogą być tylko typu ciągu.

Przykład 4. Wywoływanie polecenia w systemie 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

To polecenie wywołuje polecenie uruchamiania "RunShellScript" z zastąpieniem skryptu "sample.bash" na maszynie wirtualnej z systemem Linux o nazwie "vmname". Var1 i var2 są definiowane jako parametry w pliku sample.bash.

Parametry

-AsJob

Uruchom polecenie cmdlet w tle i zwróć obiekt zadania, aby śledzić postęp.

Typ:SwitchParameter
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-CommandId

Identyfikator polecenia uruchomienia.

Typ:String
Position:Named
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-Confirm

Monituje o potwierdzenie przed uruchomieniem polecenia cmdlet.

Typ:SwitchParameter
Aliasy:cf
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-DefaultProfile

Poświadczenia, konto, dzierżawa i subskrypcja używane do komunikacji z platformą Azure.

Typ:IAzureContextContainer
Aliasy:AzContext, AzureRmContext, AzureCredential
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-Parameter

Parametry polecenia uruchamiania. Określ parametry jako pary klucz/wartość, które mają być przekazywane podczas wykonywania skryptu.

Typ:Hashtable
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-ResourceGroupName

Nazwa grupy zasobów.

Typ:String
Position:0
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-ResourceId

Identyfikator zasobu maszyny wirtualnej.

Typ:String
Position:0
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-ScriptPath

Ścieżka skryptu do wykonania. Po podaniu tej wartości dany skrypt zastąpi domyślny skrypt polecenia. Ścieżka powinna wskazywać plik z lokalnego systemu plików. Polecenie załaduje je i wyśle do wykonania.

Typ:String
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-ScriptString

Skrypt do wykonania jako ciąg.

Typ:String
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-VM

Obiekt maszyny wirtualnej PS.

Typ:PSVirtualMachine
Aliasy:VMProfile
Position:0
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-VMName

Nazwa maszyny wirtualnej.

Typ:String
Aliasy:Name
Position:1
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-WhatIf

Pokazuje, co się stanie po uruchomieniu polecenia cmdlet. Polecenie cmdlet nie zostało uruchomione.

Typ:SwitchParameter
Aliasy:wi
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

Dane wejściowe

String

PSVirtualMachine

Dane wyjściowe

PSRunCommandResult