Warum gibt es einen Unterschied zwischen der automatischen PowerShell-Variable $HOME und der Umgebungsvariable $Env:HOME?

Warum gibt es einen Unterschied zwischen der automatischen PowerShell-Variable $HOME und der Umgebungsvariable $Env:HOME?

Unsere Organisation ordnet Home-Ordner für jeden Benutzer über Active Directory einer Netzwerkfreigabe zu. Dies verursacht Probleme mit Git, da Git erwartet, die globale Benutzerkonfigurationsdatei im Home-Ordner des Benutzers zu finden, der für mich aufgrund dieser Einstellung ein zugeordnetes Laufwerk ist. git config --global --listwirft fatal: unable to read config file 'H://.gitconfig': No such file or directory.

Bei der Fehlerbehebung habe ich festgestellt, dass die automatische Variable $HOMEin PowerShell C:\Users\usernamenicht $Env:HOMEauf das zugeordnete Laufwerk eingestellt ist.

$Env:HOMEWarum ist die automatische Variable von PowerShell anders? Ich gehe davon aus, dass Active Directory die Variable auf das zugeordnete Laufwerk einstellt . Ist das richtig? Wenn ja, sollte dann nicht $HOMEderselbe Pfad verwendet werden?

Antwort1

Kurz zusammengefasst; $HOMEwird wegen der plattformübergreifenden Kompatibilität bevorzugt

Laut dem SO-BeitragHome-Verzeichnis abrufen:

Der stabilste Weg, auf das Home-Verzeichnis des aktuellen Benutzers zu verweisen, ist die Verwendungautomatische Variable $HOME.

Wenn Sie versucht haben, mit demUmgebungsvariable $env:HOME, Plattformunterschiede würden zwischen Windows und Unix auftreten

verwandte Informationen