我正在尝试制作一个脚本来跟踪所有瘦客户端用户的登录/注销时间并将它们写入服务器上的文本文件。我将在任务计划程序中设置一个任务,该任务运行一个批处理文件,每次用户登录/注销时都会写入一个文本文件。要写入 C:/ 的文件,该脚本必须以管理员身份运行。这可以通过在任务计划程序中选择“以最高权限运行”来完成,并确保它在管理员帐户下运行。
但是,我相信当我使用 %USERPROFILE% 命令时,它会返回管理员的用户名,而不是刚刚登录/退出的用户名。有没有办法以管理员权限运行脚本,但有一些命令可以让刚刚登录/退出的用户触发任务?
这实际上比看起来要容易一些。我们可以做的是抓取当前正在运行的任务(在本例中为 explorer.exe)并提取当前正在运行的用户信息,供您稍后用作变量。
通过首先执行此操作,您现在可以使用
%_curruser%
生成用户名和%_currdomain%
域。测试:
打开CMD as
admin
,逐行输入上面的代码。现在,键入@echo %_curruser%
,它将打印当前用户的用户名。从这里开始,您可以使用 this 而不是
%userprofile%
.例如,在上述之后,您可以说:
这会将当前登录用户、日期和时间戳从以管理员身份运行的 shell 打印到 C:\ 驱动器,并在每次运行时使用登录用户唯一的文件名继续附加数据。