【发布时间】:2016-11-23 08:29:29
【问题描述】:
我正在使用加载以下 SQL Server 2008 R2 powershell 插件的脚本
Add-PSSnapin SqlServerCmdletSnapin100
Add-PSSnapin SqlServerProviderSnapin100
然后我像这样使用invoke-sql:
Invoke-Sqlcmd -Query "select * from table" -ServerInstance xyz -Database abc -username xxxxxx -password yyyyyyy
我正在使用方法在我们的数据库上运行许多升级脚本。我很高兴在我们的开发\测试环境中使用它,但后来我在生产环境中尝试了它,结果发现我们在服务器配置上有所不同。在我们的产品服务器上,出于安全原因(显然是蠕虫攻击)禁用了命名管道,并且我们的 DBA 不想启用。
这是我得到的错误,研究表明这是一个命名管道问题 - 当我也启用它们时开始工作。
INFO ERROR: Invoke-Sqlcmd : 连接成功 与服务器建立,但随后发生错误 登录过程。 (提供者:共享内存提供者,错误:0 - 否 进程在管道的另一端。)
有谁知道是否有某种方法可以切换我的脚本以使其不需要命名管道?或者这是invoke-sqlcmd的内置连接方法,我需要改变策略(如果有任何建议)。
【问题讨论】:
-
如果你具体弄清楚了,请更新。我也很好奇。
-
invoke-sqlcmd -Query "select foo from bar" -HostName dbserver -Database fakedb导致 invoke-sqlcmd :建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。 (提供者:命名管道提供者,错误:40 - 无法打开与 SQL Server 的连接)但由于某种原因,这有效:invoke-sqlcmd -Query "select foo from bar" -serverinstance dbserver -Database fakedb
标签: sql-server powershell