Hướng dẫn tháo gói package hệ thống của Windows 10 offline bằng batch file

Các bài viết thuộc chuyên mục batch file mình có viết hướng dẫn tạo batch file gỡ bỏ gói package hệ thống của Windows 10 nhưng là gỡ trực tiếp trong Windows 10 đã cài trên máy tính hay còn gọi gỡ online. Hôm nay mình tiếp tục hướng dẫn các bạn cách tạo tập tin batch gỡ gói package hệ thống nhưng gỡ offline tức là gỡ trong bộ cài Windows 10 trước khi cài đặt lên máy.

Gói package hệ thống là gói cài đặt của ứng dụng hệ thống ví dụ như ứng dụng Windows Defender, OneDrive...hoặc tính năng hệ thống như Hyper-V,  Media Features...trong Windows 10. Vì sao phải tháo gói package này? Vì đơn giản vì bạn không thích sử dụng gỡ ra cho nhẹ hay những bạn đang muốn xây dựng lại bộ cài hay ghost Windows 10 rút gọn.


Mỗi ứng dụng hay tính năng hệ thống bao gồm nhiều gói packages nếu phải sử dụng Dism gỡ từng gói sẽ rất mất thời gian thay vì sử dụng batch file trong đó lưu sẵn nội dung bằng những đoạn script thì việc gỡ bỏ thủ công sẽ nhanh hơn rất nhiều.


Các bước thực hành như sau sử dụng bằng lệnh trong Cmd

1. Tạo 2 thư mục sử dụng lưu tệp install.wim và lưu thư mục và tập tin đã mount install.wim

Tạo thư mục x64 lưu tập tin install.wim


md E:\images\x64


Tạo thư mục windows để lưu các thư mục và tập tin khi mount install.wim


md E:\mount\windows


2. Chuột phải vào bộ cài iso Windows 10 chọn Mount ra ổ ảo ví dụ ổ ảo có ký tự ổ đĩa F, khi đó sử dụng lệnh sau xuất phiên bản (index) trong tập tin install.wim gốc lưu thành tập tin install.wim mới lưu vào thư mục x64


Dism /Export-Image /SourceImageFile:F:\sources\install.wim /SourceIndex:8 /DestinationImageFile:E:\images\x64\install.wim


3. Mount tập tin install.wim trong thư mục x64 vào thư mục windows


Dism /Mount-Image /ImageFile:E:\images\x64\install.wim /Index:1 /MountDir:E:\mount\windows


4. Load tập tin SOFTWARE vào registry để chỉnh sửa, tập tin này nằm trong đường dẫn E:\mount\windows\windows\syetm32\config


reg load HKLM\wimsoftware E:\mount\windows\windows\system32\config\SOFTWARE


5. Cấp quyền cho khóa packages theo đường dẫn sau:


Computer\HKEY_LOCAL_MACHINE\wimsoftware\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages


Chuột phải chọn Permissions...



6. Tạo tập tin bacth với nội dung tìm các giá trị liên quan đến tên gói package của ứng dụng hoặc tính năng ví dụ muốn gỡ ứng dụng Connect thì tìm tên khóa con của khóa Packages trong Registry có tên PPIProjection mục đích của tập tin batch sẽ áp dụng lệnh xóa khóa con Owners của các khóa có tên PPIProjection thay giá trị Visibility bên phải của khóa từ 2 thành 1. Tập tin batch sẽ có nội dung như sau:


@echo off

set key=HKLM\wimsoftware\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages

for /f "tokens=*" %%a in ('reg query "%key%" ^| findstr /c:PPIProjection ') do (

reg delete "%%a\Owners" /f

reg add "%%a" /v "Visibility" /t REG_DWORD /d 1 /f

)

pause


Lưu lại với tên ví dụ reg-query.cmd định dạng All files và Encoding ANSI. Trong trường hợp nếu muốn tháo gói package của ứng dụng hay tính năng khác thì tiếp tục thêm nội dung tương tự trong tập tin batch chỉ cần thay tên của gói package vừa tạo ví dụ như muốn gỡ bỏ tính năng Hyper-V thì thêm tiếp đoạn script như sau:


set key=HKLM\wimsoftware\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages

for /f "tokens=*" %%a in ('reg query "%key%" ^| findstr /c:PPIProjection ') do (

reg delete "%%a\Owners" /f

reg add "%%a" /v "Visibility" /t REG_DWORD /d 1 /f

)

for /f "tokens=*" %%a in ('reg query "%key%" ^| findstr /c:Hyper ') do (

reg delete "%%a\Owners" /f

reg add "%%a" /v "Visibility" /t REG_DWORD /d 1 /f

)

pause


Cứ như vậy bạn có thể thêm các đoạn script nếu muốn tháo gói package khác. Khi tạo xong bạn chạy tập tin batch bằng quyền administrator, chạy xong thì unload lại tập tin SOFTWARE, sử dụng lệnh sau trong Cmd


reg unload HKLM\wimsoftware


7. Tạo tập tin batch tháo gói package có nội dung như sau:


@echo off

for /f "tokens=4" %%a in ('dism /Image:E:\mount\windows /get-packages ^| findstr /c:PPIProjection ') do (

dism /Image:E:\mount\windows /remove-package /packagename:"%%a" /norestart

)

pause


Trong trường hợp muốn tháo gói package khác ví dụ như tính năng Hyper-V thêm tiếp đoạn script


@echo off

for /f "tokens=4" %%a in ('dism /Image:E:\mount\windows /get-packages ^| findstr /c:PPIProjection ') do (

dism /Image:E:\mount\windows /remove-package /packagename:"%%a" /norestart

)

for /f "tokens=4" %%a in ('dism /Image:E:\mount\windows /get-packages ^| findstr /c:Hyper ') do (

dism /Image:E:\mount\windows /remove-package /packagename:"%%a" /norestart

)

pause


Lưu tập tin bacth với tên ví dụ remove-apps.cmd xong chạy tập tin batch bằng quyền administrator đợi đến khi tháo xong gói package thì mới tắt

8. Kiểm tra các gói packages của hệ thống sử dụng lệnh sau


Dism /Image:E:\mount\windows /Get-Packages | findstr "Package Identity"


9. Trong trường hợp muốn tháo gói package khác ví dụ như Quick Assist sử dụng lệnh sau ví dụ:


Dism /Image:E:\mount\windows /Remove-Package /Packagename:Microsoft-Windows-QuickAssist-Package~31bf3856ad364e35~amd64~~10.0.16299.15


10. Unmount tập tin install.wim


Dism /Unmount-Image /MountDir:E:\mount\windows /Commit


Các bạn có thể tham khảo các bài viết trong chuyên mục batch file, powershell script, rebuild để tìm hiểu rõ hơn.

Baca juga

Đăng nhận xét