我想要连接到一个数据库以在该数据库上执行脚本,但是,我只能使用特定的端口号访问相关的数据库。
在代码方面,我有一些类似的东西:
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的值不能为空。
如果我删除端口,脚本运行的时间会更长一些,导致明显的“建立连接时发生网络相关或特定于实例的错误”的错误通知。
在ServerInstance参数中使用Invoke-SqlCmd时,我应该如何指定端口。
发布于 2015-10-28 01:18:27
你的第一个语法是正确的,例如,下面的语法适用于我:
Invoke-SqlCmd -ServerInstance "DbServer,29487" -Database "Master" -Verbose -Query "Select @@ServerName"但是,请确保已配置TCP连接。如果命名实例正在工作,则可能是您正在通过命名管道连接。
一种简单的测试方法是使用Telnet:
telnet server port看看它是否连接上了。如果没有,那么这就是你需要集中注意力的地方。
(如果未找到Telnet,则可能需要将其作为一项功能安装)。
发布于 2015-10-28 02:49:51
试试这个:
Invoke-SqlCmd -ServerInstance `"Servername,53806`" -Database "DatabaseName" -InputFile $File.Fullname -Verbose | Out-File -filePath "D:\Test\TestSQLCmd.rpt"https://stackoverflow.com/questions/33373516
复制相似问题