Set-AzVMRunCommand
语法
UpdateExpanded (默认值)
Set-AzVMRunCommand
-ResourceGroupName <String>
-RunCommandName <String>
-VMName <String>
-Location <String>
[-SubscriptionId <String>]
[-AsyncExecution]
[-ErrorBlobManagedIdentityClientId <String>]
[-ErrorBlobManagedIdentityObjectId <String>]
[-ErrorBlobUri <String>]
[-OutputBlobManagedIdentityClientId <String>]
[-OutputBlobManagedIdentityObjectId <String>]
[-OutputBlobUri <String>]
[-Parameter <IRunCommandInputParameter[]>]
[-ProtectedParameter <IRunCommandInputParameter[]>]
[-RunAsPassword <String>]
[-RunAsUser <String>]
[-ScriptUriManagedIdentityClientId <String>]
[-ScriptUriManagedIdentityObjectId <String>]
[-SourceCommandId <String>]
[-SourceScript <String>]
[-SourceScriptUri <String>]
[-Tag <Hashtable>]
[-TimeoutInSecond <Int32>]
[-TreatFailureAsDeploymentFailure]
[-DefaultProfile <PSObject>]
[-AsJob]
[-NoWait]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
ScriptLocalPath
Set-AzVMRunCommand
-ResourceGroupName <String>
-RunCommandName <String>
-VMName <String>
-Location <String>
-ScriptLocalPath <String>
[-SubscriptionId <String>]
[-AsyncExecution]
[-ErrorBlobManagedIdentityClientId <String>]
[-ErrorBlobManagedIdentityObjectId <String>]
[-ErrorBlobUri <String>]
[-OutputBlobManagedIdentityClientId <String>]
[-OutputBlobManagedIdentityObjectId <String>]
[-OutputBlobUri <String>]
[-Parameter <IRunCommandInputParameter[]>]
[-ProtectedParameter <IRunCommandInputParameter[]>]
[-RunAsPassword <String>]
[-RunAsUser <String>]
[-ScriptUriManagedIdentityClientId <String>]
[-ScriptUriManagedIdentityObjectId <String>]
[-Tag <Hashtable>]
[-TimeoutInSecond <Int32>]
[-TreatFailureAsDeploymentFailure]
[-DefaultProfile <PSObject>]
[-AsJob]
[-NoWait]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
UpdateViaJsonFilePath
Set-AzVMRunCommand
-ResourceGroupName <String>
-RunCommandName <String>
-VMName <String>
-JsonFilePath <String>
[-SubscriptionId <String>]
[-DefaultProfile <PSObject>]
[-AsJob]
[-NoWait]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
UpdateViaJsonString
Set-AzVMRunCommand
-ResourceGroupName <String>
-RunCommandName <String>
-VMName <String>
-JsonString <String>
[-SubscriptionId <String>]
[-DefaultProfile <PSObject>]
[-AsJob]
[-NoWait]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
说明
示例
示例 1:使用存储 Blob SAS URL 在 VM 上创建或更新运行命令
Set-AzVMRunCommand -ResourceGroupName MyRG0 -VMName MyVMEE -RunCommandName MyRunCommand -Location EastUS2EUAP -SourceScriptUri "https://myst.blob.core.windows.net/mycontainer/myscript.ps1?sp=r&st=2022-10-27T21:02:35Z&se=2022-10-28T05:02:35Z&spr=https&sv=2021-06-08&sr=b&sig=******"
Location Name Type
-------- ---- ----
eastus2euap MyRunCommand Microsoft.Compute/virtualMachines/runCommands
使用包含 .ps1 脚本的存储 blob 的 SAS URL 在 Windows VM 上创建或更新运行命令。
请注意,SAS URL 必须提供对 blob 的读取访问权限。
建议 SAS URL 的过期时间为 24 小时。
可以使用 Blob 的选项在 Azure 门户中生成 SAS URL,也可以使用 New-AzStorageBlobSASToken 生成 SAS 令牌。
如果使用 New-AzStorageBlobSASToken 生成 SAS 令牌,则 SAS URL = 基本 Blob URL + “?” + 来自 New-AzStorageBlobSASToken 的 SAS 令牌。
示例 2:使用本地脚本文件在 VM 上创建或更新运行命令。
Set-AzVMRunCommand -ResourceGroupName MyRG0 -VMName MyVMEE -RunCommandName MyRunCommand -Location EastUS2EUAP -ScriptLocalPath "C:\MyScriptsDir\MyScript.ps1"
Location Name Type
-------- ---- ----
eastus2euap MyRunCommand Microsoft.Compute/virtualMachines/runCommands
使用执行 cmdlet 的客户端计算机上的本地脚本文件在 VM 上创建或更新运行命令。
示例 3:使用脚本文本在 VM 上创建或更新运行命令。
Set-AzVMRunCommand -ResourceGroupName MyRG0 -VMName MyVML -RunCommandName MyRunCommand2 -Location EastUS2EUAP -SourceScript "id; echo HelloWorld"
Location Name Type
-------- ---- ----
eastus2euap MyRunCommand2 Microsoft.Compute/virtualMachines/runCommands
在 VM 上创建或更新运行命令,将脚本内容直接传递到 -SourceScript 参数。
使用“;”分隔多个命令。
示例 4:使用 commandId 在 VM 上创建或更新运行命令。
Set-AzVMRunCommand -ResourceGroupName MyRG0 -VMName MyVMEE -RunCommandName MyRunCommand -Location EastUS2EUAP -SourceCommandId DisableWindowsUpdate
Location Name Type
-------- ---- ----
eastus2euap MyRunCommand Microsoft.Compute/virtualMachines/runCommands
使用预先存在的 commandId 在 VM 上创建或更新运行命令。
可以使用 Get-AzVMRunCommandDocument 检索可用的 commandId。
示例 5:在 VM 上创建或更新运行命令,并将标准输出和标准错误消息流式传输到输出和错误追加 Blob。
Set-AzVMRunCommand -ResourceGroupName MyRG0 -VMName MyVML -RunCommandName MyRunCommand3 -Location EastUS2EUAP -ScriptLocalPath "C:\MyScriptsDir\MyScript.ps1" -OutputBlobUri "https://vivst.blob.core.windows.net/vivcontainer/output.txt?sp=racw&st=2022-10-27T22:18:36Z&se=2022-10-28T06:18:36Z&spr=https&sv=2021-06-08&sr=b&sig=******" -ErrorBlobUri "https://vivst.blob.core.windows.net/vivcontainer/error.txt?sp=racw&st=2022-10-27T22:18:36Z&se=2022-10-28T06:18:36Z&spr=https&sv=2021-06-08&sr=b&sig=******"
Location Name Type
-------- ---- ----
eastus2euap MyRunCommand3 Microsoft.Compute/virtualMachines/runCommands
在虚拟机上创建或更新运行命令,并将标准输出和标准错误消息流式传输到输出和错误追加 blob。
请注意,输出和错误 blob 的类型必须为 AppendBlob,其 SAS URL 必须提供对 Blob 的读取、追加、创建、写入访问权限。
建议 SAS URL 的过期时间为 24 小时。
如果输出或错误 blob 不存在,将会创建类型为 AppendBlob 的 blob。
可以使用 Blob 的选项在 Azure 门户中生成 SAS URL,也可以使用 New-AzStorageBlobSASToken 生成 SAS 令牌。
如果使用 New-AzStorageBlobSASToken 生成 SAS 令牌,则 SAS URL = 基本 Blob URL + “?” + 来自 New-AzStorageBlobSASToken 的 SAS 令牌。
示例 6:在 VM 上创建或更新运行命令,使用 RunAsUser 和 RunAsPassword 参数以其他用户身份运行 Run Command。
Set-AzVMRunCommand -ResourceGroupName MyRG0 -VMName MyVMEE -RunCommandName MyRunCommand -Location EastUS2EUAP -ScriptLocalPath "C:\MyScriptsDir\MyScript.ps1" -RunAsUser myusername -RunAsPassword mypassword
Location Name Type
-------- ---- ----
eastus2euap MyRunCommand Microsoft.Compute/virtualMachines/runCommands
在 VM 上创建或更新运行命令,使用 RunAsUser 和 RunAsPassword 参数以其他用户身份运行 Run Command。
若要使 RunAs 正常工作,请与 VM 管理员联系,并确保在 VM 上添加用户、用户有权访问运行命令(目录、文件、网络等)访问的资源,如果是 Windows VM,则 VM 上运行“辅助登录”服务。
参数
-AsJob
以作业身份运行命令
参数属性
参数集
(All)
Position: Named
必需: False
来自管道的值: False
来自管道的值(按属性名称): False
来自剩余参数的值: False
-AsyncExecution
可选。
如果设置为 true,则脚本启动后,预配将立即完成,并且不会等待脚本完成。
参数属性
参数集
UpdateExpanded
Position: Named
必需: False
来自管道的值: False
来自管道的值(按属性名称): False
来自剩余参数的值: False
ScriptLocalPath
Position: Named
必需: False
来自管道的值: False
来自管道的值(按属性名称): False
来自剩余参数的值: False
-Confirm
在运行 cmdlet 之前,提示你进行确认。
参数属性
参数集
(All)
Position: Named
必需: False
来自管道的值: False
来自管道的值(按属性名称): False
来自剩余参数的值: False
-DefaultProfile
DefaultProfile 参数不起作用。
如果对其他订阅执行 cmdlet,请使用 SubscriptionId 参数。
参数属性
类型: PSObject
默认值: None
支持通配符: False
不显示: False
别名: AzureRMContext, AzureCredential
参数集
(All)
Position: Named
必需: False
来自管道的值: False
来自管道的值(按属性名称): False
来自剩余参数的值: False
-ErrorBlobManagedIdentityClientId
用户分配的托管标识的客户端 ID (GUID 值)。
如果未提供,则不应使用 ObjectId。
参数属性
类型: String
默认值: None
支持通配符: False
不显示: False
参数集
UpdateExpanded
Position: Named
必需: False
来自管道的值: False
来自管道的值(按属性名称): False
来自剩余参数的值: False
ScriptLocalPath
Position: Named
必需: False
来自管道的值: False
来自管道的值(按属性名称): False
来自剩余参数的值: False
-ErrorBlobManagedIdentityObjectId
用户分配的托管标识的对象 ID (GUID 值)。
如果未提供,则不应使用 ClientId。
参数属性
类型: String
默认值: None
支持通配符: False
不显示: False
参数集
UpdateExpanded
Position: Named
必需: False
来自管道的值: False
来自管道的值(按属性名称): False
来自剩余参数的值: False
ScriptLocalPath
Position: Named
必需: False
来自管道的值: False
来自管道的值(按属性名称): False
来自剩余参数的值: False
-ErrorBlobUri
指定将上传脚本错误流的 Azure 存储 Blob。
使用具有读取、追加、创建、写入访问权限的 SAS URI 或使用托管标识提供对 Blob 的 VM 访问权限。
引用 errorBlobManagedIdentity 参数。
参数属性
类型: String
默认值: None
支持通配符: False
不显示: False
参数集
UpdateExpanded
Position: Named
必需: False
来自管道的值: False
来自管道的值(按属性名称): False
来自剩余参数的值: False
ScriptLocalPath
Position: Named
必需: False
来自管道的值: False
来自管道的值(按属性名称): False
来自剩余参数的值: False
-JsonFilePath
提供给更新操作的 Json 文件的路径
参数属性
类型: String
默认值: None
支持通配符: False
不显示: False
参数集
UpdateViaJsonFilePath
Position: Named
必需: True
来自管道的值: False
来自管道的值(按属性名称): False
来自剩余参数的值: False
-JsonString
提供给更新操作的 Json 字符串
参数属性
类型: String
默认值: None
支持通配符: False
不显示: False
参数集
UpdateViaJsonString
Position: Named
必需: True
来自管道的值: False
来自管道的值(按属性名称): False
来自剩余参数的值: False
-Location
资源位置
参数属性
类型: String
默认值: None
支持通配符: False
不显示: False
参数集
UpdateExpanded
Position: Named
必需: True
来自管道的值: False
来自管道的值(按属性名称): False
来自剩余参数的值: False
ScriptLocalPath
Position: Named
必需: True
来自管道的值: False
来自管道的值(按属性名称): False
来自剩余参数的值: False
-NoWait
异步运行命令
参数属性
参数集
(All)
Position: Named
必需: False
来自管道的值: False
来自管道的值(按属性名称): False
来自剩余参数的值: False
-OutputBlobManagedIdentityClientId
用户分配的托管标识的客户端 ID (GUID 值)。
如果未提供,则不应使用 ObjectId。
参数属性
类型: String
默认值: None
支持通配符: False
不显示: False
参数集
UpdateExpanded
Position: Named
必需: False
来自管道的值: False
来自管道的值(按属性名称): False
来自剩余参数的值: False
ScriptLocalPath
Position: Named
必需: False
来自管道的值: False
来自管道的值(按属性名称): False
来自剩余参数的值: False
-OutputBlobManagedIdentityObjectId
用户分配的托管标识的对象 ID (GUID 值)。
如果未提供,则不应使用 ClientId。
参数属性
类型: String
默认值: None
支持通配符: False
不显示: False
参数集
UpdateExpanded
Position: Named
必需: False
来自管道的值: False
来自管道的值(按属性名称): False
来自剩余参数的值: False
ScriptLocalPath
Position: Named
必需: False
来自管道的值: False
来自管道的值(按属性名称): False
来自剩余参数的值: False
-OutputBlobUri
指定将上传脚本输出流的 Azure 存储 Blob。
使用具有读取、追加、创建、写入访问权限的 SAS URI 或使用托管标识提供对 Blob 的 VM 访问权限。
引用 outputBlobManagedIdentity 参数。
参数属性
类型: String
默认值: None
支持通配符: False
不显示: False
参数集
UpdateExpanded
Position: Named
必需: False
来自管道的值: False
来自管道的值(按属性名称): False
来自剩余参数的值: False
ScriptLocalPath
Position: Named
必需: False
来自管道的值: False
来自管道的值(按属性名称): False
来自剩余参数的值: False
-Parameter
脚本使用的参数。
参数属性
参数集
UpdateExpanded
Position: Named
必需: False
来自管道的值: False
来自管道的值(按属性名称): False
来自剩余参数的值: False
ScriptLocalPath
Position: Named
必需: False
来自管道的值: False
来自管道的值(按属性名称): False
来自剩余参数的值: False
-ProtectedParameter
脚本使用的参数。
参数属性
参数集
UpdateExpanded
Position: Named
必需: False
来自管道的值: False
来自管道的值(按属性名称): False
来自剩余参数的值: False
ScriptLocalPath
Position: Named
必需: False
来自管道的值: False
来自管道的值(按属性名称): False
来自剩余参数的值: False
-ResourceGroupName
资源组的名称。
参数属性
类型: String
默认值: None
支持通配符: False
不显示: False
参数集
(All)
Position: Named
必需: True
来自管道的值: False
来自管道的值(按属性名称): False
来自剩余参数的值: False
-RunAsPassword
在执行 run 命令时,指定 VM 上的用户帐户密码。
参数属性
类型: String
默认值: None
支持通配符: False
不显示: False
参数集
UpdateExpanded
Position: Named
必需: False
来自管道的值: False
来自管道的值(按属性名称): False
来自剩余参数的值: False
ScriptLocalPath
Position: Named
必需: False
来自管道的值: False
来自管道的值(按属性名称): False
来自剩余参数的值: False
-RunAsUser
在执行 run 命令时,指定 VM 上的用户帐户。
参数属性
类型: String
默认值: None
支持通配符: False
不显示: False
参数集
UpdateExpanded
Position: Named
必需: False
来自管道的值: False
来自管道的值(按属性名称): False
来自剩余参数的值: False
ScriptLocalPath
Position: Named
必需: False
来自管道的值: False
来自管道的值(按属性名称): False
来自剩余参数的值: False
-RunCommandName
虚拟机运行命令的名称。
参数属性
类型: String
默认值: None
支持通配符: False
不显示: False
参数集
(All)
Position: Named
必需: True
来自管道的值: False
来自管道的值(按属性名称): False
来自剩余参数的值: False
-ScriptLocalPath
用于更新 run 命令的操作。
参数属性
类型: String
默认值: None
支持通配符: False
不显示: False
参数集
ScriptLocalPath
Position: Named
必需: True
来自管道的值: False
来自管道的值(按属性名称): False
来自剩余参数的值: False
-ScriptUriManagedIdentityClientId
用户分配的托管标识的客户端 ID (GUID 值)。
如果未提供,则不应使用 ObjectId。
参数属性
类型: String
默认值: None
支持通配符: False
不显示: False
参数集
UpdateExpanded
Position: Named
必需: False
来自管道的值: False
来自管道的值(按属性名称): False
来自剩余参数的值: False
ScriptLocalPath
Position: Named
必需: False
来自管道的值: False
来自管道的值(按属性名称): False
来自剩余参数的值: False
-ScriptUriManagedIdentityObjectId
用户分配的托管标识的对象 ID (GUID 值)。
如果未提供,则不应使用 ClientId。
参数属性
类型: String
默认值: None
支持通配符: False
不显示: False
参数集
UpdateExpanded
Position: Named
必需: False
来自管道的值: False
来自管道的值(按属性名称): False
来自剩余参数的值: False
ScriptLocalPath
Position: Named
必需: False
来自管道的值: False
来自管道的值(按属性名称): False
来自剩余参数的值: False
-SourceCommandId
指定预定义内置脚本的 commandId。
参数属性
类型: String
默认值: None
支持通配符: False
不显示: False
参数集
UpdateExpanded
Position: Named
必需: False
来自管道的值: False
来自管道的值(按属性名称): False
来自剩余参数的值: False
-SourceScript
指定要在 VM 上执行的脚本内容。
参数属性
类型: String
默认值: None
支持通配符: False
不显示: False
参数集
UpdateExpanded
Position: Named
必需: False
来自管道的值: False
来自管道的值(按属性名称): False
来自剩余参数的值: False
-SourceScriptUri
指定脚本下载位置。
它可以是具有读取访问权限或公共 URI 的 Azure 存储 Blob 的 SAS URI。
参数属性
类型: String
默认值: None
支持通配符: False
不显示: False
参数集
UpdateExpanded
Position: Named
必需: False
来自管道的值: False
来自管道的值(按属性名称): False
来自剩余参数的值: False
-SubscriptionId
唯一标识 azure 订阅Microsoft的订阅凭据。
订阅 ID 构成了每个服务调用的 URI 的一部分。
参数属性
类型: String
默认值: (Get-AzContext).Subscription.Id
支持通配符: False
不显示: False
参数集
(All)
Position: Named
必需: False
来自管道的值: False
来自管道的值(按属性名称): False
来自剩余参数的值: False
-Tag
资源标记
参数属性
参数集
UpdateExpanded
Position: Named
必需: False
来自管道的值: False
来自管道的值(按属性名称): False
来自剩余参数的值: False
ScriptLocalPath
Position: Named
必需: False
来自管道的值: False
来自管道的值(按属性名称): False
来自剩余参数的值: False
-TimeoutInSecond
执行 run 命令的超时(以秒为单位)。
参数属性
类型: Int32
默认值: None
支持通配符: False
不显示: False
参数集
UpdateExpanded
Position: Named
必需: False
来自管道的值: False
来自管道的值(按属性名称): False
来自剩余参数的值: False
ScriptLocalPath
Position: Named
必需: False
来自管道的值: False
来自管道的值(按属性名称): False
来自剩余参数的值: False
-TreatFailureAsDeploymentFailure
可选。
如果设置为 true,脚本中的任何失败都将失败,并且 ProvisioningState 将标记为“失败”。
如果设置为 false,ProvisioningState 将仅反映运行命令是否由扩展平台运行,则不会指示脚本在脚本失败时是否失败。
如果脚本失败,请参阅 run 命令的实例视图,以查看 executionMessage、输出、错误:https://aka.ms/runcommandmanaged#get-execution-status-and-results
参数属性
参数集
UpdateExpanded
Position: Named
必需: False
来自管道的值: False
来自管道的值(按属性名称): False
来自剩余参数的值: False
ScriptLocalPath
Position: Named
必需: False
来自管道的值: False
来自管道的值(按属性名称): False
来自剩余参数的值: False
-VMName
应在其中创建或更新运行命令的虚拟机的名称。
参数属性
类型: String
默认值: None
支持通配符: False
不显示: False
参数集
(All)
Position: Named
必需: True
来自管道的值: False
来自管道的值(按属性名称): False
来自剩余参数的值: False
-WhatIf
显示 cmdlet 运行时会发生什么情况。
命令脚本未运行。
参数属性
参数集
(All)
Position: Named
必需: False
来自管道的值: False
来自管道的值(按属性名称): False
来自剩余参数的值: False
CommonParameters
此 cmdlet 支持通用参数:-Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction 和 -WarningVariable。 有关详细信息,请参阅 about_CommonParameters 。
输出