Команда 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

Если данный командный файл будет запущен от имени пользователя, то фон консоли станет красным и пользователю будет выдано сообщение ”Этот командный файл должен выполняться от имени администратора”. Если от имени Администратора – фон консоли станет белым и выполнится команда удаления всех теневых копий (максимально освободить дисковое пространство)