Pregunta

Tengo una aplicación de 32 bits que estoy trabajando en que los objetivos .NET 3.5; VS2010 es mi herramienta de desarrollo. Mi aplicación requiere privilegios elevados para una variedad de cosas, así que tengo un manifiesto de aplicación por ello que tiene la siguiente línea en él:

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

Debido a que es lo que hay que hacer, también tienen las líneas en el manifiesto que indican que la aplicación es compatible con Windows 7 y 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}"/>

La aplicación se ejecuta muy bien en Windows 7 y Windows Vista. Que aparece de inmediato el mensaje de UAC, no se vea afectado por la virtualización del registro, etc. El manifiesto está trabajando claramente allí.

Sin embargo, en 2008 R2 ninguna de estas cosas son verdaderas. no aparece mensaje de UAC. virtualización del registro pasa (mi problema principal). Es como si estuviera ignorando completamente mi manifiesto de aplicación. No tengo ni idea de dónde buscar o lo que comprobar. He corrido exactamente los mismos bits de los días 7, Vista y 2008 R2 y obtener exactamente los mismos resultados cada vez. Mi 2008 R2 instalación es completamente vainilla, ya que es sólo una máquina virtual instalada recién para la prueba.

Además, estoy bastante seguro de que Server 2008 está actuando igual que 2008 R2, ignorando básicamente el manifiesto. Cualquier ayuda sería muy apreciada!

¿Fue útil?

Solución

he dado cuenta de la extraña respuesta a mi propia pregunta, a pesar de que se presenta en dos partes:

  • Por alguna razón, no estoy recibiendo un UAC, ya sea en 2008 o 2008 R2, pero en ambos casos la aplicación está siendo adecuadamente elevada y virtualización de aplicaciones está desactivado correctamente.

  • Mi aplicación, siendo de 32 bits, estaba escribiendo en la clave de registro Wow6432Node, por lo tanto, pensé virtualización ocurría porque mis cambios no fueron apareciendo. Si hubiera probado en 2008 x86, que no lo hubiera hecho, habría descubierto que los cambios fueron apareciendo allí, pero no en el de 64 bits sistemas operativos.

Otros consejos

Server 2008 R2 tiene UAC desactivado por defecto. Si está apagado, entonces los usuarios del grupo Administradores tienen derechos de administrador completos y los usuarios no administradores no tienen ellos y no puede ser elevado en una cuenta de administrador.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top