Якщо ви віддаєте перевагу використанню інструментів командного рядка, утиліта Accesschk з набору MS Sysinternals може бути використана для перевірки, чи працює процес з правами адміністратора.
Для цього корисні такі прапори:
Параметр -p
(process) приймає або ім'я, або PID запущеного процесу.
Параметр -v
(багатослівний) друкує рівень цілісності Windows
Параметр -q
(тихо) запобігає друку інформації про версію.
Параметр -f
(повний) також може бути використаний для надання ще більше інформації про процес (и) (відомості про маркер безпеки користувачів, груп та привілеїв), але цей рівень додаткових деталей не вимагається для перевірки на підвищені привілеї.
Приклад
Перерахуйте привілеї всіх запущених cmd
процесів:
> accesschk.exe -vqp cmd
[5576] cmd.exe
Medium Mandatory Level [No-Write-Up, No-Read-Up]
RW ICS\Anthony
PROCESS_ALL_ACCESS
RW NT AUTHORITY\SYSTEM
PROCESS_ALL_ACCESS
[8224] cmd.exe
Medium Mandatory Level [No-Write-Up, No-Read-Up]
RW ICS\Anthony
PROCESS_ALL_ACCESS
RW NT AUTHORITY\SYSTEM
PROCESS_ALL_ACCESS
Error opening [6636] cmd.exe:
Access is denied.
Тут ми можемо побачити, cmd
що я розпочав три процеси. Перші два мають середній обов'язковий (цілісний) рівень і відображаються як запущені під моїм обліковим записом домену, що вказує на те, що ці процеси були запущені без прав адміністратора.
Однак останній процес (PID 6636) був запущений з підвищеними дозволами, тому моя непривілейована команда не може читати інформацію про цей процес. Запуск із підвищеними дозволами accesschk
та чітко вказавши його PID друкує таку інформацію:
> accesschk.exe -vqp 6636
[6636] cmd.exe
High Mandatory Level [No-Write-Up, No-Read-Up]
RW BUILTIN\Administrators
PROCESS_ALL_ACCESS
RW NT AUTHORITY\SYSTEM
PROCESS_ALL_ACCESS
Тепер ми бачимо, що рівень доброчесності високий і цей процес працює під Administrators
вбудованою групою безпеки.