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 |