Можно ли определить, кто запускает Runbook в SC Orchestrator 2012 R2?
Можно ли определить, какая учетная запись Windows выполняет Runbook? Я использую SC Orchestrator 2012 R2. в идеале я хочу определить, какая учетная запись (для аудита и отправки электронных писем) запускает рабочую книгу.
Заранее спасибо.
2 ответа
Шаг 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. Сюда входит пользователь, который внес изменение, дата и время, когда произошло изменение, действие, которое было изменено, а также текущие и предыдущие значения любого измененные свойства. История аудита сохраняется до тех пор, пока книга заданий существует и не может быть очищена. "
"В Orchestrator Runbook Designer вы также можете увидеть некоторую информацию аудита. В консоли есть вкладка" Журнал аудита "для каждого журнала выполнения. На вкладке" Журнал аудита "вы можете увидеть все изменения в модуле Runbook, например, которые меняют имя действия Ниже приведен рисунок, на котором показан пример информации журнала аудита. Информация, отображаемая на вкладке "История аудита", представляет собой смесь данных из двух таблиц в базе данных Orchestrator, таблицы OBJECT_AUDIT и таблицы CHECK_IN_HISTORY. "