Можно ли определить, какая учетная запись 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 ».