Hướng dẫn tạo batch file gỡ bỏ gói cài đặt của ứng dụng mặc định thuộc nhóm Windows Store

Hướng dẫn tạo batch file gỡ bỏ gói cài đặt của ứng dụng mặc định thuộc nhóm Windows Store

ProvisionedAppxPackage là gói cài đặt ứng dụng mặc định thuộc nhóm Store được lưu trong thư mục ẩn WindowsApps theo đường dẫn C:\Program Files. Tương tự như phần mềm dạng setup, ứng dụng có thể cài lại được bằng PowerShell nếu gói cài đặt của ứng dụng chưa bị gỡ bỏ. Trong trường hợp sau khi đã gỡ bỏ ứng dụng mà không muốn cài lại ứng dụng bằng PowerShell chúng ta có thể chọn gỡ bỏ luôn gói cài đặt của ứng dụng đi, hoặc trong trường hợp nếu bạn muốn tạo tài khoản người dùng mới mà không muốn hệ thống tự động cài ứng dụng cho tài khoản này bạn cũng có thể gỡ bỏ gói cài đặt ứng dụng trước khi tạo tài khoản mới.

LƯU Ý: Việc gỡ bỏ gói cài đặt của ứng dụng mặc định không ảnh hưởng đến ứng dụng đã được cài đặt. Trong trường hợp ứng dụng đã gỡ bỏ từ trước nếu muốn cài lại thì vào Store tải lại ứng dụng.

Việc gỡ bỏ gói cài đặt của ứng dụng dựa vào tên PackageName của ứng dụng đó và để đi tìm gói cài đặt chúng ta sẽ sử dụng lệnh sau:

Dism /Online /Get-ProvisionedAppxPackages | findstr PackageName

Khi tìm được PackageName của ứng dụng thì lệnh gỡ bỏ gói cài đặt ứng dụng sẽ là:

Dism /Online /Remove-ProvisionedAppxPackage /PackageName:"PackageName"

Trong đó "PackageName" là tên gói cài đặt của ứng dụng muốn gỡ, ví dụ để gỡ bỏ gói cài đặt của ứng dụng 3D Builder chúng ta sẽ sử dụng lệnh sau:

Dism /Online /Remove-ProvisionedAppxPackage /PackageName:Microsoft.3DBuilder_13.0.10349.0_neutral_~_8wekyb3d8bbwe

Bây giờ để tiết kiệm thời gian và dễ thao tác chúng ta sẽ sử dụng batch file và khi cần gỡ bỏ gói ứng dụng nào chỉ cần copy và paste tên gói nhấn enter là xong. Tập tin batch sẽ có nội dung như sau:

@echo off
:remove-provisionedappxpackage
cls
echo.PackageName
echo.
for /f "tokens=3" %%a in ('Dism /Online /Get-ProvisionedAppxPackages ^| findstr PackageName ') do (
echo.%%a
)
echo.
set /p PackageName=Copy and paste PackageName and press Enter :
if [%PackageName%]==[] goto remove-provisionedappxpackage
echo.
Dism /Online /Remove-ProvisionedAppxPackage /PackageName:%PackageName%
echo.
choice /c YN /n /m "Do you want to continue remove-provisionedappxpackage ? (Yes/No) "
if %errorlevel% EQU 1 goto remove-provisionedappxpackage
if %errorlevel% EQU 2 exit

Lưu lại với tên ví dụ Remove-ProvisionedAppxPackage.cmd hoặc Remove-ProvisionedAppxPackage.bat định dạng All Files và Encoding:ANSI. Khi chạy batch file bằng quyền Adminstrator sẽ cho hình minh họa dưới đây:


Như vậy khi cần gỡ bỏ gói ứng dụng nào chỉ cần copy gói PackageName của ứng dụng nhấn enter là xong. Tập tin batch này cũng bao gồm lệnh xem danh sách gói cài đặt ứng dụng, như vậy khi bạn đã gỡ bỏ gói ứng dụng nào thì gói PackageName sẽ không còn trong danh sách.

Trường hợp bạn muốn thêm vào nội dung tìm kiếm gói ứng dụng trước khi gỡ bỏ bạn có thể thêm thẻ điều kiện IF với nội dung nếu tìm thấy thì sẽ gỡ bỏ còn không sẽ thông báo ứng dụng không được tìm thấy. Có hai cách:

Cách 1: Thêm lệnh Dism /Online /Get-ProvisionedAppxPackages | findstr PackageName

Dism /Online /Get-ProvisionedAppxPackages | findstr PackageName
if %errorlevel% EQU 0 goto :remove-provisionedappxpackage
if %errorlevel% EQU 1 goto not-found

Cách 2: Dựa vào khóa registry của ứng dụng theo đường dẫn sau:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Appx\AppxAllUserStore\Applications


Bên dưới khóa Applications là tên những khóa của gói PackageName, chúng ta sẽ sử dụng reg query tìm kiếm những khóa này với cú pháp như sau:

set key=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Appx\AppxAllUserStore\Applications
reg query %key% | findstr "Microsoft"
if %errorlevel% EQU 0 goto remove-provisionedappxpackage
if %errorlevel% EQU 1 goto not-found

Như vậy chúng ta có thể tạo lại tập tin batch với nội dung đầy đủ như sau:

@echo off
set key=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Appx\AppxAllUserStore\Applications
reg query %key% | findstr "Microsoft"
if %errorlevel% EQU 0 goto remove-provisionedappxpackage
if %errorlevel% EQU 1 goto not-found

:remove-provisionedappxpackage
cls
echo.PackageName
echo.
for /f "tokens=3" %%a in ('Dism /Online /Get-ProvisionedAppxPackages ^| findstr PackageName ') do (
echo.%%a
)
echo.
set /p PackageName=Copy and paste PackageName and press Enter :
if [%PackageName%]==[] goto remove-provisionedappxpackage
echo.
Dism /Online /Remove-ProvisionedAppxPackage /PackageName:%PackageName%
echo.
choice /c YN /n /m "Do you want to continue remove-provisionedappxpackage ? (Yes/No) "
if %errorlevel% EQU 1 goto remove-provisionedappxpackage
if %errorlevel% EQU 2 exit

:not-found
echo.Applications Not Found.
set /p="Press any key to exit . . . "<nul
pause >nul
exit

Trong trường hợp nếu bạn muốn gỡ bỏ tất cả gói cài đặt ứng dụng bạn có thể tạo batch file với nội dung sau:

@echo off
set key=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Appx\AppxAllUserStore\Applications
reg query %key% | findstr "Microsoft"
if %errorlevel% EQU 0 goto remove-provisionedappxpackage
if %errorlevel% EQU 1 goto not-found

:remove-provisionedappxpackage
for /f "tokens=3" %%a in ('Dism /Online /Get-ProvisionedAppxPackages ^| findstr PackageName ') do (
Dism /Online /Remove-ProvisionedAppxPackage /PackageName:%%a
)
echo.
set /p="Press any key to exit . . . "<nul
pause >nul
exit

:not-found
echo.Applications Not Found.
set /p="Press any key to exit . . . "<nul
pause >nul
exit

Trên đây tôi đã vừa hướng dẫn bạn cách gỡ bỏ gói cài đặt của những ứng dụng mặc định thuộc nhóm Store bằng batch file. Hi vọng bài viết có ích với bạn.