Pregunta

he tratado de hacer algunas cosas Win32 en C # 3.5 para obtener derechos de usuario elevados para una aplicación de consola. Yo desarrollo en Visual Studio 2008 SP1 / RDA y las cosas funcionan bien cuando se ejecuta en el depurador. Las cosas también funcionan bien cuando corro la aplicación de consola independiente. Las cosas también funcionan bien cuando Empaqueto todo en un MSI e instalarlo en un servidor 2003 y ejecutar la aplicación de consola.

Si tomo la misma MSI e instalarlo en un servidor 2008 con el UAC activado, a continuación, ejecute la aplicación de consola, recibo mensajes de la siguiente manera:

Unable to set right for the account "DOMAIN\QAUSER": SeCreateGlobalPrivilege
System.UnauthorizedAccessException    Attempted to perform an unauthorized operation.

No puedo esperar que mis administradores de despliegue / servidor para hacer cualquier cosa con la otra de instalarlo aplicación, y que no van a desactivar UAC. Tiene que haber alguna manera programática a derechos de usuario adecuadamente conjunto que puedo agregar a la aplicación de consola -? Alguien sabe cómo

Gracias.

¿Fue útil?

Solución

Probablemente se utiliza " Global \" prefijo al nombre del objeto en su aplicación y su aplicación se iniciará dentro de una sesión de escritorio remoto Host (Host de sesión) sesión de servidor. En el caso de que su programa tiene que permitir SE_CREATE_GLOBAL_NAME (SeCreateGlobalPrivilege) privilegio. Ver C # - Cómo habilitar SeDebugPrivilege (pero el uso SE_CREATE_GLOBAL_NAME en lugar de? SE_DEBUG_NAME) o Manipular privilegios en Gestionado Código fiable, segura y eficientemente como un ejemplo.

Otros consejos

Asumo que UAC está habilitado en la máquina de 2008 y que no puedo comentar aún sobre su pregunta para averiguar.

Si es así, asegúrese de que en su archivo app.manifest en VS (en las propiedades), el cambio

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

a

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

Incluso si el código se ejecuta como administrador, usted tiene que conseguir por la advertencia de UAC.

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