![在提升的命令提示符中显示已登录用户的 %username%,而不是提升的用户 %username%?](https://linux22.com/image/1314529/%E5%9C%A8%E6%8F%90%E5%8D%87%E7%9A%84%E5%91%BD%E4%BB%A4%E6%8F%90%E7%A4%BA%E7%AC%A6%E4%B8%AD%E6%98%BE%E7%A4%BA%E5%B7%B2%E7%99%BB%E5%BD%95%E7%94%A8%E6%88%B7%E7%9A%84%20%25username%25%EF%BC%8C%E8%80%8C%E4%B8%8D%E6%98%AF%E6%8F%90%E5%8D%87%E7%9A%84%E7%94%A8%E6%88%B7%20%25username%25%EF%BC%9F.png)
在 Windows Vista Business 计算机上,我将 Windows 任务计划程序任务设置为每次任何用户登录时运行。该任务以某个提升的管理员用户身份运行,因为脚本是从需要该用户身份验证才能访问的文件服务器执行的和所讨论的脚本将执行需要完全控制正在执行的机器的操作。该脚本运行良好,可以访问网络资源,并出色地执行管理任务,但是,%username% 和其他环境变量提升用户而不是实际已经登录的用户。
有没有办法使用当前登录用户的环境变量来运行提升的任务?或者我有什么办法可以找出提升的提示是从哪个帐户内部执行的(如果我能找出来,我就可以获取该用户的环境变量)?
为了使我的问题更加清晰,下面是一个场景和我的脚本中的一行。假设名为鲍勃登录。任务计划程序以提升的用户身份触发脚本管理后台。该脚本执行命令:
eventcreate /t information /id 118 /l SYSTEM /so "My Script" /d "%username% logged in on %date% at %time%"
描述中的 %username% 显示为管理后台代替鲍勃有没有办法获取启动提升提示的帐户的 %username%(或任何其他环境变量)(即鲍勃显示为 %username%,而不是管理后台自从鲍勃的账号就是登录的账号)?
(笔记:指某东西的用途事件创建只是一个例子。脚本的作用远不止这些,所以这里的问题不是事件创建,但有些操作需要实际登录用户的环境变量。)