获取当前登录的用户名

时间:2014-01-08 02:11:33

标签: vba vbscript cmd

我正在尝试使用VBS获取用户的登录用户名。

我尝试了一些代码,当我直接运行脚本时(Double Clicking it)

Set wshNetwork = CreateObject("WScript.Network")
strUser = wshNetwork.Username
WScript.Echo "Current User: " & strUser

但是,我需要做的是使用CMD使用AT命令运行计划任务。 运行时,用户名将是计算机的名称,而不是登录用户。

当我以管理员身份运行CMD并使用wscript运行脚本时,也会出现此问题。

有没有办法绕过这个上下文并获取登录用户而不是运行脚本的用户?

2 个答案:

答案 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开头的变量。