我使用加載以下SQL Server 2008 R2的PowerShell插件如何在不啓用命名管道的情況下使用invoke-sqlcmd?
Add-PSSnapin SqlServerCmdletSnapin100
Add-PSSnapin SqlServerProviderSnapin100
我那麼用戶調用,這樣的SQL腳本:
Invoke-Sqlcmd -Query "select * from table" -ServerInstance xyz -Database abc -username xxxxxx -password yyyyyyy
我使用的方法來運行一些升級我們數據庫上的腳本。我很開心地在我們的開發測試環境中使用它,但之後我們在生產環境中嘗試了它,結果發現我們在服務器配置上有所不同。在我們的prod服務器上,出於安全原因命名管道被禁用(顯然是蠕蟲攻擊),我們的DBA不想啓用。
這是我得到的錯誤,研究表明它是一個命名管道問題 - 當我啓用它們時也開始工作。
INFO ERROR: Invoke-Sqlcmd : A connection was successfully established with the server, but then an error occurred during the login process. (provider: Shared Memory Provider, error: 0 - No process is on the other end of the pipe.)
有誰知道是否有某種方法來切換我的腳本,以便它不需要命名管道?或者,這是invoke-sqlcmd的內置連接方法,我需要更改大頭貼(如果有的話)。
如果你具體弄清楚,請更新。我也很好奇。 – granadaCoder
'invoke-sqlcmd -Query「select bar from bar」-HostName dbserver -Database fakedb' results invoke-sqlcmd:建立到SQL Server的連接時發生網絡相關或實例特定的錯誤。該服務器未找到或不是 可訪問。驗證實例名稱是否正確,並將SQL Server配置爲允許遠程連接。 (提供程序:命名管道提供程序,錯誤: 40 - 無法打開與SQL Server的連接) 但由於某種原因,此作品: 'invoke-sqlcmd -Query「select bar from bar」-serverinstance dbserver -Database fakedb' –