我们有一个名为“Installer”的C#win表单应用程序默默地在客户端系统上安装各种第三方软件,如IIS,SQL Server,AVG-Free;以及我们自己的产品。我需要自动启用Named Pipes& TCP / IP协议,还需要使用批处理文件重新启动SQL Server(SQLEXPRESS)服务;或C#win表单应用;或者通过提供适当的开关通过命令行安装SQL Server 我搜索过但这是非常独特的要求。
答案 0 :(得分:0)
我找到了解决方案,试过了。注册表中SQL Server的协议信息存储在此处:
HKLM \ Software \ Microsoft \ Microsoft SQL 服务器\ MSSQL10_50。的 MSSQLSERVER 强> \的MSSQLServer \ SuperSocketNetLib
这适用于MSSQLSERVER实例,如果是不同的实例,则以粗体显示的注册表路径将替换为该实例的名称。
需要重启该实例的“SQLServer服务”。
答案 1 :(得分:0)
如果要避免摆弄注册表,则应执行以下操作。
在sqlps
提示符下:
$smo = 'Microsoft.SqlServer.Management.Smo.'
$wmi = new-object ($smo + 'Wmi.ManagedComputer').
# Enable the TCP protocol on the default instance.
$uri = "ManagedComputer[@Name='" + (get-item env:\computername).Value + "']/ServerInstance[@Name='MSSQLSERVER']/ServerProtocol[@Name='Tcp']"
$Tcp = $wmi.GetSmoObject($uri)
$Tcp.IsEnabled = $true
$Tcp.Alter()
# Enable the named pipes protocol for the default instance.
$uri = "ManagedComputer[@Name='" + (get-item env:\computername).Value + "']/ServerInstance[@Name='MSSQLSERVER']/ServerProtocol[@Name='Np']"
$Np = $wmi.GetSmoObject($uri)
$Np.IsEnabled = $true
$Np.Alter()
然后从旧的cmd
重新启动SQL Server:
net stop MSSQLSERVER
net start MSSQLSERVER