实际记录在哪里DISM /Cleanup-Image
?
DISM /Cleanup-Image
在不同页面中提到,例如https://learn.microsoft.com/de-de/windows-hardware/manufacture/desktop/repair-a-windows-image?view=windows-10。
但DISM /?
(版本:10.0.19041.1)和DISM 图像管理命令行选项均未显示该选项/Cleanup-Image
。
实际记录在哪里DISM /Cleanup-Image
?
DISM /Cleanup-Image
在不同页面中提到,例如https://learn.microsoft.com/de-de/windows-hardware/manufacture/desktop/repair-a-windows-image?view=windows-10。
但DISM /?
(版本:10.0.19041.1)和DISM 图像管理命令行选项均未显示该选项/Cleanup-Image
。
我正在寻找一种方法来重新应用 wim 映像,而不会丢失 Windows PE 中的任何用户数据。到目前为止,我的脚本如下所示:
$TSProgressUI = New-Object -COMObject Microsoft.SMS.TSProgressUI
$TSEnv = New-Object -COMObject Microsoft.SMS.TSEnvironment
$OSDDownload = $TSEnv.Value("osDownload01")
$LogsDirectory = $TSEnv.Value("_SMSTSLogPath")
$wimImagePath = "$OSDDownload\install.wim"
$systemDriveLetter = "S"
Remove-Item -Path "$($env:_OSDDetectedWinDrive)Program Files\WindowsApps" -Recurse -Force -ErrorAction SilentlyContinue
Remove-Item -Path "$($env:_OSDDetectedWinDrive)ProgramData\Microsoft\Windows\AppRepository" -Recurse -Force -ErrorAction SilentlyContinue
$wimIndex = (Get-WindowsImage -ImagePath $wimImagePath | Where-Object {$_.ImageName -eq "Windows 10 Enterprise"} | select -property ImageIndex).ImageIndex
dism /Apply-Image /ImageFile:$wimImagePath /index:$wimIndex /ApplyDir:$($env:_OSDDetectedWinDrive)
#dism /Image:$($env:_OSDDetectedWinDrive) /Cleanup-Image /RestoreHealth /Source:$wimImagePath /LimitAccess
Get-Partition | Where-Object {$_.GptType -eq "{C12A7328-F81F-11D2-BA4B-00A0C93EC93B}"} | Set-Partition -NewDriveLetter $systemDriveLetter
cmd /c """$($env:_OSDDetectedWinDrive)Windows\System32\bcdboot.exe"" ""$($env:_OSDDetectedWinDrive)Windows"" /s $($systemDriveLetter): /f UEFI"
但是,我在 apply-image 命令之后尝试的并没有更好,之后我的 Windows 安装会停留在加载屏幕中。如果我进行重置,我会收到消息“计算机意外重新启动或遇到意外错误”。
知道我做错了什么吗?
谢谢 md
我有一台 Windows 10 机器,它看到 WinSxS 文件夹填得如此之快,以至于 DISM 无法运行,并且 c: 显示 0 字节空闲。该机器还有一个 D: 有 30 GB+ 可用空间,所以我尝试运行
dism /online /cleanup-image /startcomponentcleanup /scratchdir:d:\dism_temp
如果我在没有暂存盘选项的情况下运行,dism 甚至都不会启动。如果我使用暂存盘选项运行,dism 会在 20% 时出错,并显示 112 错误“磁盘上没有足够的空间”。
/resetbase 开关也会在磁盘空间不足时出错,即使使用了 /scratchdir 开关。
磁盘清理在一两分钟内给我买了几 MB,这足以让 dism 在没有 d:scratchdisk 的情况下启动,但是释放的空间在几分钟内神奇地消失了。
有没有办法解决这个问题?
已解决 — 请参阅下面选择的答案。
我最近设置了一台新的 Windows 10 PC(当时是 v20H2),在对其进行自定义时,我将默认的“新电子邮件”声音 (C:\Windows\Media\Windows Notify Email.wav) 替换为 Win8.1 版本,它我更喜欢。但是,我通过用 Win8.1 覆盖原始 Win10 音频文件来做到这一点,而不是仅仅将 Win8.1 文件添加到同一目录并重命名它(“Windows Notify Email_Win8.1.wav”或其他)。我会为此后悔的。
我已经将 Windows 更新到 v21H1。今天早些时候,我第一次在这个系统上运行 SFC /scannow,它“发现了损坏的文件,但无法修复其中一些”。在 CBS 日志中,我发现:
2021-06-06 02:39:15, Info CSI 00000217 Hashes for file member [l:24]'Windows Notify Email.wav' do not match.
Expected: {l:32 ml:33 b:b04f63d689ae7d627a5dc7895bbe53fb3bf470a43c4f1f6339dd4ab8890ffa6f}.
Actual: {l:32 b:7897e75ba5b52a8e53431e7af5758a84acdf2d50d6d2a9dd2d90fee0034e11c0}.
2021-06-06 02:39:15, Info CSI 00000218 [SR] Cannot repair member file [l:24]'Windows Notify Email.wav' of Microsoft-Windows-Shell-Sounds, version 10.0.19041.1, arch amd64, nonSxS, pkt {l:8 b:31bf3856ad364e35} in the store, hash mismatch
2021-06-06 02:39:15, Info CSI 00000219 Hashes for file member [l:24]'Windows Notify Email.wav' do not match.
Expected: {l:32 ml:33 b:b04f63d689ae7d627a5dc7895bbe53fb3bf470a43c4f1f6339dd4ab8890ffa6f}.
Actual: {l:32 b:7897e75ba5b52a8e53431e7af5758a84acdf2d50d6d2a9dd2d90fee0034e11c0}.
2021-06-06 02:39:15, Info CSI 0000021a [SR] Cannot repair member file [l:24]'Windows Notify Email.wav' of Microsoft-Windows-Shell-Sounds, version 10.0.19041.1, arch amd64, nonSxS, pkt {l:8 b:31bf3856ad364e35} in the store, hash mismatch
2021-06-06 02:39:15, Info CSI 0000021b [SR] This component was referenced by [l:154]'Microsoft-Windows-Client-Desktop-Required-Package~31bf3856ad364e35~amd64~~10.0.19041.1023.ACD49602CE22B8D2FE76CB65181A0F3C34476C610F7967574610C8CF843FB4AB'
这是我尝试过的所有内容的简要说明:
sfc /scannow
多次,但错误从未消失。dism /online /cleanup-image /restorehealth
,
然后运行 ,dism /online /cleanup-image /checkhealth
发现没有组件存储损坏。sfc /scannow
几遍;仍然损坏。dism /online /cleanup-image /restorehealth /source:I:\sources\install.esd /limitaccess
。顺利完成。dism /online /cleanup-image /checkhealth
. 清洁组件存储的健康清单。sfc /scannow
, 几次通过。还是不修。sfc /scannow
. 仍然损坏,SFC 仍然无法修复。(那时我摘录了上面的 CBS.log 摘录。)sfc /scannow
给出了同样的错误,奇怪的是,CBS.log 说的和以前一样——哈希不匹配,而不是“文件丢失”或类似的东西。(没有给我新的副本。)我没主意了。即使直接用全新 ISO 的副本手动替换据称损坏的文件也不起作用。更奇怪的是,当我通过散列工具运行文件时,它给了我与 CBS 日志所说的 SFC 正在寻找的完全相同的散列 (SHA256) (“b04…………a6f”),而不是“实际”的散列。据我所知,这是一个非常好的副本,但 SFC 一直将其标记为已损坏。而且我拒绝做一些极端的事情,比如重置我的电脑,撤销数周的设置工作(大量的应用程序和配置),只是为了让 SFC 停止被一个微不足道的 160 KB .wav 文件绊倒。
任何帮助弄清楚这一点将不胜感激。
操作系统:Win10 Pro x64 21H1 (19043.1023)
更多信息:我刚刚再次尝试删除“C:\Windows\Media\Windows Notify Email.wav”并运行SFC /scannow
以查看它是否会替换它,似乎这样做是导致 SFC 将此特定错误放入 CBS 日志的原因:
Could not reproject corrupted file \??\C:\Windows\Media\\Windows Notify Email.wav; source file in store is also corrupted
需要说明的是,我根本没有接触过商店(我什至不知道它在哪里);我只从 C:\Windows\Media 中删除了“损坏的”文件。这是否提供了任何有用的信息,还是只是更多的噪音?
对 Windows 分区进行映像的最有效的本地方式是什么?
如何在新驱动器上配置系统分区以应用映像?
DISM
有/Online
和/Image
参数:
%SystemDrive%
时间启动到它%SystemDrive%
场景:我想向 Windows 10 专业版安装程序添加其他语言,这样我packer
只需更改autounattend.xml
文件即可轻松构建 Windows 实例。
我希望 Windows 10 在安装过程中安装所需的语言,而不是安装它en-US
并在安装后安装语言包。
我知道我可以从 Microsoft 下载每种语言特定的 ISO,但我不喜欢为每种我想支持的语言保留 4-5GB ISO 的想法,而理论上我应该能够创建包含我需要的所有语言的安装程序.
我无权访问 Microsoft OEM 站点、设备合作伙伴中心或 Microsoft 下一代批量许可站点。
资源:
问题
我已经从上面的公共下载链接下载了 Windows 10 ISO,并将内容复制到我电脑上的可写位置。
我还为我正在使用的适当版本的 Windows 10(1809 或 1903)安装了 Windows ADK 和 Windows PE 附加组件。
当我尝试集成 Windows PE 附加组件中附带的语言包时,我注意到该版本与公共 ISO 中的映像版本不匹配。
Windows PE 附加组件的语言包版本似乎是.1
,公共 Windows 10 ISO 上的版本似乎总是.3
当我尝试将语言包集成到 的sources\install.wim
中时Win10_1809Oct_v2_English_x64.iso
,我得到以下输出:
dism /image:C:\mount\boot /add-package /packagepath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\ko-kr\lp.cab"
Deployment Image Servicing and Management tool
Version: 10.0.17763.1
Image Version: 10.0.17763.379
Processing 1 of 1 - Adding package Microsoft-Windows-WinPE-LanguagePack-Package~31bf3856ad364e35~amd64~ko-KR~10.0.17763.1
[==========================100.0%==========================]
Error: 0x800f081e
The specified package is not applicable to this image.
我注意到语言包版本似乎是10.0.17763.1
,而公共 1809 ISO 似乎包含发布10.0.17763.379
如果我安装适用于 1903 的 Windows ADK/PE 附加组件并尝试使用 1903 ISO Win10_1903_V1_English_x64.iso
,我会遇到同样的错误:
dism /image:C:\mount\boot /add-package /packagepath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\fr-fr\lp.cab"
Deployment Image Servicing and Management tool
Version: 10.0.17763.1
Image Version: 10.0.18362.30
Processing 1 of 1 - Adding package Microsoft-Windows-WinPE-LanguagePack-Package~31bf3856ad364e35~amd64~fr-FR~10.0.18362.1
[==========================100.0%==========================]
Error: 0x800f081e
The specified package is not applicable to this image.
C:\Windows\Logs\DISM\dism.log
有大量与此操作相关的输出。我不太了解Windows,但问题似乎是由于版本不匹配而无法找到语言包的父包:
2019-07-15 16:21:50, Info DPX Extraction of file: update.ses failed because it is not present in the container (\\?\C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\fr-fr\lp.cab).
2019-07-15 16:21:50, Info DPX DpxException hr=0x80070002 code=0x020109
2019-07-15 16:21:50, Info CBS Not able to add file to extract: update.ses [HRESULT = 0x80070002 - ERROR_FILE_NOT_FOUND]
2019-07-15 16:21:50, Info CBS Appl: detect Parent, Package: Microsoft-Windows-WinPE-LanguagePack-Package~31bf3856ad364e35~amd64~fr-FR~10.0.18362.1, Parent: Microsoft-Windows-WinPE-Package~31bf3856ad364e35~amd64~~10.0.18362.1, Disposition = Detect, VersionComp: EQ, BuildComp: EQ, RevisionComp: GE, Exist: present
2019-07-15 16:21:50, Info CBS Appl: detectParent: no parent found, go absent
2019-07-15 16:21:50, Info CBS Appl: Evaluating package applicability for package Microsoft-Windows-WinPE-LanguagePack-Package~31bf3856ad364e35~amd64~fr-FR~10.0.18362.1, applicable state: Absent
2019-07-15 16:21:50, Info DISM DISM Package Manager: PID=3140 TID=15264 Package Microsoft-Windows-WinPE-LanguagePack-Package~31bf3856ad364e35~amd64~fr-FR~10.0.18362.1 with CBS state 0(CbsInstallStateAbsent) being mapped to dism state 1(DISM_INSTALL_STATE_NOTPRESENT) - CDISMPackage::LogInstallStateMapping
2019-07-15 16:21:50, Error DISM DISM Package Manager: PID=3140 TID=15264 The package Microsoft-Windows-WinPE-LanguagePack-Package is not applicable to the image. - CPackageManagerCLIHandler::Private_ProcessPackageChange
2019-07-15 16:21:50, Info DISM DISM Package Manager: PID=3140 TID=15264 Initiating Changes on Package with values: 4, 7 - CDISMPackage::Internal_ChangePackageState
2019-07-15 16:21:50, Info DISM DISM Package Manager: PID=3140 TID=15264 CBS session options=0x0! - CDISMPackageManager::Internal_Finalize
问题
10.0.17763.1
10.0.18362.1
.3
?