Pregunta

Mi aplicación C # se bloquea en algunas circunstancias cuando se ejecuta con un usuario no administrador.

Estoy experimentando un problema con Windows Server 2003 y estoy tratando de encontrar más información al respecto. Puede ser un problema en otros sistemas operativos Windows.

Parece que si creo un usuario que no es administrador y luego ejecuto mi aplicación bajo este usuario con el comando 'Ejecutar como ...', el entorno del usuario no se configura correctamente y la variable de entorno TEMP apunta a C: \ Windows \ Temp en lugar de que los usuarios tengan su propia carpeta Temp en el perfil de Documentos y Configuración. El usuario no tiene permisos para esta carpeta, por lo que la aplicación falla con el compilador JIT .Net intenta escribir / leer en esta carpeta.

Si inicio sesión como este usuario, la situación sigue siendo incorrecta. No consigo que el entorno esté preparado, lo que normalmente se obtiene al iniciar sesión en un nuevo usuario, y mi aplicación aún no se ejecuta sin fallar durante el inicio. Infact Me he dado cuenta de que el usuario no puede ejecutar calc.exe u otros programas en la carpeta de Windows. Parece que su entorno está permanentemente desordenado y creo que la única forma de avanzar es eliminar su perfil.

Si creo un usuario que no es administrador e inicio sesión como ellos antes de ejecutar 'Ejecutar como ...', su entorno se configura correctamente y mi aplicación funciona.

No puedo encontrar ninguna información sobre este problema o notas sobre si Microsoft lo reconoce. ¿Ha experimentado esto o sabe dónde puedo encontrar más información al respecto?

¿Fue útil?

Solución

Considera usar runas con un perfil para el usuario si no lo estás.

  

C: \ temp > runas RUNAS USAGE:

RUNAS [ [/noprofile | /profile] [/env] [/netonly] ]
        /user: program

RUNAS [ [/noprofile | /profile] [/env] [/netonly] ]
        /smartcard [/user:] program
     

/ noprofile especifica que   el perfil del usuario no debe ser   cargado.                        Esto hace que la aplicación se cargue más rápido, pero                        puede causar el mal funcionamiento de algunas aplicaciones.
  / perfil especifica que el   Se debe cargar el perfil del usuario.                        Este es el valor predeterminado. / env para usar   entorno actual en lugar del usuario.   / netonly usar si el   las credenciales especificadas son para control remoto                        Acceso solamente. / savecred para usar credenciales   previamente guardado por el usuario.                        Esta opción no está disponible en Windows XP Home   Edición                        y será ignorado. / uso de tarjeta inteligente si   las credenciales deben ser proporcionadas   a partir de una                        tarjeta electrónica. / usuario debe ser   en la forma USER @ DOMAIN o DOMAIN \ USER
  línea de comando del programa para EXE.   Vea a continuación ejemplos

     

Ejemplos:

     
    

runas / noprofile / user: mymachine \ administrador cmd      runas / profile / env / user: mydomain \ admin " mmc% windir% \ system32 \ dsa.msc "      runas / env /user:user@domain.microsoft.com " notepad \ " my file.txt \ " "

  
     

NOTA: Ingrese la contraseña del usuario solo cuando   preguntado NOTA: USER @ DOMAIN no es   compatible con / netonly. NOTA:   / profile no es compatible con   / netonly.

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