Как я могу узнать, запущен ли процесс с правами администратора?

44

Я использую Windows Vista, с включенным UAC. Я установил приложение, и установщику потребовались права администратора. Затем установщик запустил приложение. Я хотел бы знать, продолжает ли приложение работать с правами администратора.

Я пробовал Windows Task Manager и Process Explorer, и ни один из них не отображает эту информацию.

Тим
источник
Для обновленной ОС, пожалуйста, смотрите этот вопрос . На вкладке Подробности диспетчера задач есть необязательный столбец Повышенные.
Ганс Вонн

Ответы:

43

В Process Explorer дважды щелкните процесс, чтобы открыть его свойства. Перейдите на вкладку « Безопасность ». В списке групп найдите BUILTIN \ Administrators и посмотрите, что он говорит в столбце Flags .

Запретить = не повышен (не администратор)

альтернативный текст

Владелец = Повышен (является администратором)

альтернативный текст

Райан Болджер
источник
4
В моей системе Windows 7 мне приходилось запускать Process Explorer с повышенными разрешениями, чтобы можно было увидеть определенные детали (например, разрешения безопасности) процессов, запущенных с разрешениями администратора. При запуске Process Explorer от имени обычного пользователя содержимое вкладки «Безопасность» было пустым.
Энтони Дж. - справедливость для Моники
Ничего подобного не существует в Win10; используйте sysinternals (@Tim), добавьте «уровень целостности» в столбцы для процессов.
user15507
1
В Win8 и более поздних версиях в диспетчере задач всегда был необязательный столбец с именем « Повышенные», в котором отображается «да» или «нет». Это во вкладке Details, конечно.
Адам Кэвнесс
39

В Process Explorer вы можете изменить отображаемые столбцы и добавить столбец «Уровень целостности» на вкладке «Образ процесса»:

введите описание изображения здесь

Это, очевидно, технический термин для того, что изменяется при запуске процесса с правами администратора. Если вы запустите Process Explorer от имени администратора, он покажет обычные процессы как «средний» уровень целостности и повышенные процессы как «высокий».

Обратите внимание, что если вы запустите проводник процессов как обычный пользователь, он покажет процессы с правами администратора с пустой записью в столбце уровня целостности.

Тим
источник
Кроме того, при запуске определенной программы от имени администратора и обозревателя процессов от имени обычного пользователя в обозревателе процессов будет отображаться не истинный значок процесса, а пустой значок.
Никос
+1 за ваш ответ
BattleTested
3

Обновление с ОС: Resource Monitor, который, как мне кажется, включен в Windows 7 и Windows 10 (не уверен в Vista), имеет дополнительный столбец «Повышенные» в разделе списка процессов на вкладке ЦП, который выглядит довольно точным.

stackuser83
источник
0

Если вы предпочитаете использовать инструменты командной строки, утилиту Accesschk из пакета MS Sysinternals можно использовать для проверки, запущен ли процесс с правами администратора.

Следующие флаги полезны для этой цели:

  • Опция -p(процесс) принимает имя или PID запущенного процесса.

  • -v(Многословный) опция печатает Integrity Level для 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встроенной группой безопасности.

Энтони Дж - справедливость для Моники
источник