共用方式為


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

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-AzStorageBlobSASToken 在 Azure 入口網站 產生 SAS URL。 如果使用 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

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

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

以作業身分執行命令

類型: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

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

類型:String
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-ErrorBlobManagedIdentityObjectId

使用者指派受控識別的物件標識碼(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

虛擬機的實例標識碼。

類型:String
Position:Named
預設值:None
必要:True
接受管線輸入:False
接受萬用字元:False

-Location

資源位置

類型:String
Position:Named
預設值:None
必要:True
接受管線輸入:False
接受萬用字元:False

-NoWait

以異步方式執行命令

類型:SwitchParameter
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-OutputBlobManagedIdentityClientId

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

類型:String
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-OutputBlobManagedIdentityObjectId

使用者指派受控識別的物件標識碼(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

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

類型:String
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-RunAsUser

在執行執行命令時,指定 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

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

類型:String
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-ScriptUriManagedIdentityObjectId

使用者指派受控識別的物件標識碼(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

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

類型:String
Position:Named
預設值:(Get-AzContext).Subscription.Id
必要:False
接受管線輸入:False
接受萬用字元:False

-Tag

資源標籤

類型:Hashtable
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-TimeoutInSecond

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

類型:Int32
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-TreatFailureAsDeploymentFailure

選擇性。 如果設定為 true,腳本中的任何失敗都會失敗,且 ProvisioningState 會標示為 Failed。 如果設定為 false,ProvisioningState 只會反映延伸模組平臺是否執行 run 命令,它不會指出腳本在腳本失敗時是否失敗。 如需腳本失敗,請參閱 run 命令的實例檢視,以查看 executionMessage、output、error: 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