В чем разница между автоматической переменной PowerShell $HOME и переменной среды $Env:HOME?

В чем разница между автоматической переменной PowerShell $HOME и переменной среды $Env:HOME?

Наша организация сопоставляет домашние папки с сетевым ресурсом через Active Directory для каждого пользователя. Это вызывает проблемы с Git, поскольку Git ожидает найти глобальный файл конфигурации пользователя в домашней папке пользователя, которая для меня является сопоставленным диском из-за этой настройки. git config --global --listthrows fatal: unable to read config file 'H://.gitconfig': No such file or directory.

При устранении неполадок я обнаружил, что автоматическая переменная $HOMEв PowerShell установлена ​​на , C:\Users\usernameно $Env:HOMEустановлена ​​на сопоставленный диск.

Почему автоматическая переменная PowerShell отличается? Я предполагаю, что Active Directory устанавливает $Env:HOMEпеременную на сопоставленный диск; это правильно? Если так, не следует ли $HOMEиспользовать тот же путь?

решение1

TLDR; $HOMEпредпочтителен для кроссплатформенной совместимости

Согласно сообщению SOполучение домашнего каталога:

Самый надежный способ сослаться на домашний каталог текущего пользователя — использоватьавтоматическая переменная $HOME.

Если вы попытались использоватьпеременная окружения $env:HOME, различия в платформах будут проявляться на Windows и Unix

Связанный контент