PowerShell 自動変数 $HOME と環境変数 $Env:HOME の間に違いがあるのはなぜですか?

PowerShell 自動変数 $HOME と環境変数 $Env:HOME の間に違いがあるのはなぜですか?

私たちの組織では、各ユーザーのホーム フォルダーを Active Directory 経由でネットワーク共有にマップしています。Git はグローバル ユーザー構成ファイルをユーザーのホーム フォルダーで見つけることを想定するため、Git で問題が発生しgit config --global --listますfatal: unable to read config file 'H://.gitconfig': No such file or directory。この設定により、このフォルダーはマップされたドライブになります。

$HOMEトラブルシューティング中に、 PowerShell の自動変数が に設定されているC:\Users\usernameが、$Env:HOMEマップされたドライブに設定されていることがわかりました。

$Env:HOMEPowerShell の自動変数が異なるのはなぜですか? Active Directory が変数をマップされたドライブに設定していると想定していますが、これは正しいですか? そうであれば、$HOME同じパスを使用すべきではないですか?

答え1

要約; は$HOMEクロスプラットフォームの互換性のために推奨されます

SOの投稿によるとホームディレクトリを取得する:

現在のユーザーのホームディレクトリを参照する最も堅牢な方法は、自動変数 $HOME

もしあなたが環境変数 $env:HOMEWindowsとUnixではプラットフォームの違いが表面化する

関連情報