powershell - 从 UNC 路径获取 ShareName
问题描述
我正在执行一项任务,我需要从 UNC 路径获取服务器上的本地路径。
基本上\\server\MyShare\Somewhere\Bla
应该是egD:\foo\bar\somewhere\bla
我知道服务器主机,[system.Uri]$Path
所以我知道在哪个服务器中查找本地路径
我可以Get-SmbShare
用来获取服务器上的共享。
我现在唯一需要比较两者的是拆分 UNC 路径并获取共享名。
有没有简单的方法可以做到这一点?-split '\'
不起作用。
我希望最后有一个数组,我可以选择[1]
。任何其他方法也非常受欢迎。
解决方案
对于$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
推荐阅读
- javascript - 反应:为什么即使没有点击也会执行 onclick?
- linux - linux - sed循环遍历文件中的行列表
- python - 如何从python中的文件导入类?
- shell - 保留包含 2 个 OX 值匹配的 fasta 记录
- python - 如何从 DataFrame 行转换为日期时间格式?
- sql - 将此时间格式转换为秒
- javascript - 不能仅在一个模板中将 js 文件包含在 wordpress 中
- java - 是否可以在 Java 中创建一个 char 数组?
- python - 从循环生成的 python tk.entry 获取输入时出现问题?
- python - Django,如何在一页中添加两个表单?