¿Por qué la diferencia entre la variable automática de PowerShell $HOME y la variable de entorno $Env:HOME?

¿Por qué la diferencia entre la variable automática de PowerShell $HOME y la variable de entorno $Env:HOME?

Nuestra organización asigna carpetas de inicio a un recurso compartido de red a través de Active Directory para cada usuario. Esto causa problemas con Git porque Git espera encontrar el archivo de configuración global del usuario en la carpeta de inicio del usuario, que para mí es una unidad asignada debido a esta configuración. git config --global --listlanza fatal: unable to read config file 'H://.gitconfig': No such file or directory.

Mientras solucionaba el problema, descubrí que la variable automática $HOMEen PowerShell está configurada en la unidad asignada C:\Users\username, pero $Env:HOMEestá configurada en ella.

¿Por qué la variable automática de PowerShell es diferente? Supongo que Active Directory está configurando la $Env:HOMEvariable en la unidad asignada; ¿Es eso correcto? Si es así, ¿no debería $HOMEutilizar el mismo camino?

Respuesta1

TLDR; $HOMEse prefiere para la compatibilidad multiplataforma

Según la publicación SOobteniendo el directorio de inicio:

La forma más sólida de hacer referencia al directorio de inicio del usuario actual es utilizarvariable automática $HOME.

Si intentaste usar elVariable ambiental $env:HOME, las diferencias de plataforma surgirían en Windows vs Unix

información relacionada