你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
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>]
说明
在 VM 上调用运行命令。
示例
示例 1:在 Windows 上调用命令 - 当脚本驻留在远程 Windows VM 上时使用 ScriptPath 参数
Invoke-AzVMRunCommand -ResourceGroupName 'rgname' -VMName 'vmname' -CommandId 'RunPowerShellScript' -ScriptPath 'sample.ps1' -Parameter @{param1 = "var1"; param2 = "var2"}
调用运行命令“RunPowerShellScript”,并在资源组“rgname”中重写名为“vmname”的 Windows VM 上的脚本“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"}
此命令调用在名为“vmname”的远程 Windows VM 上执行脚本块的运行命令“RunShellScript”。 通过脚本块方式,可以在单个调用中使用参数执行多个 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
运行命令 ID。
类型: | 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
run 命令参数。 将参数指定为要在脚本执行时传递的键/值对。
类型: | Hashtable |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-ResourceGroupName
资源组的名称。
类型: | String |
Position: | 0 |
默认值: | None |
必需: | True |
接受管道输入: | True |
接受通配符: | False |
-ResourceId
VM 的资源 ID。
类型: | 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 |