Microsoft signtool удаляет административные привилегии?

Мне нужно подписать исполняемый файл установщика для Windows с помощью файла p12.

Перед подписанием на этом значке EXE-файла есть «значок щита», указывающий, что он требует прав администратора, как и должно быть.

Однако после того, как я подпишусь с помощью инструмента подписи и следующей команды:

signtool.exe sign /f mycert.pfx /p <password> /t http://timestamp.verisign.com/scripts/timstamp.dll /v "<file to be signed>"

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

Что мне нужно сделать, чтобы подписать исполняемый файл и сохранить его административные привилегии?


person Ana    schedule 06.11.2014    source источник
comment
Здесь такая же проблема, вы ее решили?   -  person    schedule 25.09.2018
comment
После дальнейшего изучения кажется, что я неправильно понял результаты первых тестов: добавление файла манифеста для прав администратора удаляет цифровой знак, но добавление цифрового знака НЕ ​​удаляет манифест, поэтому достаточно выполнить действия в правильном порядке.   -  person    schedule 26.09.2018


Ответы (1)


Вы должны установить запрашиваемыйExecutionLevel на requireAdministrator в манифесте вашего приложения, чтобы объявить, что ему требуются административные привилегии.

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

См. раздел Создание и встраивание манифеста приложения в ваше приложение. о том, как создается приложение, также см. /MANIFESTUAC (встраивает информацию UAC в манифест) и /win32manifest (параметры компилятора C#)

person Rob Caplan - MSFT    schedule 06.11.2014
comment
Привет Роб. Спасибо, но я не думаю, что это имя файла. Я могу переименовать файл во что угодно, и права администратора останутся. Кроме того, исполняемый файл представляет собой установщик, созданный с помощью пакета установщика, который помечает исполняемый файл как требующий прав администратора, поэтому я думаю, что он уже выполняет указанный вами запрос. - person Ana; 06.11.2014