4

Мне нужен стандартный или ограниченный пользователь Windows 7, чтобы иметь возможность запускать приложение (Fallout Mod Manager), для которого требуется повышение уровня контроля учетных записей. Я пробовал Application Compatibilty Toolkit, но это не сработало как задумано. Какие-либо предложения? Я использую локальную Windows 7 Ultimate, поэтому можно применять политики.

Я в основном хочу что-то вроде флага setuid в Unix.

1 ответ1

3

Это выполнимо, но не легко объяснить.

Существует только три причины, по которым приложение запрашивает повышение прав при запуске:

  • на вкладке Compatibilty есть "Запустить эту программу от имени администратора"
  • приложение имеет манифест (встроенный или внешний), который указывает requireAdministrator
  • есть обновление совместимости от Microsoft, которое пометило его как нужного администратора

Предполагая, что вы уже проверили вкладку совместимости, и приложение не требует администратора:

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

Создайте файл в том же каталоге, что и Fallout Mod Manager (я не знаю, как называется exe , но я назову его FalloutModManager.exe:

FalloutModManager.exe FalloutModManager.exe.manifest

Этот новый manifest вами файл манифеста представляет собой простой текстовый файл, содержащий xml, с записью манифеста, в которой говорится, что мы хотим запустить asInvoker, а не requireAdministrator:

FalloutModManager.exe.manifest

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
   <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> 
      <assemblyIdentity 
           version="1.0.0.0"
           processorArchitecture="X86"
           name="client"
           type="win32" /> 

      <description>Poorly written Fallout Mod Manager fails on XP as standard user</description> 

      <!-- Disable file and registry virtualization, and don't require elevation -->
      <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
         <security>
            <requestedPrivileges>
               <requestedExecutionLevel level="asInvoker" uiAccess="false"/>
            </requestedPrivileges>
         </security>
      </trustInfo>
</assembly>

Наличие этого файла рядом с вашим исполняемым файлом называется « внешним манифестом ». Также возможно, что исполняемый файл имеет встроенный ресурс, который вам понадобится, например, инструмент Resource Hacker, чтобы увидеть или изменить.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .