Hướng dẫn này chỉ cách xóa ứng dụng provisioned Microsoft Store, tính năng (capabilities), và phiên bản Windows không dùng từ image cài Windows 10 (install.wim). Làm thủ công dùng DISM hoặc PowerShell (mọi hành động có thể tự động hóa bằng script). Cuối cùng có image cài Windows 10 sạch không chứa chương trình/thành phần không cần. Image này chỉ chứa app và tính năng cốt lõi Microsoft Store.
Bài viết giải thích cách dọn dẹp và tối ưu image cài Windows 10 triển khai trên máy doanh nghiệp khi cài sạch hoặc nâng cấp build. Sau nâng cấp build trên máy user dùng SCCM (từ Windows 10 1803 lên 1909) qua setup.exe /auto upgrade, phát hiện một số UWP (Microsoft Store) built-in đã gỡ trước lại xuất hiện trên máy.
Lưu ý. Windows 10 Build 1909 dùng làm ví dụ, nhưng hướng dẫn áp dụng cho các build Windows 10 khác.
Khi cài Windows 10, image \sources\install.wim (hoặc install.esd) thực sự được triển khai. Nếu image cài Windows 10 lưu dưới ISO, mount vào ảo CD và copy E:\sources\install.wim (hoặc install.esd) ra ổ cục bộ. Có thể copy cả thư mục, nhưng chỉ cần file .wim.
Lệnh DISM dùng sửa file .WIM. Nếu dùng image Windows cũ để tạo image, đảm bảo dùng DISM mới nhất. Làm việc file install.wim Windows 10 trên OS khác, cần cài Windows ADK (Windows Assessment and Deployment Kit). Tải ADK tại: https://msdn.microsoft.com/en-us/windows/hardware/dn913721.aspx. Kéo xuống và nhấp "Download the Windows ADK for Windows 10". Hiện tại mới nhất ADK cho Windows 10, version 2004. Chỉ cài Deployment Tools thay vì toàn bộ ADK.
Khuyến khích dùng đường dẫn đầy đủ DISM.exe khi chạy lệnh sửa image (ví dụ 'C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\amd64\DISM\dism.exe'). Phiên bản DISM cũ có thể không làm việc với file .wim mới.
Xóa các phiên bản OS bổ sung từ file Windows 10 Install.WIM
Mặc định, image cài Windows 10 do Media Creation Tool tạo chứa tất cả phiên bản Windows. Nếu chỉ dùng một phiên bản (Professional hoặc Enterprise thường), xóa tất cả phiên bản Windows thêm khỏi image cài.
Xóa phiên bản Windows không cần từ install.wim không giảm nhiều dung lượng .WIM. Chỉ xóa file XML và metadata.
Lấy danh sách phiên bản Windows 10 có trong install.wim:
Dism /Get-WimInfo /WimFile:"e:\sources\install.esd"
Ví dụ có 9 phiên bản: Windows 10 Home, Home Single Language, Education, Enterprise, Pro, v.v., index 1 đến 9.
Xuất image cài phiên bản Windows 10 cụ thể từ file ESD sang WIM:
Dism /export-image /SourceImageFile:c:\sources\install.esd /SourceIndex:6 /DestinationImageFile:c:\iso\install.wim /Compress:max /CheckIntegrity
Lệnh này tạo install.wim mới chỉ chứa một phiên bản — Windows 10 Pro. Index trong image đổi thành 1.
Xem thông tin chi tiết image còn lại trong WIM:
dism /get-wiminfo /wimfile:c:\iso\install.wim /index:1
Index : 4 Name : Windows 10 Pro Description : Windows 10 Pro Size : 14,754,777,474 bytes WIM Bootable : No Architecture : x64 Hal : <undefined> Version : 10.0.18363 ServicePack Build : 418 ServicePack Level : 0 Edition : Professional Installation : Client ProductType : WinNT ProductSuite : Terminal Server System Root : WINDOWS Directories : 22541 Files : 96467 Created : 10/7/2019 - 4:05:55 AM Modified : 11/15/2019 - 8:46:50 AM Languages : en-US (Default)
Nếu muốn giữ nhiều phiên bản Windows trong install.wim, xóa phiên bản không cần bằng tham số /delete-image DISM.
Ví dụ, xóa Home và Home Single Language index 1 và 3:
Dism /Delete-Image /ImageFile:c:\sources\install.wim /Index:1 /CheckIntegrity
Dism /Delete-Image /ImageFile:c:\sources\install.wim /Index:3 /CheckIntegrity
Tham số /CheckIntegrity cho phép hoàn tác thao tác sửa WIM nếu DISM phát hiện hư hỏng cấu trúc image.
Hoặc xóa phiên bản theo tên:
Dism /Delete-Image /ImageFile:c:\sources\install.wim /Name:"Windows 10 Education" /CheckIntegrity
Cũng xóa phiên bản không cần từ image cài Windows 10 dùng PowerShell:
Remove-WindowsImage -ImagePath "c:\sources\install.wim" -Index 2 –CheckIntegrity
Gỡ bỏ UWP app tích hợp sẵn khỏi image cài Windows 10
Bạn có thể xóa tất cả app UWP (Microsoft Store) provisioned từ image cài Windows 10. Hữu ích cài Windows nhanh hơn và tiết kiệm dung lượng ổ. Cũng loại bỏ widget không muốn, giúp user dễ hiểu OS.
Chỉ cách gỡ UWP built-in từ install.wim dùng DISM hoặc PowerShell.
Tạo thư mục ổ: C:\mount. Mount image cài Windows (WIM) vào thư mục:
dism.exe /mount-wim /wimfile:c:\iso\install.wim /mountdir:c:\mount /index:1
Lưu ý dùng /index:1, vì đã xóa phiên bản Windows không cần như trên. Bạn chỉ định index image cần.
Sau mount WIM, hiển thị danh sách gói app Microsoft Store provisioned. Dùng định dạng file text tiện xem output:
Dism.exe /image:c:\mount /Get-ProvisionedAppxPackages > c:\ps\apps.txt
Thông tin mỗi app dạng:
DisplayName : Microsoft.BingWeather Version : 4.25.20211.0 Architecture : neutral ResourceId : ~ PackageName : Microsoft.BingWeather_4.25.20211.0_neutral_~_8wekyb3d8bbwe
Bây giờ phần thú vị: xóa app không cần. Rất tiếc, app như Edge, Cortana, Contact Support và một số khác không xóa được (nhưng vô hiệu hóa bằng GPO). Khuyên giữ calculator (Microsoft.WindowsCalculator), photo viewer (Microsoft.Windows.Photos), Microsoft.VP9VideoExtensions, vì build mới Windows 10 không có phiên bản desktop cổ điển cho app này. Cũng đừng xóa Microsoft.WindowsStore, vì khó khôi phục nếu cần sau.
Xóa app từng cái hoặc tất cả. Để xóa modern app từ image đã mount, chỉ định tên (PackageName). Xóa app BingWeather:
dism.exe /image:c:\mount /Remove-ProvisionedAppxPackage /PackageName:Microsoft.BingWeather_4.25.20211.0_neutral_~_8wekyb3d8bbwe
Tương tự xóa tất cả built-in app không cần.
Khi xong, unmount image và lưu thay đổi (xem dưới).
Cũng gỡ app preinstalled từ image cài Windows 10 dùng script PowerShell sẵn từ TechNet Gallery: https://gallery.technet.microsoft.com/Removing-Built-in-apps-65dc387b.
Ưu điểm: không mount wim thủ công. Chỉ chỉ định đường dẫn .wim và chạy script PowerShell. Tuy nhiên, nếu lỗi, khó tìm nguyên nhân dù liên quan DISM hay script.
Mở PowerShell admin chạy:
.\removeapps.ps1 -pathtowim c:\Windows10\sources\install.wim -selectapps $true
Mỗi app hiển thị dòng riêng, chọn xóa (Y) hoặc giữ (N).
Sau chọn hành động cho tất cả app, script xóa app không cần. Khác DISM, không cần lưu thay đổi .wim — script tự lưu.
Nếu muốn xóa tất cả app, bỏ tham số selectapps $true cuối lệnh. Sẽ xóa tất cả app có thể xóa.
Khi làm việc PowerShell, có thể lỗi do chính sách execution policy không cho chạy script PS1.
Sửa bằng lệnh PowerShell đổi Execution policy:
Set-ExecutionPolicy -ExecutionPolicy Unrestricted
Cho phép script PS1 chạy.
Vô hiệu hóa hoặc xóa Capabilities & Features từ image cài Windows 10
Dùng DISM xóa (hoặc cài) tính năng nhất định từ image cài Windows 10.
Lấy danh sách thành phần preinstalled trong image Windows 10 đã mount dùng DISM:
Dism.exe /image:c:\mount /Get-Capabilities
Thành phần có thể installed hoặc disabled (Not Present).
Cũng hiển thị danh sách tất cả thành phần Windows trong image dùng PowerShell (ví dụ chỉ hiển thị thành phần installed):
Get-WindowsCapability -Path c:\mount|?{$_.State -eq "Installed"}
Windows 10 1909 có thành phần preinstalled:
App.Support.QuickAssist~~~~0.0.1.0 Browser.InternetExplorer~~~~0.0.11.0 Hello.Face.18330~~~~0.0.1.0 Hello.Face.Migration.18330~~~~0.0.1.0 Language.Basic~~~en-US~0.0.1.0 Language.Handwriting~~~en-US~0.0.1.0 Language.OCR~~~en-US~0.0.1.0 MathRecognizer~~~~0.0.1.0 Media.WindowsMediaPlayer~~~~0.0.12.0 OneCoreUAP.OneSync~~~~0.0.1.0 OpenSSH.Client~~~~0.0.1.0
Xóa thành phần installed theo tên. Xóa thành phần nhận diện khuôn mặt Hello.Face:
Dism.exe /image:c:\mount/Remove-Capability /CapabilityName:Hello.Face.18330~~~~0.0.1.0
Cũng bật một số capability trong image. Ví dụ cài tất cả công cụ RSAT admin:
Get-WindowsCapability -Path c:\mount |? {$_.Name -like "*RSAT*" -and $_.State -eq "NotPresent"} | Add-WindowsCapability -Path c:\mount
Tương tự bật/tắt thành phần khác. Ví dụ bật .NET 3.5 và tắt SMB1:
dism.exe /image:C:\mount /enable-feature /featurename:netfx3 /all /source:E:\sources\sxs
dism.exe /image:C:\mount /disable-feature /featurename:smb1protocol
Tương tự tích hợp driver hoặc bản cập nhật bảo mật mới vào image cài Windows 10.
Tối ưu hóa image cài Windows 10 WIM
Sau thay đổi image cài Windows 10, tối ưu và dọn dẹp dùng tham số /cleanup-image.
Xóa phiên bản thành phần trước dùng /ResetBase:
Dism /Image:C:\Mount /cleanup-image /StartComponentCleanup /ResetBase
Kiểm tra lỗi image dùng Dism /ScanHealth.
DISM /Image:C:\Mount /Cleanup-Image /ScanHealth
Còn unmount image và lưu thay đổi vào WIM:
dism.exe /unmount-wim /mountdir:c:\mount /commit
Nếu đổi ý, dùng /discard thay /commit hủy thay đổi.
Để tiết kiệm dung lượng, nén thêm install.wim thành install.esd:
Dism /Export-Image /SourceImageFile:c:\iso\install.wim /SourceIndex:1 /DestinationImageFile:c:\iso\install.esd /Compress:recovery
Sau đó copy install.wim (install.esd) lên media cài Windows. Chỉ copy file .wim, không cập nhật file khác.
Tạo ISO từ file cài, dùng chương trình miễn phí portable Folder2ISO hoặc chương trình tương tự.