我在考虑是否可以使用cmd将SQL Server 2008实例TCP端口更改为1433,而不使用SQL Server配置管理器。
我只是想将此应用到我的应用程序设置中,我的客户希望它处于多用户模式。
我知道如何使用cmd启用TCP / IP。我知道如何创建一个脚本以允许Windows防火墙中的特定端口。
提前致谢。如果我的详细信息不足以回答我的问题,请发表评论。
答案 0 :(得分:2)
不完全是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()
答案 1 :(得分:0)
如果要通过安装程序更改端口,则必须直接编辑注册表以用于您要定位的SQL Server实例。我强烈建议不要这样做,因为你最终可能会选择不正确的实例,或者更糟糕的是做出错误的更改并破坏值和注册表项。
但是,如果您仍然认为这是您想要自动执行的操作,则注册表项位于以下位置:
SOFTWARE \ Microsoft \ Microsoft SQL 服务器\实例id \实例\ SuperSocketNetLib \ TCP
必须计算实例名称(也可以通过注册表完成,具体取决于版本将在何处更改)。您还需要确定哪个IP(除非您想要更改IPALL值)是您要定位的IP,因为所有IP都列在他们自己的实例子文件夹中。
答案 2 :(得分:0)
自从我写下上面的答案以来,已经过去了六年(几乎完全一样)。从那时起,最先进的技术已经取得了进步。虽然我确定以前的答案仍然有效,但今天我将使用 dbatools powershell 模块中的 Set-DbaTcpPort。 Check it out!