Share via


Set-AzVmssVMRunCommand

建立或更新 VMSS VM 執行命令的作業。

Syntax

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>]

Description

建立或更新 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 的選項,或使用 New-Az 儲存體 BlobSASToken 的 SAS 令牌,在 Azure 入口網站 上產生 SAS URL。 如果使用 New-Az 儲存體 BlobSASToken 產生 SAS 令牌,您的 SAS URL = 基底 Blob URL + “?” + SAS 令牌來自 New-Az 儲存體 BlobSASToken。

範例 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

在 VMSS VM 實例上建立或更新執行命令,並將腳本內容直接傳遞至 -SourceScript 參數。 使用 『;』 分隔多個命令。

範例 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-Az 儲存體 BlobSASToken 來產生 SAS 令牌。 如果使用 New-Az 儲存體 BlobSASToken 產生 SAS 令牌,您的 SAS URL = 基底 Blob URL + “?” + SAS 令牌來自 New-Az 儲存體 BlobSASToken。

範例 6:在 VMSS VM 實例上建立或更新執行命令,使用 RunAsUser 和 RunAsPassword 參數以不同使用者身分執行命令。

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 參數以不同使用者身分執行命令。 若要讓 RunAs 正常運作,請連絡 VM 的管理員,並確定已在 VM 上新增使用者、使用者有權存取「執行命令」所存取的資源 (目錄、檔案、網路等等),而且如果是使用 Windows VM,也需確認 VM 上已執行「次要登入」服務。

參數

-AsJob

以作業身分執行命令

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-AsyncExecution

選擇性。 如果設定為 true,則一開始腳本就會完成布建,且不會等待腳本完成。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Confirm

執行 Cmdlet 之前先提示您確認。

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DefaultProfile

DefaultProfile 參數無法運作。 如果針對不同的訂用帳戶執行 Cmdlet,請使用 SubscriptionId 參數。

Type:PSObject
Aliases:AzureRMContext, AzureCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ErrorBlobManagedIdentityClientId

使用者指派受控識別的用戶端標識碼(GUID 值)。 如果提供此專案,就不應該使用 ObjectId。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ErrorBlobManagedIdentityObjectId

使用者指派受控識別的物件標識碼(GUID 值)。 如果提供此專案,就不應該使用 ClientId。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ErrorBlobUri

指定將上傳文稿錯誤數據流的 Azure 記憶體 Blob。 使用具有讀取、附加、建立、寫入存取權的SAS URI,或使用受控識別來提供 Blob 的 VM 存取權。 請參閱 errorBlobManagedIdentity 參數。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InstanceId

虛擬機的實例標識碼。

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Location

資源位置

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-NoWait

以異步方式執行命令

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-OutputBlobManagedIdentityClientId

使用者指派受控識別的用戶端標識碼(GUID 值)。 如果提供此專案,就不應該使用 ObjectId。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-OutputBlobManagedIdentityObjectId

使用者指派受控識別的物件標識碼(GUID 值)。 如果提供此專案,就不應該使用 ClientId。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-OutputBlobUri

指定將上傳文本輸出數據流的 Azure 記憶體 Blob。 使用具有讀取、附加、建立、寫入存取權的SAS URI,或使用受控識別來提供 Blob 的 VM 存取權。 請參閱 outputBlobManagedIdentity 參數。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Parameter

腳本所使用的參數。 若要建構,請參閱PARAMETER屬性和建立哈希表的NOTES一節。

Type:IRunCommandInputParameter[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ProtectedParameter

腳本所使用的參數。 若要建構,請參閱 PROTECTEDPARAMETER 屬性的 NOTES 區段並建立哈希表。

Type:IRunCommandInputParameter[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ResourceGroupName

資源群組的名稱。

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-RunAsPassword

在執行執行命令時,指定 VM 上的使用者帳戶密碼。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RunAsUser

在執行執行命令時,指定 VM 上的用戶帳戶。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RunCommandName

虛擬機執行命令的名稱。

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-ScriptLocalPath

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-ScriptUriManagedIdentityClientId

使用者指派受控識別的用戶端標識碼(GUID 值)。 如果提供此專案,就不應該使用 ObjectId。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ScriptUriManagedIdentityObjectId

使用者指派受控識別的物件標識碼(GUID 值)。 如果提供此專案,就不應該使用 ClientId。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SourceCommandId

指定預先定義內建腳本的 commandId。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SourceScript

指定要在 VM 上執行的文稿內容。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SourceScriptUri

指定文稿下載位置。 它可以是具有讀取許可權或公用 URI 的 Azure 記憶體 Blob SAS URI。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SubscriptionId

可唯一識別 Microsoft Azure 訂用帳戶的訂用帳戶認證。 訂用帳戶識別碼會構成每個服務呼叫 URI 的一部分。

Type:String
Position:Named
Default value:(Get-AzContext).Subscription.Id
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Tag

資源標籤

Type:Hashtable
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-TimeoutInSecond

執行命令的逾時以秒為單位。

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-TreatFailureAsDeploymentFailure

選擇性。 如果設定為 true,腳本中的任何失敗都會失敗,且 ProvisioningState 會標示為 Failed。 如果設定為 false,ProvisioningState 只會反映延伸模組平臺是否執行 run 命令,它不會指出腳本在腳本失敗時是否失敗。 如需腳本失敗,請參閱 run 命令的實例檢視,以查看 executionMessage、output、error: https://aka.ms/runcommandmanaged#get-execution-status-and-results

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-VMScaleSetName

VM 擴展集的名稱。

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

顯示執行 Cmdlet 後會發生的情況。 未執行 Cmdlet。

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

輸出

IVirtualMachineRunCommand