Server 2008 R2 игнорирует мой манифест приложения (?) - PullRequest
0 голосов
/ 18 ноября 2010

У меня есть 32-битное приложение, над которым я работаю .NET 3.5; VS2010 - это мой инструмент разработки. Моему приложению требуются повышенные привилегии для множества вещей, поэтому у меня есть манифест приложения, в котором есть следующая строка:

<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />

Поскольку это правильно, в манифесте также есть строки, которые указывают, что приложение совместимо с Windows 7 и Windows Vista:

<!--The ID below indicates application support for Windows Vista -->
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
<!--The ID below indicates application support for Windows 7 -->
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>

Приложение отлично работает на Windows 7 и Windows Vista. Он сразу же выдает приглашение UAC, на него не влияют виртуализация реестра и т. Д. Манифест явно работает там.

Однако в 2008 R2 ни одна из этих вещей не является правдой. UAC подсказка не появляется. Виртуализация реестра происходит (моя основная проблема). Как будто он полностью игнорирует мой манифест приложения. Я понятия не имею, где искать или что проверить. Я выполнил те же самые биты на 7, Vista и 2008 R2 и каждый раз получал одинаковые результаты. Моя установка 2008 R2 полностью ванильна, так как это просто недавно установленная виртуальная машина для тестирования.

Кроме того, я вполне уверен, что Server 2008 работает так же, как 2008 R2, в основном игнорируя манифест. Любая помощь будет принята с благодарностью!

Ответы [ 2 ]

0 голосов
/ 04 марта 2011

Сервер 2008 R2 по умолчанию отключен UAC.Если он отключен, то пользователи из группы «Администраторы» имеют полные права администратора, а пользователи, не являющиеся администраторами, не имеют их и не могут быть повышены до учетной записи администратора.

0 голосов
/ 19 ноября 2010

Я нашел странный ответ на свой вопрос, хотя он состоит из двух частей:

  • По какой-то причине я не получаю приглашение UAC ни в 2008, ни в 2008 R2, но в обоих случаях приложение поднимается должным образом, и виртуализация приложения отключается правильно.

  • Моё приложение, будучи 32-битным, записывало в раздел реестра Wow6432Node, поэтому я подумал, что виртуализация происходит, потому что мои изменения не появляются. Если бы я тестировал 2008 x86, чего у меня не было, я бы обнаружил, что изменения появляются там, но не в операционных системах x64.

...