簡體   English   中英

Powershell Invoke-SqlCmd:指定端口

[英]Powershell Invoke-SqlCmd: Specify port

我想連接到數據庫以在該數據庫上執行腳本,但是,我只能使用特定的端口號訪問該數據庫。

我在代碼方面遵循以下原則:

Invoke-SqlCmd -ServerInstance "Servername,53806" -Database "DatabaseName" -InputFile $File.Fullname -Verbose | Out-File -filePath "D:\Test\TestSQLCmd.rpt"

當我運行此PS代碼段時,什么都沒有發生。 沒有任何內容寫入報告。 也沒有任何內容寫入控制台。 當我將代碼段更改為:

Invoke-SqlCmd -ServerInstance "Servername","53806" -Database "DatabaseName" -InputFile $File.Fullname -Verbose | Out-File -filePath "D:\Test\TestSQLCmd.rpt"

要么

Invoke-SqlCmd -ServerInstance Servername,53806 -Database "DatabaseName" -InputFile $File.Fullname -Verbose | Out-File -filePath "D:\Test\TestSQLCmd.rpt"

我收到錯誤消息,表明參數ServerInstance的Value不能為null。

如果刪除端口,腳本將花費更長的時間運行,從而導致明顯的“建立連接時發生與網絡相關或特定於實例的錯誤”錯誤通知。

在ServerInstance參數中使用Invoke-SqlCmd時,應如何指定端口。

您的第一種語法是正確的,例如以下對我有用:

Invoke-SqlCmd -ServerInstance "DbServer,29487" -Database "Master" -Verbose -Query "Select @@ServerName"

但是,請確保已配置TCP連接。 如果命名實例正在運行,則可能是您正在通過命名管道連接。

一種簡單的測試方法是使用Telnet:

telnet server port

並查看是否連接。 如果沒有,那就是您需要集中精力的地方。

(如果找不到Telnet,可能需要將其安裝為功能)。

嘗試這個:

Invoke-SqlCmd -ServerInstance `"Servername,53806`" -Database "DatabaseName" -InputFile $File.Fullname -Verbose | Out-File -filePath "D:\Test\TestSQLCmd.rpt"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM