共用方式為


變數

 

適用於: 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 設定現有變數的值。
System_CAPS_ICON_note.jpg 注意

您應該避免在 Get-AutomationVariable 的 –Name 參數中使用變數,因為這可能使得探索 Runbook 與 自動化 變數之間的相依性變得複雜。

建立新的自動化變數

使用管理入口網站建立新變數

  1. 選取 [自動化] 工作區。

  2. 在視窗頂端,按一下 [資產]。

  3. 在視窗底部,按一下 [加入設定]。

  4. 按一下 [加入變數]。

  5. 在 [類型] 下拉式清單中,選取資料類型。

  6. 在 [名稱] 方塊輸入變數的名稱。

  7. 按一下向右鍵。

  8. 輸入變數的值,並指定是否要加密它。

  9. 按一下核取記號以儲存新變數。

在 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)  
    

請參閱

Service Management Automation
撰寫自動化 Runbook
全域資產