You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server 14 WMI Provider不可用,如何通过PowerShell使其可用?

别着急,咱们一步步来搞定这个SQL Server WMI Provider不可用的问题,等Provider恢复正常,就能顺利启用TCP/IP和Named Pipes协议了。

修复SQL Server 14 WMI Provider不可用问题

1. 先检查核心WMI服务状态

首先得确保目标机器上的关键WMI相关服务在正常运行:

  • 打开管理员权限的PowerShell,运行以下命令检查服务状态:
    Get-Service -ComputerName <COMPUTER NAME> -Name winmgmt, sqlwriter
    
    确认这两个服务的状态是Running。如果没运行,直接启动并设置为自动启动:
    # 启动服务
    Start-Service -ComputerName <COMPUTER NAME> -Name winmgmt, sqlwriter
    # 设置开机自动启动,避免重启后失效
    Set-Service -ComputerName <COMPUTER NAME> -Name winmgmt -StartupType Automatic
    Set-Service -ComputerName <COMPUTER NAME> -Name sqlwriter -StartupType Automatic
    

2. 重新注册SQL Server WMI Provider

WMI Provider的注册信息损坏是常见原因,咱们重新注册一遍:

  • 切换到SQL Server 14的Shared目录(默认路径如下,若你安装路径不同请自行替换):
    cd "C:\Program Files\Microsoft SQL Server\140\Shared"
    
  • 运行MOF文件编译命令,重新注册Provider:
    mofcomp sqlmgmproviderxpsp2up.mof
    
    执行成功后会返回“MOF file has been successfully parsed”之类的提示。

3. 验证WMI连接是否恢复

修复后,先确认WMI Provider能正常访问:

Get-WmiObject -ComputerName <COMPUTER NAME> -Namespace root\Microsoft\SqlServer\ComputerManagement14 -Class SqlServiceAdvancedProperty

如果能返回正常的属性列表,说明WMI Provider已经可用了。要是还报错,记得检查目标机器的防火墙——确保允许WMI的端口(默认135+动态端口)被你的管理机器访问。

4. 启用TCP/IP和Named Pipes协议

现在WMI正常了,就可以用PowerShell启用协议了,给你一段靠谱的脚本:

# 连接到SQL Server的WMI命名空间
$wmiNamespace = "root\Microsoft\SqlServer\ComputerManagement14"
$serverProtocols = Get-WmiObject -ComputerName <COMPUTER NAME> -Namespace $wmiNamespace -Class ServerNetworkProtocol

# 启用TCP/IP协议
$tcpProtocol = $serverProtocols | Where-Object { $_.ProtocolName -eq "Tcp" }
if ($tcpProtocol) {
    $tcpProtocol.SetEnable()
    Write-Host "TCP/IP协议已成功启用"
}

# 启用Named Pipes协议
$namedPipesProtocol = $serverProtocols | Where-Object { $_.ProtocolName -eq "Np" }
if ($namedPipesProtocol) {
    $namedPipesProtocol.SetEnable()
    Write-Host "Named Pipes协议已成功启用"
}

# 重启SQL Server服务让设置生效(如果是命名实例,服务名改为MSSQL$<你的实例名>)
Restart-Service -ComputerName <COMPUTER NAME> -Name "MSSQLSERVER" -Force

额外排查点(如果以上步骤没解决)

  • 如果目标机器的SQL Server配置管理器都打不开,那可能是WMI Provider损坏严重,需要修复SQL Server安装:在控制面板的「程序和功能」里找到SQL Server 14,选择「更改」,然后执行「修复」操作。
  • 确认你运行PowerShell的账号有足够权限:需要目标机器的管理员权限,以及SQL Server的配置管理权限。

内容的提问来源于stack exchange,提问作者Lotzi11

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 06:56:09