Vba 获取当前登录的用户名

Vba 获取当前登录的用户名,vba,vbscript,cmd,Vba,Vbscript,Cmd,我正在尝试使用VBS获取用户的登录用户名 我尝试了一些代码,当我直接双击它运行脚本时,这些代码是有效的 Set wshNetwork = CreateObject("WScript.Network") strUser = wshNetwork.Username WScript.Echo "Current User: " & strUser 但是,我需要做的是使用CMD来运行使用AT命令的计划任务。 当它运行时,用户名将是计算机的名称,而不是登录的用户 当我以管理员身份运行CMD并使用w

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

我尝试了一些代码,当我直接双击它运行脚本时,这些代码是有效的

Set wshNetwork = CreateObject("WScript.Network")
strUser = wshNetwork.Username
WScript.Echo "Current User: " & strUser
但是,我需要做的是使用CMD来运行使用AT命令的计划任务。 当它运行时,用户名将是计算机的名称,而不是登录的用户

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


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

我建议您执行该命令

query session console
设置

从提示中。它可能会显示在环境中设置的一些可能感兴趣的项目

设置用户


将审查列表,以便仅显示启动用户的变量。

我建议您执行该命令

query session console
设置

从提示中。它可能会显示在环境中设置的一些可能感兴趣的项目

设置用户

将审查列表,以便仅显示启动用户的变量。

命令

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
命令

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

如何使用此选项使vbs脚本显示登录的用户?在会话中,set user displays Administrator(设置用户显示管理员)无法复制您的观察结果。已为我正确设置用户名-是否以管理员身份运行。如何使用此设置使我的vbs脚本显示登录的用户?在会话中,set user displays Administrator(设置用户显示管理员)无法复制您的观察结果。用户名设置是否正确-是否以管理员身份运行。谢谢,我可以看到用户名,但如何将用户名从CMD控制台输入vbs脚本?很抱歉,回复太晚,我使用psexec运行wscript这个示例代码,结果是blank@BloopieBloops:使用WScript.StdOut.WriteLine更改WScript.Echo,并使用cscript而不是WScript运行。哦,等等,我使用另一种方法运行了它,它工作了!非常感谢!谢谢,我可以看到用户名,但是如何将用户名从CMD控制台输入到vbs脚本中?很抱歉,回复太晚,我使用psexec运行wscript这个示例代码,结果是blank@BloopieBloops:使用WScript.StdOut.WriteLine更改WScript.Echo,并使用cscript而不是WScript.oh运行,等等,我用另一种方法运行它,它工作了!非常感谢!