Sei que essa é uma pergunta antiga, mas queria compartilhar outra maneira de realizar isso:
$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 recuperará todas as informações sobre uma unidade (nome, espaço usado / gratuito, provedor, local raiz e atual) e passando o parâmetro Name como a letra da unidade atual (usando get-location) permite que isso funcione em vários scenerios (isso também irá puxar informações sobre drives locais na máquina).
Para que isso funcione nas unidades locais e mapeadas, a comparação é feita para preencher $ root com a letra da unidade ou o local da rede. o .Root irá enviar de volta a letra da unidade, e o .DisplayRoot irá puxar de volta o caminho da rede (null se for um caminho local, que é o motivo da comparação)
Usando Join-Path, você pode reunir o caminho, que retornará uma letra de unidade e um local atual, se for um caminho local, um caminho de rede e um local atual, se for uma unidade mapeada.