После запуска invoke-sqlcmd почему поставщик файловой системы требуется для доступа к путям UNC-сервера
Прочитав следующую ссылку, я смог решить свою собственную проблему - но кто-нибудь знает, почему здесь требуется поставщик файловой системы после использования invoke-sqlcmd?
то есть. почему следующее не удается
$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
По этой ссылке я нашел решение для добавления поставщика файловой системы Microsoft.PowerShell.Core\FileSystem:::
PowerShell-Invoke-SQLCMD-Get-ChildItem-не с вызовом метода
1 ответ
Модули SQL Server, которые поставлялись с SQLServer до августа 2016 года, изменили каталог на диск SQLSERVER:.
Чтобы обойти это, вы должны установить модуль SQLServer (из PSGallery) или, если вам нужно использовать более старые вещи (из соображений совместимости), вы можете сделать это:
pushd
import-module SQLPS
popd
Это восстановит текущий каталог после импорта модуля.