'Ejecutar como ...' no crea correctamente el entorno de usuario
-
03-07-2019 - |
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?
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 ejemplosEjemplos:
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.