繁体   English   中英

获取当前登录的用户名

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM