确定SQL正在使用的端口,或者根据需要通过程序设置它

时间:2014-09-09 21:52:44

标签: sql-server vb.net tcp

1)我正在VB.Net/ADO.Net程序中寻找一种方法,以确定Microsoft SQL的命名实例是否使用以及使用哪个端口而不依赖于注册表项(要查看的地方太多) ,黑客事件日志(不可靠),或打开SQL配置管理器(再次,我需要这样做是一个程序)。

2)如果我确定SQL未配置为使用TCP,那么通过VB.Net/ADO.Net是否有可靠的方法来启用TCP / IP并设置端口?

在这两种情况下,这些功能都将在安装过程中以提升的权限运行。

1 个答案:

答案 0 :(得分:0)

我在powershell中进行交易,但你应该能够很好地翻译它。注意:在我的测试中,哈希键(例如'MSSQLSERVER''Tcp')区分大小写。

$machine = new-object Microsoft.SqlServer.Management.Smo.Wmi.ManagedComputer '.'
$t = $machine.ServerInstances['MSSQLSERVER'].ServerProtocols['Tcp']
$t.IsEnabled = $true; #enable TCP
$port = $t.IPAddresses['IPAll'].IPAddressProperties['TcpPort'];
if ($port.Value -ne '1433') {
   $port.Value = '1434'; #or whatever port you want to set it to
}
$t.alter();