Автор: Screwy
Дата сообщения: 22.03.2016 09:32
По умолчанию, Registry Workshop для запуска требует административных привелегий.
Чтобы запустить Registry Workshop под текущим пользвателем, нужно модифицировать интегрированный manifest.
Выгрузить manifest можно при помощи утилиты mt из набора Windows SDK. Затем, при помощи любого текстового редактора, изменить уровень привелегий запуска и интегрировать новые manifest по следующей инструкции:
Код:
1. Выгрузить интегрированный manifest
mt.exe -inputresource:RegWorkshop.exe;#1 -out:RegWorkshop.exe.manifest
mt.exe -inputresource:RegWorkshopX64.exe;#1 -out:RegWorkshopX64.exe.manifest
2. Заменить в полученном mainfest
level="requireAdministrator"
на
level="asInvoker" или level="highestAvailable"
[more=Описание значений level]
asInvoker
Приложение наследует маркер процесса от родительского процесса (процесса, запустившего его). Приложение не получит административных привилегий, если только пользователь специально не запросит их — даже если пользователь зарегистрирован как администратор. Этот уровень принимается по умолчанию.
requireAdministrator
Если текущий пользователь является членом группы Administrators (Администраторы), появится диалоговое окно подтверждения UAC. Как только пользователь подтвердит, приложение получит административные привилегии. Если же пользователь не является членом группы Administrators, появится диалоговое окно, где пользователь сможет ввести имя и пароль учетной записи, обладающей административными привилегиями.
highestAvailable
Приложение получает максимальные привилегии согласно членству в группах. Например, если текущий пользователь — член группы Administrators, то приложение получает административные привилегии (как только примет подтверждение UAC). Преимущество этого уровня выполнения в том, что приложение продолжит выполнение, если административные привилегии недоступны, в отличие от requireAdministrator.
[/more]
3. Интегрировать модифицированный manifest
mt.exe -nologo -manifest "RegWorkshop.exe.manifest" -outputresource:"RegWorkshop.exe"
mt.exe -nologo -manifest "RegWorkshopX64.exe.manifest" -outputresource:"RegWorkshopX64.exe"