首页 > 解决方案 > 从 UNC 路径获取 ShareName

问题描述

我正在执行一项任务,我需要从 UNC 路径获取服务器上的本地路径。

基本上\\server\MyShare\Somewhere\Bla应该是egD:\foo\bar\somewhere\bla

我知道服务器主机,[system.Uri]$Path所以我知道在哪个服务器中查找本地路径

我可以Get-SmbShare用来获取服务器上的共享。

我现在唯一需要比较两者的是拆分 UNC 路径并获取共享名。

有没有简单的方法可以做到这一点?-split '\'不起作用。

我希望最后有一个数组,我可以选择[1]。任何其他方法也非常受欢迎。

标签: powershell

解决方案


对于$list类型类型的值, [System.URI]您可以:

   $result=@()
    Foreach ($uri in $list)
    {
    $object =""|select URI,Hostname,Localpath 
        $object.uri=$uri.LocalPath
        $object.hostname=$uri.Authority
        $object.LocalPath= Invoke-Command -ComputerName $($uri.Authority) -ScriptBlock {param ($uri) (Get-SmbShare ($uri.AbsolutePath -split '/')[1]).path} -ArgumentList $uri
    $result+=$object
    }
$result

推荐阅读