自动打开命名管道和 tcp\ip

Posted

技术标签:

【中文标题】自动打开命名管道和 tcp\\ip【英文标题】:Automate turning named-pipes and tcp\ip on自动打开命名管道和 tcp\ip 【发布时间】:2011-06-13 19:18:44 【问题描述】:

我正在安装需要修改 SQL Server 的新产品。

具体来说,启用 tcp/ip 并打开命名管道。我知道如何手动完成。我想要的是一种通过 SQL 或 C# 代码为新客户自动执行此操作的方法。

我会喜欢任何关于正确方向的建议。

【问题讨论】:

【参考方案1】:

您可以使用 C# 和服务器管理对象 (SMO) 来执行此操作。您需要的类位于 Microsoft.SqlServer.Smo 和 Microsoft.SqlServer.WmiManagement 库中。

这是我使用过的 Powershell sn-p,它使用相同的对象。希望它会为您指明正确的道路。

$smo = 'Microsoft.SqlServer.Management.Smo.'
$wmi = new-object ($smo + 'Wmi.ManagedComputer').

# List the object properties, including the instance names.
$Wmi

# Enable the TCP protocol on the default instance.
$uri = "ManagedComputer[@Name='<computer_name>']/ ServerInstance[@Name='MSSQLSERVER']/ServerProtocol[@Name='Tcp']"
$Tcp = $wmi.GetSmoObject($uri)
$Tcp.IsEnabled = $true
$Tcp.Alter()
$Tcp

# Enable the named pipes protocol for the default instance.
$uri = "ManagedComputer[@Name='<computer_name>']/ ServerInstance[@Name='MSSQLSERVER']/ServerProtocol[@Name='Np']"
$Np = $wmi.GetSmoObject($uri)
$Np.IsEnabled = $true
$Np.Alter()
$Np

【讨论】:

以上是关于自动打开命名管道和 tcp\ip的主要内容,如果未能解决你的问题,请参考以下文章

SQL 2005 作业执行:TCP/IP 与命名管道

禁用命名管道

[08001] [Microsoft] [SQL Server Native Client 11.0] 命名管道提供程序:无法打开与SQL Server的连接

为啥只读打开命名管道块?

MySQL的连接

如何等待命名管道的另一端打开?