如何在任务调度程序中获取触发任务的登录名

cis*_*iso 4 windows windows-7 batch-file task-scheduler

在 Windows 7 任务调度程序中,我有一个在任何用户登录时运行的任务。此任务以管理员身份运行,因此它可以获得适当的权限并运行 bat 文件。

我想将触发任务的登录用户的用户名(userid)传递给 bat 文件。我需要使用管理员帐户运行 bat 文件,这会导致环境变量 USERNAME 被设置为管理员而不是登录的用户名。

您如何获取登录导致任务触发的用户的用户 ID?

Joe*_*oel 7

这并不理想,但您可以有一个单独的任务,即同时将用户名写入日志文件,稍后再关联日志。就此而言,由于任务在登录时运行,因此此信息已在事件日志中可用。如果您真的不想稍后再关联这些,您可以向现有任务添加代码(或步骤)以提取最近的登录事件。

登录事件日志

更仔细地查看我自己的日志,我发现您需要事件 ID 4624,但仅在登录类型为 2 或 7 的情况下。我看到许多系统帐户执行各种操作的登录类型 5 事件。这里有更多信息:

http://www.windowsecurity.com/articles-tutorials/misc_network_security/Logon-Types.html