以下是针对 Windows 系统常见故障的 PowerShell 修复命令,按故障类型分类整理,涵盖系统文件、更新、启动、应用、网络等场景,建议以“以管理员身份运行”。
1、扫描并修复损坏的系统文件
# 扫描并修复损坏的系统文件(基础修复) sfc /scannow # 扫描并将修复结果保存到日志,离线修复(适用于无法启动时) sfc /scannow /offbootdir=C:\ /offwindir=C:\Windows
作用:通过系统文件检查器(SFC)扫描所有受保护的系统文件,并用缓存中的完好文件替换损坏文件。
说明:若提示 “无法修复”,需先运行 DISM 修复系统镜像。
2、修复系统镜像(适用于 SFC 失败时)
# 扫描镜像健康状态 DISM /Online /Cleanup-Image /ScanHealth # 检查镜像可修复性 DISM /Online /Cleanup-Image /CheckHealth # 用官方源修复镜像(需联网) DISM /Online /Cleanup-Image /RestoreHealth # 用本地镜像文件修复(需提前准备install.wim) DISM /Online /Cleanup-Image /RestoreHealth /Source:WIM:C:\install.wim:1 /LimitAccess
作用:修复 Windows 系统镜像(WIM/ESD)中的损坏,为 SFC 提供完好的文件来源。
1、重置 Windows 更新组件
# 停止更新相关服务 Stop-Service -Name wuauserv, cryptSvc, bits, msiserver -Force # 清理更新缓存 Remove-Item -Path "C:\Windows\SoftwareDistribution\*" -Recurse -Force -ErrorAction SilentlyContinue Remove-Item -Path "C:\Windows\System32\catroot2\*" -Recurse -Force -ErrorAction SilentlyContinue # 注册相关DLL文件 regsvr32.exe /s atl.dll regsvr32.exe /s urlmon.dll regsvr32.exe /s mshtml.dll # 重启服务 Start-Service -Name wuauserv, cryptSvc, bits, msiserver
作用:解决更新卡住、失败(如 0x80070005、0x80240034 等错误),清除旧缓存并重启核心服务。
2、查看更新日志(排查失败原因)
Get-WindowsUpdateLog
作用:生成详细的更新日志文件(保存到桌面),可查找更新失败的具体原因。
3、卸载有问题的更新
# 列出已安装的更新(按安装时间排序) Get-HotFix | Sort-Object InstalledOn -Descending # 卸载指定更新(替换KB编号) wusa /uninstall /kb:123456 /quiet /norestart
1、修复启动配置(BCD)
# 重建BCD配置(适用于启动失败、黑屏)
# 备份当前BCD配置
bcdedit /export C:\BCD_Backup
# 修复MBR(主引导记录)
bootrec /fixmbr
# 修复分区引导扇区
bootrec /fixboot
# 扫描系统中可启动的Windows安装
bootrec /scanos
# 重建BCD配置
bootrec /rebuildbcd
# 重置BCD存储
bcdedit /deletevalue {default} recoveryenabled
bcdedit /deletevalue {default} osdevice说明:需在高级启动模式(如安全模式)或 PE 环境中运行,修复 MBR 和启动配置数据。
2、检查启动项状态
# 列出所有启动项
bcdedit /enum all
# 修复安全模式启动项
bcdedit /set {safeboot} device partition=C:作用:列出当前系统的启动项配置,可排查异常启动项(如冗余或损坏的条目)。
1、重新注册所有 Microsoft Store 应用
# 重新注册当前用户的所有UWP应用
Get-AppxPackage | ForEach-Object {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml" -ErrorAction SilentlyContinue}
# 重新注册所有用户的UWP应用
Get-AppxPackage -AllUsers | ForEach-Object {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml" -ErrorAction SilentlyContinue}
# 仅修复系统内置核心应用(如开始菜单、设置)
Get-AppxPackage -AllUsers | Where-Object {$_.Name -like "Microsoft.Windows.*" -or $_.Name -like "Microsoft.UI.*"} | ForEach-Object {Add-AppxPackage -Register "$($_.InstallLocation)\AppXManifest.xml" -ForceApplicationShutdown}作用:修复应用闪退、图标消失、无法打开(如开始菜单无响应)。
2、重置 Microsoft Store
wsreset.exe
作用:清空商店缓存,解决商店无法加载、下载失败等问题(运行后会自动重启商店)。
3、卸载并重新安装有问题的应用
# 卸载指定应用(替换应用名称)
Remove-AppxPackage -Package "Microsoft.Windows.Calculator_10.2103.8.0_x64__8wekyb3d8bbwe"
# 修复应用卸载残留(删除无效注册表项)
Get-ItemProperty "HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*" | Where-Object {$_.DisplayName -eq $null} | Remove-Item -Recurse -Force1、重置网络适配器与配置
# 重置网络栈(解决无法上网、IP冲突等) netsh int ip reset netsh winsock reset # 重置网络适配器配置 Get-NetAdapter | Restart-NetAdapter -Force # 重新安装网络适配器驱动(需重启) Get-NetAdapter | Uninstall-Driver -Confirm:$false # 重启网络服务 Restart-Service -Name Dhcp, NetworkStoreInterfaceService, NlaSvc -Force
2、释放并更新 DNS 缓存
# 释放并更新IP地址 ipconfig /release ipconfig /renew # 刷新DNS缓存 ipconfig /flushdns # 重置DNS客户端服务 Restart-Service dnscache -Force
3、查看网络适配器状态(排查硬件 / 驱动问题)
Get-NetAdapter | Select-Object Name, Status, MacAddress, LinkSpeed # 运行系统网络诊断 msdt.exe /id NetworkDiagnosticsNetworkAdapter # 查看网络连接状态 Get-NetConnectionProfile
1、修复当前用户配置文件
# 检查用户配置文件状态(1=正常,2=损坏) Get-WmiObject -Class Win32_UserProfile | Select-Object LocalPath, Status # 修复当前用户文件夹权限 icacls "$env:USERPROFILE" /grant "$env:USERNAME`:F" /T /C /Q # 重置用户权限(需替换用户名) icacls "C:\Users\用户名" /reset /T /C /Q
作用:解决用户登录后黑屏、桌面文件丢失、权限错误(如 “无法访问”)。
2、启用内置管理员账户(紧急修复用)
# 启用内置管理员账户 net user administrator /active:yes # 重置用户密码(需管理员权限) net user 用户名 新密码 # 修复用户组权限,添加管理员权限 Add-LocalGroupMember -Group "Administrators" -Member 用户名
3、系统安全策略修复
# 重置本地安全策略 secedit /configure /cfg %windir%\inf\defltbase.inf /db defltbase.sdb /verbose # 修复UAC(用户账户控制)设置 Set-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" -Name "EnableLUA" -Value 1 -Type DWord
网友评论