PowerShell Test-Path UNC带通配符

时间:2017-08-30 07:47:50

标签: powershell wildcard unc

我试图测试是否存在UNC路径,但到目前为止所有尝试都失败了。 此文件夹示例存在,并返回true:

\\Server\Path1

我想确认所有名称相似的文件夹都存在,例如:

\\Server\Path2 
\\Server\Path3 etc.

我在这些例子中尝试过使用通配符:

test-path "\\Server\Path*"
resolve-path "\\Server\Path*"
[System.IO.Directory]::Exists('\\Server\Path*');
Test-Path $('filesystem::\\Server\Path*')

...除了“"”的许多排列外。 ' *组合。 然而,我没有尝试过的任何东西都会让真正的回归真实。对于使用通配符时的此类路径,即使它似乎适用于:Test-Path c:\windows\system3*,例如。{/ p>

2 个答案:

答案 0 :(得分:1)

此代码段适用于映射的UNC路径:

   Get-PSDrive| where{$_.DisplayRoot -like "\\server\test*" } | foreach{test-path -path $_.DisplayRoot}

如果你有wmi访问权限,那么:

Get-WmiObject -Class Win32_Share -ComputerName server | where{$_.name -like "test*"} | foreach{Test-Path "\\server\$($_.name)"}

答案 1 :(得分:1)

我认为Windows不支持对共享名称进行通配符选择。

但是,如果您对文件服务器有足够的(远程)访问权限,则可以获得共享列表:

Get-WmiObject -class 'Win32_Share' -ComputerName 'Server'