我的任务是编写一个脚本,为SQL Server 2008 Express R2实例启用tcp和命名管道协议。我已经找到了如何为SQL Server实例本身启用这些协议,但是我还没有找到任何方法来从PowerShell控制SQL Native Client。如何使用powershell配置SQL Native Client?
我的脚本是安装程序的一部分,我正在安装的代码希望启用这些协议。
感谢
我的任务是编写一个脚本,为SQL Server 2008 Express R2实例启用tcp和命名管道协议。我已经找到了如何为SQL Server实例本身启用这些协议,但是我还没有找到任何方法来从PowerShell控制SQL Native Client。如何使用powershell配置SQL Native Client?
我的脚本是安装程序的一部分,我正在安装的代码希望启用这些协议。
感谢
我终于找到了解决办法。该协议可以通过设置注册表项来启用:
在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\SNI10.0
,设置ProtocolOrder
键包含应该启用的协议:
sm = Shared memory
np = Named pipes
tcp = TCP (he)
via = Via
在这个关键的未列出的协议将被禁用。
[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
感谢您的回答!我已经有一个执行这部分操作的脚本。我需要在SQL Native Client上启用相同的协议。 – Eric 2011-02-17 22:31:34