2014-01-08 7 views
1

Я пытаюсь получить вошедшее имя пользователя пользователя с помощью VBS.Получить настоящее имя пользователя

Я попробовал некоторые коды, который работает, когда я запускаю скрипт непосредственно (двойной щелчок)

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

Однако то, что мне нужно сделать, это использовать CMD для выполнения запланированного задания с помощью команды AT. Когда он запустится, имя пользователя будет именем компьютера, а не зарегистрированным пользователем.

Эта проблема также возникает, когда я запускаю CMD в качестве администратора и использую wscript для запуска скрипта.

Есть ли способ обойти этот контекст и получить зарегистрированного пользователя вместо того, который запускает скрипт?

ответ

3

Команда

query session console 

должен обеспечить то, что вам нужно

Для легче разобрать

quser console 

EDITED - Включен пример кода 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 
+0

спасибо, я могу видеть имя пользователя, но как мне получить имя пользователя из консоли CMD в скрипт vbs? –

+0

@BloopieBloops: Я включил образец кода. При необходимости адаптируйте. –

+0

Извините за поздний ответ, я использовал psexec для запуска wscript этого образца кода, и он получается пустым –

1

Я предлагаю вам выполнить команду

набор

из командной строки. Он может выявить несколько элементов, которые заданы в среде, которая может представлять интерес.

Набор пользователя

будет подвергать цензуре список таким образом, что будут отображаться только переменные, которые начинаются user.

+0

Как я могу использовать это сделать мой скрипт vbs играть зарегистрированного пользователя? Когда в сеансе задается пользователь, отображает администратора –

+0

Невозможно дублировать ваши наблюдения. 'USERNAME' настроен правильно для меня - работает как администратор или нет. – Magoo

Смежные вопросы