Команда 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
Если данный командный файл будет запущен от имени пользователя, то фон консоли станет красным и пользователю будет выдано сообщение ”Этот командный файл должен выполняться от имени администратора”. Если от имени Администратора – фон консоли станет белым и выполнится команда удаления всех теневых копий (максимально освободить дисковое пространство)