你当前正在访问 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

输出

IVirtualMachineRunCommand