带有UNC路径的Get-ChildItem -path“ \\ Servername.net \ FolderName \ SubFolderName \”错误

时间:2020-03-03 15:41:23

标签: powershell

我正在使用带有路径的Get-ChildItem导航到公用文件共享。 我可以从本地计算机导航到通用文件共享,而没有任何问题,但是当我将此代码部署到PROD服务器中时,遇到了找不到路径问题。

Power Shell命令: Get-ChildItem“ \ servername.net \ abcd \”

错误: Get-ChildItem:找不到路径'\ servername.net \ abcd \',因为它不存在。 第2行char:1 + Get-ChildItem'\ servername.net \ abcd \' + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo:ObjectNotFound:(\ servername.net \ abcd:String)[Get-ChildItem],ItemNotFoundException + FullyQualifiedErrorId:PathNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand

不确定是否有人遇到此问题以及如何解决这些环境问题。

非常感谢您的帮助。

Power shell error

2 个答案:

答案 0 :(得分:0)

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

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

    New-PSDrive -Name Z -Root "\\servername.net\abcd" -PSProvider FileSystem
    Get-ChildItem Z:
    
  2. 使用其他方法来检索文件和目录。

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

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

答案 1 :(得分:0)

评估环境后,发现这些UNC路径问题是由于域差异引起的。

我的笔记本电脑和存档文件共享位于同一个域中,这就是存档脚本正常工作的方式。 而我已部署脚本的PROD服务器位于另一个域中。

通过标识与归档文件共享具有相同域名的另一台PROD服务器并使用任务计划部署脚本来解决该问题。