JW0*_*914 9 windows windows-8 dism sfc windows-10
DISM
/RestoreHealth
参数和SFC
/ScanNow
参数的目的是什么?
JW0*_*914 10
该组件商店[ %WinDir%\WinSxS
]维护所有的Windows系统文件的备份副本; SFC
并DISM
管理组件存储和操作系统的两个独立的重要部分,完全SFC
依赖于管理的内容。DISM
DISM
有两个函数SFC
依赖,/StartComponentCleanup
和/RestoreHealth
,/RestoreHealth
完全依赖/StartComponentCleanup
/StartComponentCleanup
: 清除任何损坏的硬链接 的组件存储/RestoreHealth
: 通过哈希比较,根据来自 Windows 更新服务器的已知良好副本验证其系统文件备份,从而验证和修复组件存储中的任何损坏;虽然[下面]确实存在离线方法,但它可能并不总是能修复损坏
Dism
此功能,因为直到 Windows 8 才具有此功能 SFC
始终假定组件存储未损坏,这就是为什么DISM
/RestoreHealth
参数(Windows 7: SUR)应始终在 之前运行SFC
;如果不这样做,则损坏的组件存储可能会用损坏的系统文件替换好的系统文件,或者无法%WinDir%
完全
修复损坏的系统文件/ScanNow
:%WinDir%
通过哈希比较验证组件存储中的已知良好副本,从而验证和修复其中的任何损坏
DISM
并且SFC
必须按照列出的顺序执行,因为每个都依赖于前面的内容:
(Windows 7:跳到 #3)
PowerShell
?Ctrl+ Shift+好的
# Windows ?8:
# Online (while booted to Windows):
Dism /Online /Cleanup-Image /StartComponentCleanup
# Offline (while booted to WinPE/WinRE):
Dism /Image:"D:\Windows" /Cleanup-Image /StartComponentCleanup
# C: is usually not the drive letter in WinPE/WinRE
# To ascertain: DiskPart ? Lis Vol ? Exit
Run Code Online (Sandbox Code Playgroud)在运行 Windows Update 之前、在 Windows Update 出现问题之后,
应始终清理组件存储,并且至少每月一次,因为随着时间的推移更新偶尔会破坏硬链接,它会变脏。# Windows ?8:
# Online (while booted to Windows):
Dism /Online /Cleanup-Image /RestoreHealth
# Offline (while booted to WinPE/WinRE):
Dism /Image:"D:\Windows" /Cleanup-Image /RestoreHealth
Run Code Online (Sandbox Code Playgroud)
需要互联网连接,否则将需要离线方法:
install.esd
|| install.wim
来自 已安装版本(v1909、v2004 等)的Windows 安装 ISO:
install.esd
install.wim
Dism /Get-ImageInfo /ImageFile:"Z:\sources\install.esd"
Run Code Online (Sandbox Code Playgroud)
/Source
参数末尾指定索引号:
# Online (while booted to Windows):
# ESD:
Dism /Online /Cleanup-Image /RestoreHealth /Source:esd:"Z:\sources\install.esd":6 /LimitAccess
# WIM:
Dism /Online /Cleanup-Image /RestoreHealth /Source:wim:"Z:\sources\install.wim":6 /LimitAccess
# Offline (while booted to WinPE/WinRE):
Dism /Image:"D:\Windows" /Cleanup-Image /RestoreHealth /Source:esd:"Z:\sources\install.esd":6 /LimitAccess
Run Code Online (Sandbox Code Playgroud)
%WinDir%\Logs\DISM\dism.log
自底向上%WinDir%\Logs\DISM\dism.log
%WinDir%\Logs\CBS\CheckSUR.log
(如何解决SUR错误)# Online (while booted to Windows):
Sfc /ScanNow
# Offline (while booted to WinPE/WinRE):
Sfc /ScanNow /OffBootDir=D:\ /OffWinDir=D:\Windows
# C: is usually not the drive letter in WinPE/WinRE
# To ascertain: DiskPart ? Lis Vol ? Exit
Run Code Online (Sandbox Code Playgroud)
%UserProfile%\Desktop\SFCdetails.log
并查看:
# Cmd:
FindStr /c:"[SR]" "%WinDir%\Logs\CBS\CBS.log" > "%UserProfile%\Desktop\SFCdetails.log"
# PowerShell:
FindStr /c:"[SR]" "$env:WinDir\Logs\CBS\CBS.log" > "$env:UserProfile\Desktop\SFCdetails.log"
Run Code Online (Sandbox Code Playgroud)
我每周通过Task Scheduler运行这些程序,以帮助防止发生随机问题:
Dism_ComponentCleanup.xml
Dism_RestoreHealth.xml
Sfc_ScanNow.xml
要导入任务计划程序:
Cmd
:
SchTasks /Create /Xml "%UserProfile%\Downloads\<task_name>.xml" /Tn "\Custom\Task Name" /Ru "%ComputerName%\%UserName%"
Run Code Online (Sandbox Code Playgroud)
Powershell
:
Register-ScheduledTask -Xml (Get-Content '$env:UserProfile\Downloads\<task_name>.xml' | Out-String) -TaskName "Task Name" -TaskPath "\Custom\" -User $env:ComputerName\$env:UserName –Force
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1560 次 |
最近记录: |