Mi empleador tiene una política de grupo de Active Directory que establece mi HOMEDRIVE para computadora portátil con Windows 7 en "M:" (una unidad de red asignada) y mi HOMEPATH en "\". Como tengo permisos de solo lectura para la raíz de esa unidad compartida, no puedo crear archivos o directorios en mi directorio de inicio de Windows. Mis intentos de trabajar con el departamento de TI no han tenido éxito.
¿Hay alguna manera para mí a nivel mundial cambiar estos envars en el arranque o inicio de sesión? Necesito que todas las aplicaciones utilicen valores alternativos (como "C:" y "\ Users \ myname"). Tengo algunas utilidades instaladas (como gvim y otras) que almacenan archivos de preferencias en el directorio de inicio del usuario.
IMPORTANTE : Cambiar estos valores en "Propiedades del sistema> Variables de entorno" no funciona . He intentado configurarlos como variables de usuario y sistema (incluido un reinicio). Escribir SET HOME
en una ventana de DOS muestra claramente que mi configuración se ignora. Además, el uso de "Iniciar en" en un acceso directo de Windows tampoco resolverá esto, ya que necesito cosas como elementos del menú contextual del Explorador (como "Editar con Vim") para funcionar correctamente.
Tengo derechos de administrador en el portátil de esta empresa, pero no soy un gurú de Win7. En el pasado, un script de arranque habría resuelto esto en un minuto. ¿Es posible hoy? Gracias.
Respuestas:
A continuación hay algunos trucos que he desarrollado. No son elegantes, pero pueden ser funcionales en su entorno corporativo.
HOMEDRIVE Only
Parece que muchas aplicaciones solo usan HOMEDRIVE / HOMEPATH. En ese caso, puede crear una secuencia de comandos de inicio que reasigne la letra de la unidad base a su ruta de usuario local a través de la ruta de administración de la unidad UNC:
HOMEDRIVE Local predeterminado
Si no necesita acceder a "Servidor" por su nombre, puede hacer que la configuración de la directiva de grupo falle y vuelva a su máquina local. La forma más fácil de hacer esto es agregar una entrada a C: \ Windows \ System32 \ drivers \ etc \ hosts como:
Después de reiniciar, debería ver algo como:
HOMEDRIVE / SHARE con rutas UNC híbridas locales / remotas
Si desea acceder al "Servidor" por nombre para algunas rutas UNC, pero anula otras con rutas locales, he desarrollado la siguiente abominación. Nota: las conexiones directas del servidor al "Servidor" aún se resolverán en su máquina local. Recomiendo esta solución solo si "Servidor" es solo un servidor de archivos:
Modifique C: \ Windows \ System32 \ drivers \ etc \ hosts para redirigir "Servidor" a su máquina local:
Agregue el siguiente valor de registro de cadenas múltiples a HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Lsa \ MSV1_0 para permitir que las credenciales se pasen a la ruta UNC local:
Cree un directorio ficticio que servirá como raíz del servidor:
Para cada ruta UNC que desee dirigir al servidor real:
Para cada recurso compartido UNC que desee definir localmente (como Usuarios):
Reiniciar
Por ejemplo, esto permitiría resolver las siguientes rutas UNC:
Esta resolución de ruta debe ocurrir antes de las asignaciones de unidades. Siempre que las rutas UNC asociadas con las asignaciones sean válidas (ya sean locales o remotas), las letras de unidad deben comportarse como se espera.
Por ejemplo, en mi configuración, las siguientes variables son forzadas por el dominio:
Pero debido a mis asignaciones, el resultado es:
fuente
La mejor solución que encontré fue establecer variables durante el inicio de sesión y antes
userinit.exe
.Esto es lo que hice. Primero creó un archivo por lotes al
C:\Windows\System32\userinit.cmd
contenery luego cambió el valor de
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit
aC:\Windows\System32\userinit.cmd
en el registro.Más información en: https://technet.microsoft.com/en-us/library/cc939862.aspx
fuente
Lo usé
SETX
en un script de inicio y eso funcionó para mí. Mira mi respuesta .fuente
Creo que estas rutas se configuran automáticamente en el lugar donde se encuentra su perfil de usuario. La unidad de inicio a la que te refieres es el lugar donde están tu ntuser.dat y los datos de la aplicación y otras carpetas de perfil de usuario, ¿correcto? De vuelta con NT3.x, el "perfil de usuario" era solo su sección de registro de usuarios con configuraciones y podía establecer una ruta de inicio separada para cada usuario. Se unificaron en NT4 como un perfil de usuario con un escritorio, mis documentos, menú de inicio, etc.
Las ubicaciones de todos los perfiles se almacenan en claves de registro en
Encontrará algunos valores para los perfiles especiales y las subclaves: uno para cada perfil activo en el sistema. Los configura el SID de la cuenta de usuario a la que pertenecen. La forma más fácil de encontrar el tuyo sería desplazarte por cada uno buscando el camino correcto (debajo del
ProfileImagePath
valor). Debería poder cambiar ese valor a la ruta que desee; entrará en vigencia la próxima vez que inicie sesión. Asegúrese de copiar primero sus archivos a la nueva ruta.Si tiene que mover el perfil de la cuenta en la que inició sesión (es decir, inició sesión como MikeC e intenta copiar el perfil de MikeC), el núcleo bloqueará el archivo ntuser.dat (que contiene la sección del registro
HKEY_CURRENT_USER
). Todavía puede copiar la sección: vaya a regedit, haga clic con el botón derecho enHKEY_CURRENT_USER
, seleccione exportar, cambie el tipo a archivos de sección de registro y guárdelo como ntuser.dat en su nueva ubicación.En mi experiencia, si winlogon tiene un problema al cargar un perfil porque algo está mal configurado, creará una nueva copia del perfil predeterminado o le dará una copia temporal para usar para esa sesión y aún podrá iniciar sesión Sin embargo, recomendaría que tenga un inicio de sesión de administrador diferente para usar en el sistema en caso de que algo salga mal.
fuente
Estoy publicando esto en caso de que alguien más llegue a esta pregunta a través de google. En lugar de cambiar mi directorio personal y hacer que los chicos de IS se enojen conmigo, configuré y ejecuté mi desarrollo en una máquina virtual. Microsoft ofrece Widows XP en modo virtual. http://www.microsoft.com/windows/virtual-pc/download.aspx
fuente
Una alternativa algo más fácil sería ejecutar el siguiente script (env-reset.vbs) como una tarea programada al iniciar sesión, desbloquear y tal vez también cada pocos minutos.
fuente