在 运行 invoke-sqlcmd 之后为什么需要文件系统提供程序来访问 UNC 服务器路径

after running invoke-sqlcmd why is the fileSystem provider required to access UNC Server paths

阅读以下内容后 link 我能够解决我自己的问题 - 但有谁知道为什么在使用 invoke-sqlcmd 后这里需要文件系统提供程序

IE。为什么以下失败

$Doc_Folder = "\Server.fqdn.com\c$\DocFiles" 
$DataSet = Invoke-Sqlcmd -Query $sqlQuery -ServerInstance $instanceName -username $SQLCreds.UserName -Password $pswd 
Get-ChildItem $Doc_Folder -recurse 

以及为什么以下工作有效

$Doc_Folder = "Microsoft.PowerShell.Core\FileSystem::\Server.fqdn.com\c$\DocFiles" 
$DataSet = Invoke-Sqlcmd -Query $sqlQuery -ServerInstance $instanceName -username $SQLCreds.UserName -Password $pswd 
Get-ChildItem $Doc_Folder -recurse 

这是我在 link 找到添加文件系统提供程序的解决方案 Microsoft.PowerShell。Core\FileSystem:::
powershell-invoke-sqlcmd-get-childitem-cannot-call-method

2016 年 8 月之前 SQLServer 随附的 SQL 服务器模块将目录更改为 SQLSERVER: 驱动器。

要解决这个问题,您应该安装 SQL服务器模块(来自 PSGallery),或者,如果您需要使用旧的东西(出于兼容性原因),您可以这样做:

pushd
import-module SQLPS
popd

这将在导入模块后恢复当前目录。