Переменные
Применимо к:Windows Azure Pack for Windows Server, System Center 2012 R2 Orchestrator
Переменные Автоматизация — это значения, доступные для всех модулей Runbook. Их можно создать, изменить и вернуть на портале управления, в Windows PowerShell или из модуля Runbook. Переменные Автоматизация полезны в следующих случаях.
Совместное использование значения несколькими модулями Runbook.
Совместное использование значения несколькими заданиями из одного модуля Runbook.
Управление значением на портале управления или из командной строки Windows PowerShell, которая используется модулями Runbook.
Переменные Автоматизация сохраняются так, что они остаются доступными даже в случае сбоя модуля Runbook. Это также позволяет задать значение в одном модуле Runbook, а затем использовать его в другом или в том же модуле Runbook при его следующем запуске.
При создании переменной необходимо указать его тип данных из следующего списка. Это нужно для того, чтобы на портале управления можно было отобразить соответствующий элемент управления для значения переменной. Переменной можно назначить только значение соответствующего типа.
Строка
Целое число
Логическое значение
DateTime
При создании переменной можно задать ее хранение в зашифрованном виде. Если переменная шифруется, она безопасно хранится в базе данных SMA, и ее значение невозможно вернуть из командлета Get-SmaVariable. Единственный способ, которым можно вернуть зашифрованную переменную, — с помощью командлета Get-AutomationVariable в модуле Runbook. Несколько значений определенного типа можно сохранить в отдельной переменной, создав хэш-таблицы.
Командлеты Windows PowerShell
Командлеты, представленные в следующей таблице, используются для создания переменных и управления ими с помощью Windows PowerShell в Service Management Automation.
Командлеты |
Описание |
---|---|
Возвращает значение существующей переменной. |
|
Создает новую переменную или задает значение для существующей переменной. |
Действия модуля Runbook
Действия в следующей таблице используются для доступа к переменным в модуле Runbook.
Действия |
Описание |
---|---|
Get-AutomationVariable |
Возвращает значение существующей переменной. |
Set-AutomationVariable |
Задает значение для существующей переменной. |
Примечание |
---|
Следует избегать использования переменных в параметре –Name в Get-AutomationVariable, поскольку это может усложнить обнаружение зависимостей между модулями Runbook и переменными Автоматизация. |
Создание переменной службы автоматизации
Создание переменной с помощью портала управления
Выберите рабочую область Автоматизация.
В верхней части окна щелкните Ресурсы.
В нижней части окна щелкните Добавить параметр.
Нажмите кнопку Добавить переменную.
В раскрывающемся списке Тип выберите тип данных.
Введите имя переменной в поле Имя.
Нажмите кнопку со стрелкой вправо.
Введите значение переменной и укажите, следует ли ее шифровать.
Установите флажок, чтобы сохранить переменную.
Создание переменной с помощью Windows PowerShell в службе Service Management Automation
Командлет Set-SmaVariable создает новую переменную и задает значение для существующей переменной. В приведенных ниже примерах команд показано, как создать переменную строкового типа.
$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)