如何使用CMD将SQL Server实例TCP端口更改为1433



我正在考虑是否可以使用cmd将SQL Server 2008实例TCP端口更改为1433,而不使用SQL Server配置管理器。

我只想把它应用到我的应用程序设置中,我的客户端希望它处于多用户模式。

我知道如何使用cmd启用TCP/IP。我知道如何创建一个脚本来允许在windows防火墙中使用特定的端口。

提前谢谢。如果我的详细信息不足以回答我的问题,请留下评论。

不完全是cmd,但powershell是新的cmd。:)

import-module sqlps;
$MachineObject = new-object ('Microsoft.SqlServer.Management.Smo.WMI.ManagedComputer') "computername"
$instance = $MachineObject.getSmoObject(
   "ManagedComputer[@Name='computername']/" + 
   "ServerInstance[@Name='instancename']"
)
$instance.ServerProtocols['Tcp'].IPAddresses['IPAll'].IPAddressProperties['TcpPort'].Value = "1433"
$instance.ServerProtocols['Tcp'].IPAddresses['IPAll'].IPAddressProperties['TcpDynamicPorts'].Value = ""
$instance.ServerProtocols['Tcp'].Alter()

如果要通过安装程序更改端口,则必须直接编辑目标SQL Server实例的注册表。我强烈建议您不要这样做,因为您最终可能会选择不正确的实例,或者更糟的是,进行不正确的更改并损坏值和注册表项。

然而,如果你仍然觉得这是你想自动完成的事情,注册表项如下:

软件\Microsoft\Microsoft SQL服务器\InstanceID\InstanceName\SuperSocketNetLib\TCP

实例名称必须在哪里计算(也可以通过注册表来完成,具体取决于版本将在哪里更改)。您还需要弄清楚哪个IP(除非您想更改IPALL值)是您的目标IP,因为所有IP都列在实例的子文件夹中。

自从我写下上面的答案以来,已经过去了六年(几乎准确地说)。从那时起,艺术的状态就一直在进步。虽然我确信前面的答案仍然有效,但今天我将使用dbatools powershell模块中的Set-DbaTcpPort。看看吧!

相关内容

最新更新