6 votos

Variable de entorno TEMP en ocasiones ajuste incorrecto de la

En ocasiones, me parece a mi TMP y TEMP conjunto de variables de entorno a C:\Windows\TEMP. Se deben poner a %USERPROFILE%\AppData\Local\Temp, y están configurados correctamente en las Propiedades del Sistema.

Esto se manifiesta como mensajes de error como el siguiente:

---> System.InvalidOperationException: Unable to generate a temporary class
     (result=1).
error CS2001: Source file 'C:\Windows\TEMP\gb_pz65v.0.cs' could not be found
error CS2008: No inputs specified

...que se produce en varios .NET applications (en particular de 2010 de Visual Studio o SQL Server Management Studio). Alternativamente, SQL Server Management Studio informe:

Value cannot be null.
Parameter name: viewInfo (Microsoft.SqlServer.Management.SqlStudio.Explorer)

Si me quedo PowerShell elevado, a continuación, $env:TEMP está configurado correctamente. Si me quedo PowerShell no elevada, entonces no lo es. Yo creo que debe estar configurado correctamente en ambos casos. Si no, es al revés.

Lo mismo es cierto para CMD.EXE.

Reiniciar correcciones que, temporalmente, hasta que algo se rompe de nuevo. Presumiblemente algo cargado en Explorer.exe es jugar con sus variables de entorno, pero ¿qué?

Los valores en el registro son correctos, incluso mientras esto está sucediendo:

  • HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment ha TEMP = %SYSTEMROOT%\Temp
  • HKCU\Environment ha TEMP = %USERPROFILE%\AppData\Local\Temp

Por poner un punto de ruptura en shell32!RegenerateUserEnvironment, soy capaz de trampa cuando sucede, pero yo todavía no sé por qué explorer.exe está leyendo el mal variables de entorno.

Puedo reproducir consistentemente por la difusión de una WM_SETTINGCHANGE mensaje (he escrito una sola línea de programa de C++ para hacer esto). La observación de la actividad en el Monitor de Procesos muestra que explorer.exe ni siquiera mirar a HKCU\Environment.

¿Qué está pasando?

0voto

jimyi Puntos 13032

Su perfil de usuario puede estar dañado. Trate de cambiar el nombre de tu perfil en C:\Users en Windows 7 y C:\Documents and Settings en Windows XP, a continuación, reiniciar e iniciar sesión con las mismas credenciales para que un nuevo perfil se genera. Si que funciona, puede cherry-pick a tus archivos desde tu antiguo perfil y copiar a su nuevo perfil.

Raro que dijo que el envío de un WM_SETTINGCHANGE mensaje no pudo ser, a ver este Windows en la página de Soporte para C#/VB ejemplo que deben trabajar. También, a ver si el solo hecho de abrir y hacer clic en ACEPTAR en el cuadro de diálogo Variables de Entorno mediante un clic derecho en el icono Mi pc en el escritorio, seleccione Propiedades en el menú de opciones, a continuación, la ficha Avanzadas y haga clic en el botón Variables de Entorno. Esta carga HKCU\Environment variables para mí y varios otros carteles.

Compruebe si su HKCU\Volatile Environment variables que se genera cuando se inicia la sesión. Estos deben incluir HOMEPATH, HOMEDRIVE, USERNAME etc. Es que la clave completamente ausente?

Si nada funciona, una solución para mí ha sido la utilización de SETX en un archivo por lotes se coloca en la que Todos los Usuarios de los Programas de la carpeta de Inicio en el Menú de Inicio. Para Windows XP, descargue SETX como parte de Windows XP Service Pack 2 Herramientas de Soporte.

SET HOME=
SET HOME=%USERPROFILE%
SETX HOME "%HOME%"

Esto activará tu HKCU\Environment variables para ser leído en el start-up. Luego de combinación de las teclas de abajo con su registro. Van a ser estático para todos los usuarios hasta que arregle su perfil, aunque uno puede inventar una más sofisticada archivo por lotes si fueran tan inclinado. Reemplazar el nombre de usuario, inicio de sesión de servidor y dominio. Este ejemplo es para Windows XP. Guardar como .reg archivo, haga clic derecho y seleccione combinar. También puede agregar estas SETX. Usted también podría usar REG ADD o REGEDIT , seguido por WM_SETTINGCHANGE ya que estos comandos no actualización de su entorno actual. Ver SS64 para el uso de comandos de SETX, REG y REGEDIT.

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Volatile Environment]
"APPDATA"="C:\\Documents and Settings\\<username>\\Application Data"
"HOMEPATH"="\\Documents and Settings\\<username>"
"HOMEDRIVE"="C:"
"LOGONSERVER"="\\\\<logon-server>"
"USERDOMAIN"="<domain>"
"USERNAME"="<username>"
"USERPROFILE"="C:\\Documents and Settings\\<username>"
"USERDNSDOMAIN"="<domain.com>"
"LOCALAPPDATA"="C:\\Documents and Settings\\<username>\\Local Settings\\Application Data"

[HKEY_CURRENT_USER\Volatile Environment\2]
"CLIENTNAME"="Console"
"SESSIONNAME"=""

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: