我正在使用带有路径的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
不确定是否有人遇到此问题以及如何解决这些环境问题。
非常感谢您的帮助。
答案 0 :(得分:0)
根据您的屏幕截图,我相信这是Get-ChildItem
访问UNC路径的限制,而当前位置是SqlServer
提供者。我看到一些选择:
将PSDrive
映射到UNC路径,以便Get-ChildItem
有一个FileSystem
提供程序可以直接使用。
New-PSDrive -Name Z -Root "\\servername.net\abcd" -PSProvider FileSystem
Get-ChildItem Z:
使用其他方法来检索文件和目录。
[System.IO.Directory]::EnumerateFileSystemEntries("\\servername.net\abcd")
使用位置堆栈进入FileSystem
。然后返回到您之前的PSDrive
。
Push-Location C:
Get-ChildItem "\\servername.net\abcd"
Pop-Location
答案 1 :(得分:0)
评估环境后,发现这些UNC路径问题是由于域差异引起的。
我的笔记本电脑和存档文件共享位于同一个域中,这就是存档脚本正常工作的方式。 而我已部署脚本的PROD服务器位于另一个域中。
通过标识与归档文件共享具有相同域名的另一台PROD服务器并使用任务计划部署脚本来解决该问题。