Назад | Перейти на главную страницу

Можно ли определить, кто запускает Runbook в SC Orchestrator 2012 R2?

Можно ли определить, какая учетная запись Windows выполняет Runbook? Я использую SC Orchestrator 2012 R2. в идеале я хочу определить, какая учетная запись (для аудита и отправки электронных писем) запускает книгу выполнения.

Заранее спасибо.

Шаг 1

Я запрашиваю только идентификатор пользователя для этого модуля Runbook. User ID (data type: String)

Шаг 2

Мне нужно определить идентификатор модуля Runbook, чтобы получить SID в следующем запросе SQL. Вот SQL-запрос, который возвращает идентификатор задания.

SELECT POLICYINSTANCES.JobID 
FROM POLICYINSTANCES INNER JOIN ACTIONSERVERS ON POLICYINSTANCES.ActionServer = ACTIONSERVERS.UniqueID
WHERE     
(POLICYINSTANCES.ProcessID = '{Activity Process from "Start"}') AND 
(ACTIONSERVERS.Computer = '{Runbook Server Name from "Start"}') AND (POLICYINSTANCES.Status IS NULL)
This should return something like the following GUID: {AFA8BF28-1937-4DAE-A160-30FF130AE6CD}.

Шаг 3

Как только у вас есть этот GUID, вам нужно избавиться от фигурных скобок. Для этого я использую следующий сценарий PowerShell:

$a = '{Full line as string with fields separated by ':' from "Get Runbook Job ID"}'
Write-Host $a.Trim('{}')
This should return the GUID without {} AFA8BF28-1937-4DAE-A160-30FF130AE6CD

Шаг 4

Получив GUID, мы можем найти нужный Runbook и получить SID из другой таблицы SQL пользователя, запустившего Runbook:

Select Jobs.CreatedBy
From [Microsoft.SystemCenter.Orchestrator.Runtime].Jobs AS Jobs
INNER JOIN POLICIES ON Jobs.RunbookId = POLICIES.UniqueID
Where Jobs.Id = '{PS Execution 01 Results {with Write-Host) from "Remove {} from Runbook Job GUID"}'

Теперь это вернет SID учетной записи пользователя, примерно так: S-1-5-21-1855722787-1516450073-351226437-1111

Шаг 5

Я запускаю следующий сценарий Powershell, чтобы получить идентификатор пользователя, адрес электронной почты и т. Д.

$objSID = New-Object System.Security.Principal.SecurityIdentifier("{Full line as string with fields separated by ';' from "Get the SID of the user that executed this Runbook"}")
$objUser = $objSID.Translate( [System.Security.Principal.NTAccount])
$result = $objUser.Value
$UserName = $result.TrimStart("YOUR-DOMAIN-NAME\")

Шаг 6

Теперь вы можете получать всевозможную информацию от пользователя, запустившего Runbook.

История аудита Runbook или AuditTrail

«Журнал аудита Runbook Журнал аудита Runbook отслеживает изменения для каждого действия в модуле Runbook. Он включает в себя пользователя, который внес изменение, дату и время, когда произошло изменение, действие, которое было изменено, а также текущие и предыдущие значения любых измененные свойства. Журнал аудита сохраняется, пока существует модуль Runbook, и его нельзя очистить. "

"В Orchestrator Runbook Designer вы также можете увидеть некоторую информацию аудита. В консоли есть вкладка Audit History для каждого Runbook. На вкладке Audit History вы можете увидеть все изменения в Runbook, например, кто изменяет имя действия . Ниже приведен рисунок, на котором показан пример информации истории аудита. Информация, показанная на вкладке «История аудита», представляет собой смесь данных из двух таблиц в базе данных Orchestrator, таблицы OBJECT_AUDIT и таблицы CHECK_IN_HISTORY ».

https://technet.microsoft.com/en-us/library/hh403785.aspx

http://contoso.se/blog/?p=2980