8

Я создал файл патча с исполняемым файлом внутри него, используя функцию Winrar SFX.
После выполнения файла SFX и извлечения заканчивается, мой исполняемый файл никогда не будет работать, потому что он не имеет прав администратора. Мне интересно, КАК я могу предоставить администратору доступ к этому файлу каким-либо программным способом (например, командный файл).

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

Проблема в том, что пользователи, которые будут загружать этот патч, не знают его (и мой exe запускается только тогда, когда вы щелкаете по нему правой кнопкой мыши и выбираете "Открыть как администратор", в противном случае он никогда не откроет и не отобразит всплывающее окно UAC).

Я пробовал несколько способов, таких как «Лифт бегун (поднять меня)» и т.д., Но я на самом деле ищу что-то более простое, чем.
Мне просто нужно, чтобы exe всегда запускался от имени администратора.

2 ответа2

14

Что вам нужно сделать, это встроить манифест приложения в EXE.

  1. Сохраните следующее как текстовый файл с именем 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>
    
  2. Загрузите Windows SDK.

  3. Внутри вы найдете mt.exe, то есть Manifest Tool. Вызовите это следующим образом:

    mt.exe -manifest "App.exe.manifest" -outputresource:"App.exe";#1
    
  4. Если нет ошибок, вы сделали. Вы можете удалить файл манифеста и распространять только EXE. При его запуске каждый раз автоматически запрашивается доступ администратора.

Источник

2

При создании архива запрашивайте административный доступ.

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