【问题标题】:How to change SQL Server Instance TCP Ports to 1433 using CMD?如何使用 CMD 将 SQL Server 实例 TCP 端口更改为 1433?
【发布时间】:2015-03-22 02:05:29
【问题描述】:

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

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

我知道如何使用 cmd 启用 TCP/IP。而且我知道如何创建脚本以允许 Windows 防火墙中的特定端口。

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

【问题讨论】:

  • SQL Server 不侦听 UDP,但是浏览器服务会侦听。多用户处于数据库级别而不是实例级别,与 SQL Server 或浏览器服务正在侦听的端口无关。你能更新一下细节吗:)
  • 嗨@SeanGallardy 感谢你们的cmets,我编辑了我的问题,实际上,我已经在手动模式下完成了这件事,但它需要技术人员的技能和知识才能做到这一点。但我希望它只需单击一下即可完成这些事情。我希望你能得到我。 :)
  • 这显示了它在注册表中的存储位置。 stackoverflow.com/questions/2243250/…。您可以尝试使用命令行磁贴或脚本进行设置

标签: sql-server vb.net sql-server-2008-r2 command-prompt vb.net-2010


【解决方案1】:

不完全是 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()

【讨论】:

    【解决方案2】:

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

    但是,如果您仍然觉得这是您想要自动执行的操作,则注册表项位于以下位置:

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

    必须找出实例名称的位置(这也可以通过注册表完成,具体取决于版本会改变它的位置)。您还需要确定哪个 IP(除非您想更改 IPALL 值)是您的目标,因为所有 IP 都列在其自己的实例子文件夹中。

    【讨论】:

      【解决方案3】:

      自从我写出上面的答案以来,已经过去了六年(几乎完全一样)。从那时起,最先进的技术一直在进步。虽然我确定之前的答案仍然有效,但今天我将使用 dbatools powershell 模块中的 Set-DbaTcpPort 。 Check it out!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-07-02
        • 2011-01-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多