Я создал файл патча с исполняемым файлом внутри, используя функцию Winrar SFX.
После запуска файла SFX и завершения извлечения мой исполняемый файл никогда не запустится, потому что у него нет прав администратора. Мне интересно, КАК я могу предоставить администраторский доступ к этому файлу каким-то программным способом (например, пакетным файлом).
Я знаю, что могу щелкнуть правой кнопкой мыши, перейти в «Свойства», выбрать вкладку «Совместимость», а затем поставить галочку в поле «Выполнять от имени администратора».
Проблема в том, что пользователи, которые будут загружать этот патч, не знают об этом (а мой exe-файл запускается только тогда, когда вы щелкаете по нему правой кнопкой мыши и выбираете «Открыть от имени администратора», в противном случае он никогда не откроется и не отобразит всплывающее окно UAC).
Я пробовал несколько способов, например "Elevator Runner (Elevate me)" и т. д., но на самом деле я ищу что-то попроще.
Мне просто нужно сделать так, чтобы exe всегда запускался от имени администратора.
решение1
Что вам нужно сделать, так это встроитьманифест приложенияв EXE-файл.
Сохраните следующее как текстовый файл под названиемApp.exe.manifest:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> <security> <requestedPrivileges> <requestedExecutionLevel level="requireAdministrator" uiAccess="false"/> </requestedPrivileges> </security> </trustInfo> </assembly>
Загрузите Windows SDK.
Внутри вы найдетеmt.exeт.е.Инструмент манифеста. Вызовите его следующим образом:
mt.exe -manifest "App.exe.manifest" -outputresource:"App.exe";#1
Если ошибок нет, то все готово. Вы можете удалить файл манифеста и распространять только EXE. Запуск должен автоматически запрашивать доступ администратора каждый раз.
решение2
При создании архива,Запросить административный доступ.