Mir ist klar, dass dies eine alte Frage ist, aber ich wollte einen anderen Weg zeigen, um dies zu erreichen:
$drive = Get-PSDrive -Name (get-location).Drive.Name $root = if($drive.DisplayRoot -ne $null){$drive.DisplayRoot} else {$drive.Root} Join-Path -Path $root -ChildPath $drive.CurrentLocation
Get-PSDrive holt alle Informationen über ein Laufwerk zurück (Name, belegter / freier Speicherplatz, Anbieter, Stammverzeichnis und aktueller Speicherort). Wenn der Name-Parameter als aktueller Laufwerksbuchstabe übergeben wird (mithilfe von get-location), kann dies in mehreren Szenarien funktionieren (Dadurch werden auch Informationen zu lokalen Laufwerken der Maschine abgerufen).
Damit es sowohl auf lokalen als auch auf zugeordneten Laufwerken funktioniert, wird der Vergleich durchgeführt, um $ root mit dem Laufwerksbuchstaben oder dem Netzwerkspeicherort aufzufüllen. Der .Root sendet den Laufwerksbuchstaben zurück und der .DisplayRoot zieht den Netzwerkpfad zurück (null, wenn es sich um einen lokalen Pfad handelt, der der Grund für den Vergleich ist).
Mit Join-Path können Sie den Pfad zusammenfassen, der einen Laufwerksbuchstaben und den aktuellen Ort zurückgibt, wenn es sich um einen lokalen Pfad, einen Netzwerkpfad und um einen aktuellen Ort handelt, wenn es sich um ein zugeordnetes Laufwerk handelt.