如何使用powershell配置SQL Native Client?

时间:2011-02-17 19:44:56

标签: sql-server-2008 powershell

我的任务是编写一个脚本,为SQL Server 2008 Express R2实例启用tcp和命名管道协议。我已经了解了如何为SQL Server实例本身启用这些协议,但我还没有找到任何方法来从PowerShell控制SQL Native Client。

我的脚本是安装程序的一部分,我正在安装的代码希望启用这些协议。

由于

2 个答案:

答案 0 :(得分:5)

[reflection.assembly]::LoadWithPartialName("Microsoft.SqlServer.SqlWmiManagement")
$wmi = new-object ("Microsoft.SqlServer.Management.Smo.Wmi.ManagedComputer") "$env:computername"
$wmi.ServerInstances["SQLEXPRESS"].ServerProtocols["Tcp"].IsEnabled = $true
$wmi.ServerInstances["SQLEXPRESS"].ServerProtocols["Np"].IsEnabled = $true
$wmi.ClientProtocols["tcp"].IsEnabled = $true
$wmi.ClientProtocols["np"].IsEnabled = $true

答案 1 :(得分:1)

我终于找到了解决方案。可以通过设置注册表项来启用协议:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\SNI10.0中,设置ProtocolOrder密钥以包含应启用的协议:

sm = Shared memory
np = Named pipes
tcp = TCP (he)
via = Via

此密钥中未列出的协议将被禁用。