是否可以通过powershell脚本或者sql脚本启用 tcp/ip协议?

分享于 

3分钟阅读

电脑

 

问题:

上下文:我得到一个Vagrantfile来提供一个 VM,这个VM有 sql server 2012,2014,2016和 2017安装。 在检查 SQL Server 配置管理 时,我看到在每个sqlserver实例中都有 tcp/ip协议禁用。

是否可以通过powershell脚本或者sql脚本来启用它们?


回答 1:

在 SQL Server 中启用 tcp/ip协议可以直接从 SQL Server 配置管理 完成,在扩展"。SQL Server 网络配置"之后,然后是"ms sql server协议"。

右键单击"tcp/ip"并选择"启用",然后右键单击"SQL Server ( ms sql server ),然后选择"重新启动"。

有关PowerShell脚本,请参阅Microsoft项目 Enable启用或者禁用服务器网络协议


回答 2:

Microsoft已经为本主题提供了指导。

https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/enable-or-disable-a-server-network-protocol?view=sql-server-2017

使用 SQL Server PowerShell

启用服务器网络协议的步骤

  • 使用管理员权限打开命令提示符。
  • 从任务栏启动 Windows PowerShell,或者单击开始,然后单击所有程序,然后是 Windows PowerShell,然后是 Windows PowerShell。
  • 输入导入模块sqlps导入sqlps模块"
  • 执行以下语句以启用TCP和 命名管道(Named Pipes) 协议。 替换为运行 SQL Server的计算机的名称。 如果要配置命名实例,请用实例名称替换 ms sql server。 若要禁用协议,请将 IsEnabled properties设置为 $false.

    $smo ="。sql server。管理。"。"。'
    $wmi = 新对象( $smo +'wmi ManagedComputer')。

  • 列出对象属性,包括实例名称。

     
    $Wmi 
    
    
    
     

    在默认实例上启用TCP协议。

    
    $uri ="ManagedComputer[@Name='<computer_name>']/ServerInstance[@Name='MSSQLSERVER']/ServerProtocol[@Name='Tcp']" 
    
    
    $Tcp = $wmi.GetSmoObject($uri) 
    
    
    $Tcp.IsEnabled = $true 
    
    
    $Tcp.Alter() 
    
    
    $Tcp 
    
    
    
    

    为默认实例启用 命名管道(Named Pipes) 协议。

    
    $uri ="ManagedComputer[@Name='<computer_name>']/ServerInstance[@Name='MSSQLSERVER']/ServerProtocol[@Name='Np']" 
    
    
    $Np = $wmi.GetSmoObject($uri) 
    
    
    $Np.IsEnabled = $true 
    
    
    $Np.Alter() 
    
    
    $Np
    
    
    
    


POW  proto  protocol  protoc  Powershell  TCP  
相关文章