变量
适用对象:Windows Azure Pack for Windows Server, System Center 2012 R2 Orchestrator
自动化 变量是可供所有 runbook 使用的值。 可以从管理门户、Windows PowerShell 或 Runbook 中创建、修改和检索它们。自动化 变量对于以下情况非常有用:
在多个 runbook 之间共享值。
在相同 runbook 中的多个作业之间共享值。
从管理门户或 Windows PowerShell 命令行管理 runbook 使用的值。
自动化 变量会保留,以便即使 runbook 失败时它们也继续可用。 这还允许值由一个 runbook 设置,随后由另一个 runbook 使用,或是由同一个 runbook 在下次运行使用。
创建变量时,必须从以下列表指定其数据类型。 这样管理门户便可以为变量值显示相应的控件。 只能将正确类型的值分配给变量。
字符串
整数
布尔值
日期/时间
创建变量时,可以指定它以加密方式存储。 对变量进行加密时,它会安全地存储在 SMA 数据库中,无法通过 Get-SmaVariable cmdlet 检索其值。 可以用于检索加密值的唯一方法是在 runbook 中通过 Get-AutomationVariable 活动。 可以通过创建哈希表将具有已定义类型的多个值存储到单个变量中。
Windows PowerShell Cmdlet
下表中的 cmdlet 用于通过 Service Management Automation 中的 Windows PowerShell 创建和管理变量。
Cmdlet |
描述 |
---|---|
检索现有变量的值。 |
|
创建新变量,或设置现有变量的值。 |
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)