How to split parent path of a unc path by using powershell?

Here is a UNC path I've got.\\sharespace\test1\10.0.1212.1

Can I get its parent path\\sharespace\test1\?


There are a few options. If you have access to the share then:

(Get-Item '\\sharespace\test1\10.0.1212.1').Parent.Fullname

If you do not have access to the share, you can go the more unpalatable route of manipulating the string in various ways. This is one:

$path = '\\sharespace\test1\10.0.1212.1'
[string]::Join('\', $path.Split('\')[0..$($path.Split('\').Length-2)])

There's a cmdlet for this:

Split-Path \\sharespace\test1\10.0.1212.1
\\sharespace\test1

It doesn't include the trailing '\', but if you use Join-Path then PowerShell will take care of adding it if required anyway.

NOTE: Split-Path and Join-Path try to resolve the path on the local machine, so if the path has a drive letter (say, 'F:') that is not a valid drive on the local machine, these cmdlets will throw an error. With UNC paths like the above you shouldn't have a problem.


Here's a simple way to parse the parent path out of the full UNC path.

$fullPath = "\\sharespace\test1\10.0.1212.1"
$parentPath = "\\" + [string]::join("\",$fullPath.Split("\")[2..3])