Get-ChildItem无法找到路径,因为它不存在

T4R*_*33L 4 powershell

我正在编写脚本以获取网络中所有共享的ACL。我有三个单独的UNC路径在其上运行。这三个中的两个工作正常,返回所有子项和权限等。但是,第三个UNC路径返回以下错误:

Get-ChildItem : Cannot find path '\\storagesrvr' because it does not exist.

我已经通过使用资源管理器验证了该位置。我发现有趣的是,如果我在该路径的任何子共享上使用GCI,它将起作用。是什么可能导致GCI无法检测到共享根?

编辑(根据评论的要求):我没有问题的其他两份股票被命名为\\networkpath\share。但是因为我只看根,所以GCI无法正常工作。

Mat*_*sen 5

正如我在评论中提到的,这\\computername只是UNC的部分路径(请查看[MS-DTYP] Windows数据类型规范中的UNC语法)。

资源管理器“知道”这一点,因此它在后台执行了一些不可思议的操作,使您可以浏览远程计算机上的共享。

您可以通过查询Win32_Share远程计算机上的WMI实例来模拟这一点:

foreach($Share in Get-WmiObject Win32_Share |?{$_.Name -not 'IPC$'}){
    Get-ChildItem "\\$($Share.__SERVER)\$($Share.Name)"
}
Run Code Online (Sandbox Code Playgroud)