有可能确定什么Windows帐户执行Runbook? 我正在使用SC Orchestrator 2012 R2。 理想情况下,我想确定哪个帐户(用于审计和发送电子邮件)启动一个运行簿。
提前致谢。

步骤1
我只提示此Runbook的用户标识。 User ID (data type: String)
第2步
我需要确定Runbook的ID,以便在稍后的SQL查询中提取SID。 这是返回作业ID的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,并从启动Runbook的用户的另一个SQL表中获取SID:
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脚本来获取用户的ID,电子邮件地址等
$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审计历史logging或AuditTrail
“运行logging审计历史logging运行logging审计历史跟踪对运行logging中每个活动的更改,包括进行更改的用户,更改发生的date和时间,更改的活动以及任何改变了属性,只要Runbook存在并且不能被清除,审计历史就会被维护。
“在Orchestrator Runbook Designer中,您还可以看到一些审计信息,在控制台中,每个Runbook都有一个Audit History(审计历史)选项卡,在Audit History(审计历史logging)选项卡中,您可以看到所有对Runbook的更改,例如谁更改活动的名称下面是显示审计历史logging信息示例的图,“审计历史logging”选项卡中显示的信息是来自Orchestrator数据库,OBJECT_AUDIT表和CHECK_IN_HISTORY表中两个表的数据的混合。