
[英]Get logged on username in Excel VBA - not the account running Excel (using RunAs)
[英]Get Currently Logged in username
我正在尝试使用VBS获取用户的登录用户名。
我尝试了一些在直接运行脚本时有效的代码(双击它)
Set wshNetwork = CreateObject("WScript.Network")
strUser = wshNetwork.Username
WScript.Echo "Current User: " & strUser
但是,我需要做的是使用CMD通过AT命令运行计划的任务。 运行时,用户名将是计算机的名称,而不是登录的用户。
当我以管理员身份运行CMD并使用wscript运行脚本时,也会发生此问题。
有什么方法可以绕过此上下文并获得登录用户,而不是运行脚本的用户?
命令
query session console
应该提供您所需要的
为了更容易解析
quser console
编辑-包含示例VBS代码
Dim strCmd
strCmd = "cmd /q /c ""quser console | find /i ""console"" "" "
Dim buffer
buffer = WScript.CreateObject("WScript.Shell").Exec(strCmd).StdOut.ReadAll()
Dim c, consoleUserName
c = InStr(buffer,"console")
If c > 2 Then
consoleUserName = Trim(Mid(buffer,2,c-2))
Else
consoleUserName = ""
End If
WScript.Echo consoleUserName
我建议你执行命令
组
从提示。 它可能会揭示环境中设置的一些有趣的项目。
设定使用者
将检查列表,以便仅显示起始user
变量。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.