我正在尝试使用VBS获取用户的登录用户名。
我尝试了一些代码,当我直接运行脚本时(Double Clicking it)
Set wshNetwork = CreateObject("WScript.Network")
strUser = wshNetwork.Username
WScript.Echo "Current User: " & strUser
但是,我需要做的是使用CMD使用AT命令运行计划任务。 运行时,用户名将是计算机的名称,而不是登录用户。
当我以管理员身份运行CMD并使用wscript运行脚本时,也会出现此问题。
有没有办法绕过这个上下文并获取登录用户而不是运行脚本的用户?
答案 0 :(得分:3)
命令
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
答案 1 :(得分:1)
我建议你执行命令
组
从提示符。它可能会揭示可能感兴趣的环境中设置的一些项目。
设置用户
将审查列表,以便只显示以user
开头的变量。