變數
適用於: Windows Azure Pack for Windows Server、System Center 2012 R2 Orchestrator
自動化 變數是可用於所有 Runbook 的值。 您可以從管理入口網站、Windows PowerShell 或 Runbook 中建立、修改和擷取這些變數。自動化 變數適用於下列案例:
在多個 Runbook 之間共用一個值。
從相同 Runbook 的多個工作之間共用一個值。
從管理入口網站,或從 Runbook 使用的 Windows PowerShell 命令列中管理值。
自動化 變數會保存,因此即使在 Runbook 失敗時也可以繼續使用這些變數。 這也能讓 Runbook 設定值,接著由另一個 Runbook 使用該值,或由相同的 Runbook 在下次執行時使用。
建立變數時,您必須從下列清單指定其資料類型。 如此能讓管理入口網站為變數值顯示適當的控制項。 您只能將正確類型的值指派給變數。
字串
整數
布林值
日期時間
建立變數時,您可以指定將其加密儲存。 加密變數後,會在 SMA 資料庫中安全地儲存它,而且無法從 Get-SmaVariable
Cmdlet 擷取其值。 若要擷取加密的值,唯一的方法是從 Runbook 中的 Get-AutomationVariable
活動擷取。 您可以藉由建立雜湊表,將多個定義類型的值儲存至單一變數。
Windows PowerShell Cmdlet
下表中的 Cmdlet 可用來建立和管理使用 服務管理自動化 中的 Windows PowerShell 之變數。
Cmdlet | 說明 |
---|---|
Get-SmaVariable | 擷取現有變數的值。 |
Set-SmaVariable | 建立新變數,或設定現有變數的值。 |
Runbook 活動
下表中的活動是用來存取 Runbook 中的變數。
活動 | 說明 |
---|---|
Get-AutomationVariable | 擷取現有變數的值。 |
Set-AutomationVariable | 設定現有變數的值。 |
注意 |
---|
您應該避免在 Get-AutomationVariable 的 –Name 參數中使用變數,因為這可能使得探索 Runbook 與 自動化 變數之間的相依性變得複雜。 |
建立新的自動化變數
使用管理入口網站建立新變數
選取 [自動化] 工作區。
在視窗頂端,按一下 [資產]。
在視窗底部,按一下 [加入設定]。
按一下 [加入變數]。
在 [類型] 下拉式清單中,選取資料類型。
在 [名稱] 方塊輸入變數的名稱。
按一下向右鍵。
輸入變數的值,並指定是否要加密它。
按一下核取記號以儲存新變數。
在 Service Management Automation 中使用 Windows PowerShell 建立新變數
Set-SmaVariable Cmdlet 會建立新變數和設定現有變數的值。 下列命令範例會顯示如何建立字串類型的變數。
$web = 'https://MySMAServer'
$port = 9090
Set-SMAVariable –WebServiceEndpoint $web –Port $port –Name 'MyVariable' –Value 'My String'
在 Runbook 中使用變數
使用 Get-AutomationVariable
活動在 Runbook 中使用變數。
在 Runbook 中使用變數
下列程式碼範例示範如何設定及擷取 Runbook 中的變數。 在此範例中,它會假設已經建立名為 NumberOfIterations 和 NumberOfRunnings 的整數類型變數,和名為 SampleMessage 的字串類型變數。
$NumberOfIterations = Get-AutomationVariable -Name 'NumberOfIterations' $NumberOfRunnings = Get-AutomationVariable -Name 'NumberOfRunnings' $SampleMessage = Get-AutomationVariable -Name 'SampleMessage' Write-Output "Runbook has been run $NumberOfRunnings times." for ($i = 1; $i -le $NumberOfIterations; $i++) { Write-Output "$i`: $SampleMessage" } Set-AutomationVariable –Name NumberOfRunnings –Value (NumberOfRunngs += 1)