使用執行命令在 VM 中執行指令碼

執行命令使用虛擬機器 (VM) 代理程式在 Azure Windows 或 Linux VM 中執行指令碼。 您可以使用這些指令碼,進行一般電腦或應用程式管理。 這些指令碼能協助快速診斷和修復 VM 存取與網路問題,並讓 VM 恢復正常狀態。 指令碼可以內嵌在屬性中,或參考預先發佈的資源庫指令碼。

原始的命令集以動作為導向。 更新的命令集以管理為導向,可讓您執行多個指令碼且限制較少。 本文將說明這兩種執行命令集之間的差異,並協助您決定您的案例中要使用的正確命令集。

重要

受控執行命令目前可用於 Azure CLI、PowerShell 和 API。 入口網站的功能即將推出。

使用動作或受控命令的時機

原始的命令集以動作為導向。 若是下列必須執行的情況,您應該考慮使用這種命令集:

  • 要從 VM 取得內容的小型指令碼
  • 設定 VM 的指令碼 (設定登入機碼、變更組態)
  • 用於診斷的一次性指令碼

如需可用的動作命令以及如何套用這些命令的指示,請參閱適用於 Linux 的動作執行命令適用於 Windows 的動作執行命令

更新的命令集以管理為導向。 如果您的需求與下列範例一致,請考慮使用受控執行命令:

  • 指令碼必須做為 VM 部署的一部分執行
  • 必須週期性執行指令碼
  • 必須循序執行多個指令碼
  • 透過執行安裝指令碼來啟動 VM
  • 發佈要共用和重複使用的自訂指令碼

如需了解如何使用這些命令,請參閱適用於Linux 的受控執行命令適用於 Windows 的受控執行命令

注意

允許的受控執行命令數目上限目前限制為 25 個。

功能支援的比較

功能支援 動作 RunCommand 受控 RunCommand
ARM 範本 否,這是 POST 動作 是,這是資源類型
長時間執行 限制 90 分鐘 客戶指定的逾時時間
執行帳戶 系統帳戶 / root 客戶指定的使用者
多個執行命令 僅限一個作用中 多個平行或循序多個
大型輸出 限制為 4k (在狀態 Blob 中 ) 上傳至客戶的附加 Blob
追蹤進度 僅報告最終狀態 報告執行期間的進度和最後 4k 的輸出
非同步執行 目標狀態/佈建等候指令碼完成 客戶指定的非同步旗標 (若佈建等候指令碼的話)
虛擬機器擴展集支援 只在 VM 執行個體上 支援虛擬機擴展集模型和擴增
產生 SAS Blob 不支援 CRP 自動產生客戶 Blob 的 SAS 並加以管理
資源庫 (自訂命令) 僅限內建 commandId 客戶可以發佈指令碼並共用指令碼

下一步

開始使用適用於Linux 的受控執行命令適用於 Windows 的受控執行命令