Команда WHOAMI используется для получения сведений об имени пользователя и группе, а также о соответствующих идентификаторах безопасности (SID), привилегиях, идентификаторах входа (ID) текущего пользователя (токене доступа) на локальном компьютере. При запуске whoami.exe без параметров, отображается имя пользователя в формате NTLM (домен\пользователь).
1. Описание команды WHOAMI.
1.1. Формат командной строки:
Синтаксис 1:
C:\ WHOAMI [/UPN | /FQDN | /LOGONID]
Синтаксис 2:
C:\ WHOAMI { [/USER] [/GROUPS] [/PRIV] } [/FO <формат>] [/NH]
Синтаксис 3:
C:\ WHOAMI /ALL [/FO <формат>] [/NH]
1.2. Параметры командной строки:
- /UPN Отображение имени пользователя в формате имени участника-пользователя (UPN).
- /FQDN Отображение имени пользователя в формате полного доменного имени (FQDN).
- /USER Отображение сведений о текущем пользователе вместе с идентификатором безопасности (SID).
- /GROUPS Отображение для текущего пользователя членства в группах, типа учетной записи, идентификаторов безопасности (SID) и атрибутов.
- /PRIV Отображение привилегий безопасности текущего пользователя.
- /LOGONID Отображение идентификатора текущего пользователя.
- /ALL Отображение имени пользователя, членства в группах, идентификаторов безопасности (SID) и привилегий для токена доступа текущего пользователя.
- /FO <формат> Формат вывода. Допустимые значения TABLE, LIST, CSV. Заголовки столбцов в формате CSV не отображаются. Формат по умолчанию: TABLE.
- /NH Указывает, что строка заголовков столбцов не отображается при выводе. Допускается только для форматов TABLE и CSV.
- /? Вывод справки по использованию.
2. Примеры использования WHOAMI:
2.1. Отобразить имя текущего пользователя в формате «домен\имя»:
C:\ WHOAMI
2.2. Отобразить имя текущего пользователя в формате «имя@домен»:
C:\ WHOAM /UPN
2.3. Отобразить имя текущего пользователя в формате полного доменного имени (FQDN):
C:\ WHOAM /FQDN
2.4. Отобразить идентификатор текущего пользователя:
C:\ WHOAMI /LOGONID
2.5. Отобразить имя и SID текущего пользователя:
C:\ WHOAMI /USER
2.6. То же, что и в предыдущем случае, но с выводом данных в виде списка:
C:\ WHOAMI /USER /FO LIST
2.7. Отобразить список групп, членом которых является текущий пользователь:
C:\ WHOAMI /GROUPS
2.8. То же, что и в предыдущем случае, но с выводом результатов в виде полей, разделяемых запятой:
C:\ WHOAMI /GROUPS /FO CSV
2.9. То же, что и в предыдущем примере, но с выводом результатов в файл C:\MyGroups.csv:
C:\ WHOAMI /GROUPS /FO CSV > C:\MyGroups.csv
2.10. Отобразить список привилегий текущего пользователя:
C:\ WHOAMI /PRIV -
2.11. То же, что и в предыдущем примере, но с отображением результатов в виде таблицы:
C:\ WHOAMI /PRIV /FO TABLE -
2.12. Отобразить информацию о SID текущего пользователя, принадлежности к группа и перечень привилегий:
C:\ WHOAMI /ALL -
Формат отображаемой информации:
Сведения о пользователе
----------------
Пользователь SID
============ ============================================
dom\useradm S-1-5-21-56653307-3472606255-1660535541-7069
Сведения о группах
-----------------
Группа Тип SID Атрибуты
=============================================== ======================= ================= =============
Все Хорошо известная группа S-1-1-0 Обязательная
BUILTIN\Администраторы Псевдоним S-1-5-32-544 Обязательная
BUILTIN\Пользователи удаленного рабочего стола Псевдоним S-1-5-32-555 Обязательная
BUILTIN\Пользователи Псевдоним S-1-5-32-545 Обязательная
NT AUTHORITY\ИНТЕРАКТИВНЫЕ Хорошо известная группа S-1-5-4 Обязательная
КОНСОЛЬНЫЙ ВХОД Хорошо известная группа S-1-2-1 Обязательная
NT AUTHORITY\Прошедшие проверку Хорошо известная группа S-1-5-11 Обязательная
NT AUTHORITY\Данная организация Хорошо известная группа S-1-5-15 Обязательная
ЛОКАЛЬНЫЕ Хорошо известная группа S-1-2-0 Обязательная
Обязательная метка\Высокий обязательный уровень Метка S-1-16-12288 Обязательная
Сведения о привилегиях
----------------------
Имя привилегии Описание Область, край
=============================== =========================================== =============
SeIncreaseQuotaPrivilege Настройка квот памяти для процесса Отключен
SeSecurityPrivilege Управление аудитом и журналом безопасности Отключен
SeTakeOwnershipPrivilege Смена владельцев файлов и других объектов Отключен
SeLoadDriverPrivilege Загрузка и выгрузка драйверов устройств Отключен
SeSystemProfilePrivilege Профилирование производительности системы Отключен
SeSystemtimePrivilege Изменение системного времени Отключен
SeProfileSingleProcessPrivilege Профилирование одного процесса Отключен
SeIncreaseBasePriorityPrivilege Увеличение приоритета выполнения Отключен
SeCreatePagefilePrivilege Создание файла подкачки Отключен
SeBackupPrivilege Архивация файлов и каталогов Отключен
SeRestorePrivilege Восстановление файлов и каталогов Отключен
SeShutdownPrivilege Завершение работы системы Отключен
SeDebugPrivilege Отладка программ Отключен
SeSystemEnvironmentPrivilege Изменение параметров среды изготовителя Отключен
SeChangeNotifyPrivilege Обход перекрестной проверки включен
SeRemoteShutdownPrivilege Принудительное удаленное завершение работы Отключен
SeUndockPrivilege Отключение компьютера от стыковочного узла Отключен
SeManageVolumePrivilege Выполнение задач по обслуживанию томов Отключен
SeImpersonatePrivilege Имитация клиента после проверки подлинности включен
SeCreateGlobalPrivilege Создание глобальных объектов включен
SeIncreaseWorkingSetPrivilege Увеличение рабочего набора процесса Отключен
SeTimeZonePrivilege Изменение часового пояса Отключен
SeCreateSymbolicLinkPrivilege Создание символических ссылок Отключен
2.13. Команду Whoami можно использовать в командных файлах в качестве средства проверки того факта, что командный файл был запущен от имени администратора в среде Windows 7/8. Для этого достаточно сравнить набор привилегий при выполнении команды в обычном режиме и при выполнении в режиме запуска от имени администратора. Например, если удаленное выключение компьютера доступно только с правами администратора системы, можно, используя команду поиска FIND, определить наличие строки «SeRemoteShutdownPrivilege» в результатах выполнения команды whoami /priv для текущего пользователя.
Например, так:
@echo OFF WHOAMI /PRIV | find /i "SeRemoteShutdownPrivilege" if %ERRORLEVEL% == 0 goto admin echo Пользователь не имеет прав администратора!!! REM часть кода, исполняемого при отсутствии прав администратора pause exit :admin REM часть кода, исполняемого при наличии прав администратора ECHO !!! Командный файл запущен от имени администратора!!! pause exit
Например:
REM Этот командный файл должен выполняться от имени Администратора @echo OFF WHOAMI /PRIV | find /i "SeRemoteShutdownPrivilege" if %ERRORLEVEL% == 0 goto admin color CF msg console Этот командный файл должен выполняться от имени администратора. pause exit :admin color f0 Rem Удалить все теневые копии vssadmin delete shadows /all
Если данный командный файл будет запущен от имени пользователя, то фон консоли станет красным и пользователю будет выдано сообщение ”Этот командный файл должен выполняться от имени администратора”. Если от имени Администратора – фон консоли станет белым и выполнится команда удаления всех теневых копий (максимально освободить дисковое пространство)
