共用方式為


Invoke-AzVMRunCommand

在 VM 上執行命令。

語法

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

Description

在 VM 上叫用執行命令。

範例

範例 1:在 Windows 上叫用命令 - 當腳本位於遠端 Windows VM 時使用 ScriptPath 參數

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

在資源群組 『rgname』 中名為 『vmname』 的 Windows VM 上,叫用執行命令 『RunPowerShellScript』,並覆寫腳本 『sample.ps1』。 Var1 和 var2 定義為 sample.ps1中的參數。 參數值只能是字串類型,而且腳本會負責視需要將它們轉換成其他類型。

範例 2:在 Windows 上叫用命令 - 使用 ScriptString 參數在 Windows VM 上執行 Cmdlet

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

此命令會叫用執行命令 『RunShellScript』,此命令會執行 cmdlet Set-TimeZone 與其相關聯的參數。 當您想要在 Windows VM 上執行簡短命令時,此範例很有用。

範例 3:在 Windows 上叫用命令 - 使用 ScriptString 參數在 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"}

此命令會叫用執行命令 『RunShellScript』,在名為 『vmname』 的遠端 Windows VM 上執行腳本區塊。 腳本區塊方式可讓您在單一叫用中搭配參數執行多個 Cmdlet,同時也可在叫用不同 Cmdlet 的多個執行命令時節省時間。 參數值只能是字串類型。

範例 4:在 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

此命令會叫用執行命令 『RunShellScript』,並在名為 『vmname』 的 Linux VM 上覆寫腳本 'sample.bash'。 Var1 和 var2 會定義為 sample.bash 中的參數。

參數

-AsJob

在背景執行 Cmdlet,並傳回工作對象來追蹤進度。

類型:SwitchParameter
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-CommandId

執行命令標識碼。

類型:String
Position:Named
預設值:None
必要:True
接受管線輸入:False
接受萬用字元:False

-Confirm

在執行 Cmdlet 之前,提示您進行確認。

類型:SwitchParameter
別名:cf
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-DefaultProfile

用於與 Azure 通訊的認證、帳戶、租用戶和訂用帳戶。

類型:IAzureContextContainer
別名:AzContext, AzureRmContext, AzureCredential
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-Parameter

執行命令參數。 指定要在文稿執行時傳遞的索引鍵/值組參數。

類型:Hashtable
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-ResourceGroupName

資源群組的名稱。

類型:String
Position:0
預設值:None
必要:True
接受管線輸入:True
接受萬用字元:False

-ResourceId

VM 的資源識別碼。

類型:String
Position:0
預設值:None
必要:True
接受管線輸入:True
接受萬用字元:False

-ScriptPath

要執行的腳本路徑。 指定此值時,指定的腳本會覆寫命令的預設腳本。 路徑應該指向本機檔系統的檔案。 命令會載入它並傳送它來執行。

類型:String
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-ScriptString

要當做字串執行的腳本。

類型:String
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-VM

PS 虛擬機物件。

類型:PSVirtualMachine
別名:VMProfile
Position:0
預設值:None
必要:True
接受管線輸入:True
接受萬用字元:False

-VMName

虛擬機的名稱。

類型:String
別名:Name
Position:1
預設值:None
必要:True
接受管線輸入:True
接受萬用字元:False

-WhatIf

顯示 Cmdlet 執行時會發生什麼事。 Cmdlet 未執行。

類型:SwitchParameter
別名:wi
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

輸入

String

PSVirtualMachine

輸出

PSRunCommandResult