Windows系统错误6118全面解决方案:修复此工作组的服务器列表当前无法使用
Windows系统错误6118全面解决方案:修复"此工作组的服务器列表当前无法使用"
问题概述
当在Windows系统中执行net view
相关命令时,出现系统错误 6118,提示"此工作组的服务器列表当前无法使用",这是常见的网络服务故障。本文将提供完整的排查和解决方案。
错误原因深度分析
1. 服务状态问题
- Computer Browser服务未运行或异常
- Server服务未启动
- Workstation服务故障
2. 网络配置问题
- 网络发现功能被禁用
- 文件和打印机共享未启用
- 防火墙阻止了NetBIOS通信
3. 协议配置问题
- NetBIOS over TCP/IP未启用
- SMB协议配置错误
- 网络协议栈损坏
立即解决方案
方案1:重启关键服务
以管理员身份运行PowerShell,执行以下命令:
# 重启网络浏览相关服务
Restart-Service -Name "Browser" -Force
Restart-Service -Name "LanmanServer" -Force
Restart-Service -Name "LanmanWorkstation" -Force# 检查服务状态
Get-Service -Name "Browser", "LanmanServer", "LanmanWorkstation" | Format-Table Name, Status, StartType
方案2:启用网络发现和文件共享
# 启用网络发现
Set-NetFirewallRule -DisplayGroup "网络发现" -Enabled True# 启用文件和打印机共享
Set-NetFirewallRule -DisplayGroup "文件和打印机共享" -Enabled True# 检查网络配置文件
Get-NetConnectionProfile | Format-Table Name, NetworkCategory
网络配置修复
检查网络发现设置
# 设置网络为专用网络(启用网络发现)
$profile = Get-NetConnectionProfile
Set-NetConnectionProfile -Name $profile.Name -NetworkCategory Private# 验证设置
Get-NetConnectionProfile
启用NetBIOS over TCP/IP
方法1:通过PowerShell
# 获取网络适配器信息
Get-NetAdapter | Format-List Name, InterfaceDescription# 启用NetBIOS(需要知道适配器名称)
$adapterName = "以太网" # 替换为实际适配器名称
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\NetBT\Parameters\Interfaces\Tcpip_$($adapterName)" -Name NetbiosOptions -Value 0
方法2:图形界面操作
- 打开"网络连接"
- 右键点击网络适配器 → 属性
- 选择"Internet协议版本4 (TCP/IPv4)" → 属性
- 点击"高级" → WINS选项卡
- 选择"启用NetBIOS over TCP/IP"
服务配置深度修复
检查并修复服务依赖关系
# 检查关键服务的状态和依赖关系
$services = @("Browser", "LanmanServer", "LanmanWorkstation", "Netlogon")foreach ($service in $services) {$svc = Get-Service -Name $service -ErrorAction SilentlyContinueif ($svc) {Write-Host "服务: $($svc.Name)"Write-Host "状态: $($svc.Status)"Write-Host "启动类型: $($svc.StartType)"Write-Host "---"} else {Write-Warning "服务 $service 未找到"}
}# 设置服务为自动启动
Set-Service -Name "Browser" -StartupType Automatic
Set-Service -Name "LanmanServer" -StartupType Automatic
Set-Service -Name "LanmanWorkstation" -StartupType Automatic
重置网络协议栈
# 重置Winsock目录(需要管理员权限)
netsh winsock reset# 重置TCP/IP协议
netsh int ip reset# 刷新DNS缓存
ipconfig /flushdns# 重启计算机后生效
Write-Host "请重启计算机完成重置"
高级网络诊断
使用网络诊断工具
# 检查网络连通性
Test-NetConnection -ComputerName "localhost" -Port 445
Test-NetConnection -ComputerName "127.0.0.1" -Port 139# 检查NetBIOS名称解析
nbtstat -n# 查看网络共享会话
net session
检查防火墙规则
# 查看当前防火墙规则
Get-NetFirewallRule -DisplayGroup "网络发现" | Where-Object {$_.Enabled -eq "True"} | Format-Table DisplayName, EnabledGet-NetFirewallRule -DisplayGroup "文件和打印机共享" | Where-Object {$_.Enabled -eq "True"} | Format-Table DisplayName, Enabled# 如果规则缺失,重新启用
Enable-NetFirewallRule -DisplayGroup "网络发现"
Enable-NetFirewallRule -DisplayGroup "文件和打印机共享"
注册表修复方案
修复网络相关注册表项
# 备份当前注册表
$backupPath = "C:\regbackup"
if (!(Test-Path $backupPath)) {New-Item -ItemType Directory -Path $backupPath
}# 备份网络相关注册表项
reg export "HKLM\SYSTEM\CurrentControlSet\Services\NetBT" "$backupPath\NetBT.reg"
reg export "HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer" "$backupPath\LanmanServer.reg"# 修复MaintainServerList设置(关键修复)
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\Browser\Parameters" -Name "MaintainServerList" -Value "Yes"# 修复服务器公告设置
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" -Name "Size" -Value 3
组策略配置检查
检查网络相关策略
# 检查当前计算机策略
gpresult /r | Select-String "网络发现"# 检查本地组策略设置
# 运行 gpedit.msc 检查以下路径:
# 计算机配置 → 管理模板 → 网络 → Lanman工作站
# 计算机配置 → 管理模板 → 网络 → Lanman服务器
替代命令方案
使用其他网络发现方法
# 使用PowerShell发现网络计算机
Get-NetNeighbor | Where-Object {$_.State -eq "Reachable"} | Format-Table IPAddress, LinkLayerAddress, State# 使用WMI查询网络计算机
Get-WmiObject -Class Win32_NetworkAdapter | Where-Object {$_.NetEnabled -eq $true} | Format-Table Name, NetConnectionStatus# 使用.NET方法
[System.Net.Dns]::GetHostEntry([System.Net.Dns]::GetHostName())
预防措施和最佳实践
1. 定期服务检查脚本
# 创建定期检查脚本
function Check-NetworkServices {$services = @("Browser", "LanmanServer", "LanmanWorkstation")$results = @()foreach ($service in $services) {$status = Get-Service -Name $service -ErrorAction SilentlyContinueif ($status) {$results += [PSCustomObject]@{Service = $serviceStatus = $status.StatusStartType = $status.StartType}}}return $results
}# 执行检查
Check-NetworkServices | Format-Table
2. 网络配置备份
# 备份网络配置
function Backup-NetworkConfig {$backupDir = "C:\NetworkConfigBackup"if (!(Test-Path $backupDir)) {New-Item -ItemType Directory -Path $backupDir}# 备份网络适配器配置Get-NetAdapter | Export-Clixml "$backupDir\NetAdapter.xml"# 备份IP配置Get-NetIPConfiguration | Export-Clixml "$backupDir\IPConfig.xml"# 备份防火墙规则Get-NetFirewallProfile | Export-Clixml "$backupDir\FirewallProfiles.xml"Write-Host "网络配置已备份到: $backupDir"
}
故障排除流程图
开始↓
检查Browser服务状态 → 异常 → 重启服务↓正常
检查Server服务状态 → 异常 → 重启服务 ↓正常
检查网络发现设置 → 禁用 → 启用网络发现↓正常
检查防火墙规则 → 阻止 → 启用相关规则↓正常
检查NetBIOS设置 → 禁用 → 启用NetBIOS over TCP/IP↓正常
重置网络协议栈↓
测试net view命令↓
问题解决
常见问题解答
Q: 为什么重启服务后问题会复发?
A: 可能是服务启动类型设置为"手动"或"禁用",需要设置为"自动"。
Q: 在域环境中如何解决此问题?
A: 域环境中还需要检查Netlogon服务和DNS解析,确保能够正常联系域控制器。
Q: 这些修复对企业环境安全有影响吗?
A: 网络发现和文件共享确实会增加一定的安全风险,建议在受信任的内部网络中使用。
Q: Windows 10/11中Computer Browser服务被移除怎么办?
A: 新版本Windows使用Function Discovery服务替代,可以使用Get-NetNeighbor
等现代命令。
总结
错误6118通常是由于网络浏览服务异常或配置问题导致的。通过系统性的服务检查、网络配置修复和协议重置,大多数情况下都能解决问题。建议按照本文提供的步骤顺序进行排查,从简单的服务重启到复杂的注册表修复,逐步深入解决问题。