获取当前登录的用户名(Get Currently Logged in username)

2019-10-19 04:27发布

我想用VBS来获得在用户的用户名登录。

我尝试了一些代码,当我直接运行该脚本(双击它),它的工作原理

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

不过,我需要做的就是用CMD运行使用AT命令计划任务。 当它运行时,用户名应该不是登录的用户的计算机的名称。

当我运行CMD作为管理员,并使用WScript的运行脚本也会发生此问题。

有什么办法来绕过这一背景下,并获得用户,而不是运行该脚本的一个记录?

Answer 1:

命令

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


Answer 2:

我建议你执行的命令

从提示。 这可能表明,在可能感兴趣的环境中设置的几个项目。

设置用户

将审查的名单,以便只有启动变量user将被显示。



文章来源: Get Currently Logged in username
标签: vba vbscript cmd