获取子项 - 路径 UNC 路径"\Servername.netFolderNameSubFolderName"错误



我使用的Get-ChildItem带有一个导航到公共文件共享的路径。我能够从本地机器导航到通用文件共享,没有任何问题,但当我将此代码部署到PROD服务器时,我遇到了找不到路径的问题。

PowerShell命令:

Get-ChildItem   "\servername.netabcd"

错误:

Get-ChildItem : Cannot find path '\servername.netabcd' because it does not exist.
At line:2 char:1
+ Get-ChildItem   '\servername.netabcd'
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : ObjectNotFound: (\servername.netabcd:String) [Get-ChildItem], ItemNotFoundException
+ FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand

不确定是否有人经历过这个问题以及如何解决这些环境问题。

非常感谢您的帮助。

电源外壳错误

根据您的屏幕截图,我认为这是Get-ChildItem访问UNC路径的限制,而当前位置是SqlServer提供程序。我看到了一些选择:

  1. PSDrive映射到UNC路径,以便Get-ChildItem具有可直接使用的FileSystem提供程序。

    New-PSDrive -Name Z -Root "\servername.netabcd" -PSProvider FileSystem
    Get-ChildItem Z:
    
  2. 使用不同的方法检索文件和目录。

    [System.IO.Directory]::EnumerateFileSystemEntries("\servername.netabcd")
    
  3. 使用位置堆栈进入FileSystem。然后返回到您以前的PSDrive

    Push-Location C:
    Get-ChildItem "\servername.netabcd"
    Pop-Location
    

在评估环境后发现,由于域差异,这些UNC路径问题正在发生。

我的笔记本电脑和归档文件共享位于同一个域中,归档脚本就是这样工作的,没有任何问题。而我部署脚本的PROD服务器位于不同的域中。

通过识别与存档文件共享具有相同域名的另一个PROD服务器解决了此问题,并使用任务调度器部署了脚本。

最新更新