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

343
Paul Reissmann

Кажется, есть тонны потоков, спрашивающих, как проверить, работает ли prorgam от имени администратора или как настроить программу для запуска от имени администратора в Windows, но мой вопрос: Как я могу проверить, настроена ли программа для запуска от имени администратора без это на самом деле работает? Я должен быть в состоянии проверить это автоматически.

Я знаю, что могу просто щелкнуть правой кнопкой мыши исполняемый файл и проверить, настроена ли программа для запуска с правами администратора, но мне нужен способ автоматической проверки того, что приложение, которое я запускаю, должно знать, настроен ли определенный EXE-файл для запуска от имени Администратор или нет, и принять решение на основе этого свойства.

2
В пользовательском интерфейсе есть два места, чтобы указать, настроен ли исполняемый файл или ярлык для запуска с правами администратора. Откройте свойства для файла / ярлыка, и в двух местах находятся кнопка «Дополнительно» и вкладка «Совместимость». Настройки, сделанные в этих местах, не одинаковы, но имеют одинаковый эффект. Параметры совместимости будут храниться в реестре HKLM \ Software \ Microsoft \ Windows NT \ CurrentVersion \ AppCompatFlags \ Layers. Я полагаю, что расширенные флаги устанавливаются как свойства, связанные с самим ярлыком. music2myear 5 лет назад 0
Этот ключ реестра идеально подходит! Спасибо! HKLM-версия appcompatflags / layer предназначена для свойств программ, установленных для всех пользователей, а HKCU-версия предназначена только для текущего пользователя. Я бы никогда не догадался об этом. Paul Reissmann 5 лет назад 0
Сейчас я превращу это в ответ, но я хочу проверить, можете ли вы прочитать свойства ярлыка (для флага «Дополнительно»> «Запуск от имени администратора») в команде, чтобы улучшить его. music2myear 5 лет назад 0

1 ответ на вопрос

2
music2myear

В стандартном пользовательском интерфейсе Windows есть два места, чтобы указать, настроен ли исполняемый файл или ярлык для запуска с правами администратора.

Откройте свойства для файла / ярлыка, а затем ...

  1. Для ярлыков нажмите только кнопку «Дополнительно» и увидите флаг «Запуск от имени администратора».
  2. Для исполняемых файлов и ярлыков откройте вкладку «Совместимость».

Настройки в этих двух местах имеют одинаковый эффект, но не одинаковы.

Первый является свойством ярлыка и привязан к ярлыку. Вы можете проверить это, установив свойство на ярлык в сетевом расположении, а затем запустив ярлык на другом компьютере. Вам будет предложено для повышения прав до запуска ярлыка.

Второй (Совместимость) хранится в реестре компьютера, на котором он установлен, и настройки, сделанные на одном компьютере, не будут автоматически видны на другом компьютере без какого-либо другого механизма распространения этих настроек. Они хранятся в двух местах в реестре для каждого пользователя или для всех пользователей:

Все пользователи: HKLM\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers

Для каждого пользователя: HKCU\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers

Их можно читать программно и в сценариях, используя стандартные готовые к регистрации компоненты, доступные на предпочтительном языке.