Что такое Windows-эквивалент команды Unix «whoami»?

72

Есть ли в Windows эквивалент Unix-команды whoami? Если так, то, что это?

койка
источник
2
Да, есть, и это также whoami
DeepSpace101
используйте команду «запросить сессию», чтобы получить список вошедших в систему или отключенных терминальных служб, пользователи
Мартин

Ответы:

73

Начиная с Windows 2000, whoamiкоманда была частью стандартной командной строки (спасибо pk за разъяснение в комментариях!).

Вы можете сделать это: Откройте командную строку и введите «set», а затем нажмите Enter. Это показывает активные переменные среды. Текущий зарегистрированный пользователь хранится в переменной env USERNAME, а ваш домен - в переменной USERDOMAIN.

Чтобы отбросить другие ответы из строки cmd:

echo %USERDOMAIN%\%USERNAME%

вы получите полный вход в систему в формате домен \ имя пользователя.

Вы можете сделать то же самое с Powershell с этим:

write-host $env:userdomain\$env:username
squillman
источник
1
+1 за образовательный аспект, а также за включение домена и имени пользователя
tomjedrz
@squillman Как я могу заставить это работать при запуске командной строки от имени пользователя Sytem? Потому что в этом случае нет переменной среды, такой как% USERDOMAIN% или% USERNAME%
GianT971
@ GianT971 Вы имеете в виду LocalSystem? Для этой учетной записи нет способа, поскольку он не связан с вошедшим в систему пользователем. Обычно эта учетная запись используется для служб, а когда служба работает как LocalSystem, она принимает контекст безопасности диспетчера управления службами.
squillman
Хорошо. Да, это то, что я имел в виду. Возможно, в последних версиях PowerShell это возможно, поскольку при запуске приложения .NET, вызывающего Environment.Username под учетной записью LocalSystem, в результате получается «Система». Но я еще не взглянул на PowerShell
GianT971,
@ GianT971 Вы можете запускать процессы cmd или powershell и запускать сценарии, но вы не получите интерактивную оболочку.
squillman
16

Это сообщает большую часть той же информации, что говорят все остальные, но вы также можете просто набрать

SET U

Он вернет все переменные окружения, которые начинаются с U.

Кроме того, SET L может быть полезен для отладки проблем сервера регистрации.

Дейтон Браун
источник
1
Иногда вы просто видите советы, которыми нужно поделиться, эти два великолепны.
Ванны
5

Из командной строки? "echo% username%" должен это сделать. Зарегистрированный пользователь хранится в переменной среды «имя пользователя».

В графическом сеансе ctrl-alt-del покажет экран с отображенным вошедшим пользователем.

sysadmin1138
источник
5

Это зависит от вашей конкретной ОС, но команда whoami доступна как часть Windows 2000 Resource Kit и средств поддержки Windows XP SP2 .

RedFilter
источник
2
+1 Также доступно по умолчанию в Vista +
Оскар Дювеборн
ага, я думал, что недавно использовал whoami на своем ноутбуке дома, думаю, это сработало, потому что это было Vista. здесь на работе я на XP
Кип
3

Вышесказанное относится к ОС и дает лучшие ответы, но в духе полноты в инструментах поддержки 2000 и XP буквально есть whoami.exe. На 32 КБ было бы легко развернуть групповую политику, если бы вы настроили свое сердце на эту команду.

Кара Марфия
источник
1

В autoexec или в командной строке DOS введите приглашение% USERDOMAIN% \% USERNAME% $ p $ g , и вы увидите, кто вы вошли в систему, и увидите типичное приглашение, подобное этому: DOMAIM \ username C:>

user156428
источник