你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Set-AzVmssVMRunCommand
用于创建或更新 VMSS VM 运行命令的操作。
语法
Set-AzVmssVMRunCommand
-InstanceId <String>
-ResourceGroupName <String>
-RunCommandName <String>
-VMScaleSetName <String>
[-SubscriptionId <String>]
-Location <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>]
Set-AzVmssVMRunCommand
-InstanceId <String>
-ResourceGroupName <String>
-RunCommandName <String>
-VMScaleSetName <String>
[-SubscriptionId <String>]
-Location <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]
-ScriptLocalPath <String>
[-DefaultProfile <PSObject>]
[-AsJob]
[-NoWait]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
说明
用于创建或更新 VMSS VM 运行命令的操作。
示例
示例 1:使用存储 Blob SAS URL 在 VMSS VM 实例上创建或更新运行命令
Set-AzVmssVMRunCommand -ResourceGroupName MyRG0 -VMScaleSetName MyVMSS -InstanceId 0 -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=0I%2FIiYayRwHasfasasfdasdfasdeTsQjLnpZjA%3D"
Location Name Type
-------- ---- ----
eastus2euap MyRunCommand Microsoft.Compute/virtualMachines/runCommands
使用包含 .ps1 脚本的存储 Blob 的 SAS URL 在 Windows VMSS 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:使用本地脚本文件在 VMSS VM 实例上创建或更新运行命令。
Set-AzVmssVMRunCommand -ResourceGroupName MyRG0 -VMScaleSetName MyVMSS -InstanceId 0 -RunCommandName MyRunCommand -Location EastUS2EUAP -ScriptLocalPath "C:\MyScriptsDir\MyScript.ps1"
Location Name Type
-------- ---- ----
eastus2euap MyRunCommand Microsoft.Compute/virtualMachines/runCommands
使用执行 cmdlet 的客户端计算机上的本地脚本文件在 VMSS VM 实例上创建或更新运行命令。
示例 3:使用脚本文本在 VMSS VM 实例上创建或更新运行命令。
Set-AzVmssVMRunCommand -ResourceGroupName MyRG0 -VMScaleSetName MyVMSSL -InstanceId 1 -RunCommandName MyRunCommand2 -Location EastUS2EUAP -SourceScript "id; echo HelloWorld"
Location Name Type
-------- ---- ----
eastus2euap MyRunCommand2 Microsoft.Compute/virtualMachines/runCommands
在将脚本内容直接传递给 -SourceScript 参数的 VMSS VM 实例上创建或更新运行命令。 使用“;”分隔多个命令。
示例 4:使用 commandId 在 VMSS VM 实例上创建或更新运行命令。
Set-AzVmssVMRunCommand -ResourceGroupName MyRG0 -VMScaleSetName MyVMSS -InstanceId 0 -RunCommandName MyRunCommand -Location EastUS2EUAP -SourceCommandId DisableWindowsUpdate
Location Name Type
-------- ---- ----
eastus2euap MyRunCommand Microsoft.Compute/virtualMachines/runCommands
使用预先存在的 commandId 在 VMSS VM 实例上创建或更新运行命令。 可以使用 Get-AzVMRunCommandDocument 检索可用的 commandId。
示例 5:在 VMSS VM 实例上创建或更新运行命令,并将标准输出和标准错误消息流式传输到输出和错误追加 blob。
Set-AzVmssVMRunCommand -ResourceGroupName MyRG0 -VMScaleSetName MyVMSS -InstanceId 1 -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=HQAu3Bl%2BKMofYTjMo8o5hasfadsfasdF4jIkRJra4S5FlEo%3D" -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=HQAu3Bl%2BKMofYTjMo8o5h%asfasdfgdT%2F4jasfasdf5FlEo%3D"
Location Name Type
-------- ---- ----
eastus2euap MyRunCommand3 Microsoft.Compute/virtualMachines/runCommands
在 VMSS VM 实例上创建或更新运行命令,并将标准输出和标准错误消息流式传输到输出和错误追加 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:在 VMSS VM 实例上创建或更新运行命令,使用 RunAsUser 和 RunAsPassword 参数以其他用户身份运行 Run Command。
Set-AzVmssVMRunCommand -ResourceGroupName MyRG0 -VMScaleSetName MyVMSS -InstanceId 1 -RunCommandName MyRunCommand -Location EastUS2EUAP -ScriptLocalPath "C:\MyScriptsDir\MyScript.ps1" -RunAsUser myusername -RunAsPassword mypassword
Location Name Type
-------- ---- ----
eastus2euap MyRunCommand Microsoft.Compute/virtualMachines/runCommands
在 VMSS VM 实例上创建或更新运行命令,使用 RunAsUser 和 RunAsPassword 参数以其他用户身份运行 Run Command。 若要使运行方式正常工作,请与 VM 的管理员联系,并确保在 VM 上添加用户、用户有权访问由运行命令访问的资源(目录、文件、网络等),并且(在 Windows VM 的情况下)VM 上正在运行“辅助登录”服务。
参数
-AsJob
以作业身份运行命令
类型: | SwitchParameter |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-AsyncExecution
可选。 如果设置为 true,则脚本启动后,预配将立即完成,并且不会等待脚本完成。
类型: | SwitchParameter |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Confirm
提示你在运行 cmdlet 之前进行确认。
类型: | SwitchParameter |
别名: | cf |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-DefaultProfile
DefaultProfile 参数不起作用。 如果对其他订阅执行 cmdlet,请使用 SubscriptionId 参数。
类型: | PSObject |
别名: | AzureRMContext, AzureCredential |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-ErrorBlobManagedIdentityClientId
用户分配的托管标识的客户端 ID (GUID 值)。 如果未提供,则不应使用 ObjectId。
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-ErrorBlobManagedIdentityObjectId
用户分配的托管标识的对象 ID (GUID 值)。 如果未提供,则不应使用 ClientId。
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-ErrorBlobUri
指定将上传脚本错误流的 Azure 存储 Blob。 使用具有读取、追加、创建、写入访问权限的 SAS URI 或使用托管标识提供对 Blob 的 VM 访问权限。 引用 errorBlobManagedIdentity 参数。
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-InstanceId
虚拟机的实例 ID。
类型: | String |
Position: | Named |
默认值: | None |
必需: | True |
接受管道输入: | False |
接受通配符: | False |
-Location
资源位置
类型: | String |
Position: | Named |
默认值: | None |
必需: | True |
接受管道输入: | False |
接受通配符: | False |
-NoWait
异步运行命令
类型: | SwitchParameter |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-OutputBlobManagedIdentityClientId
用户分配的托管标识的客户端 ID (GUID 值)。 如果未提供,则不应使用 ObjectId。
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-OutputBlobManagedIdentityObjectId
用户分配的托管标识的对象 ID (GUID 值)。 如果未提供,则不应使用 ClientId。
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-OutputBlobUri
指定将上传脚本输出流的 Azure 存储 Blob。 使用具有读取、追加、创建、写入访问权限的 SAS URI 或使用托管标识提供对 Blob 的 VM 访问权限。 引用 outputBlobManagedIdentity 参数。
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Parameter
脚本使用的参数。 若要构造,请参阅 PARAMETER 属性的 NOTES 部分并创建哈希表。
类型: | IRunCommandInputParameter[] |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-ProtectedParameter
脚本使用的参数。 若要构造,请参阅 PROTECTEDPARAMETER 属性的 NOTES 部分并创建哈希表。
类型: | IRunCommandInputParameter[] |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-ResourceGroupName
资源组的名称。
类型: | String |
Position: | Named |
默认值: | None |
必需: | True |
接受管道输入: | False |
接受通配符: | False |
-RunAsPassword
在执行 run 命令时,指定 VM 上的用户帐户密码。
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-RunAsUser
在执行 run 命令时,指定 VM 上的用户帐户。
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-RunCommandName
虚拟机运行命令的名称。
类型: | String |
Position: | Named |
默认值: | None |
必需: | True |
接受管道输入: | False |
接受通配符: | False |
-ScriptLocalPath
类型: | String |
Position: | Named |
默认值: | None |
必需: | True |
接受管道输入: | False |
接受通配符: | False |
-ScriptUriManagedIdentityClientId
用户分配的托管标识的客户端 ID (GUID 值)。 如果未提供,则不应使用 ObjectId。
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-ScriptUriManagedIdentityObjectId
用户分配的托管标识的对象 ID (GUID 值)。 如果未提供,则不应使用 ClientId。
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-SourceCommandId
指定预定义内置脚本的 commandId。
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-SourceScript
指定要在 VM 上执行的脚本内容。
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-SourceScriptUri
指定脚本下载位置。 它可以是具有读取访问权限或公共 URI 的 Azure 存储 Blob 的 SAS URI。
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-SubscriptionId
唯一标识 azure 订阅Microsoft的订阅凭据。 此订阅 ID 是每个服务调用的 URI 的一部分。
类型: | String |
Position: | Named |
默认值: | (Get-AzContext).Subscription.Id |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Tag
资源标记
类型: | Hashtable |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-TimeoutInSecond
执行 run 命令的超时(以秒为单位)。
类型: | Int32 |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-TreatFailureAsDeploymentFailure
可选。 如果设置为 true,脚本中的任何失败都将失败,并且 ProvisioningState 将标记为“失败”。 如果设置为 false,ProvisioningState 将仅反映运行命令是否由扩展平台运行,则不会指示脚本在脚本失败时是否失败。 如果脚本失败,请参阅 run 命令的实例视图,以查看 executionMessage、输出、错误: https://aka.ms/runcommandmanaged#get-execution-status-and-results
类型: | SwitchParameter |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-VMScaleSetName
VM 规模集的名称。
类型: | String |
Position: | Named |
默认值: | None |
必需: | True |
接受管道输入: | False |
接受通配符: | False |
-WhatIf
显示运行该 cmdlet 时会发生什么情况。 cmdlet 未运行。
类型: | SwitchParameter |
别名: | wi |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |