Hướng dẫn tạo powershell script gỡ bỏ hoặc thêm lại ứng dụng mặc định trong Windows 10

Ứng dụng trong Windows 10 được chia ra làm hai nhóm trong đó nhóm một gồm những ứng dụng được tải về từ Store được lưu trong thư mục WindowsApps theo đường dẫn C:\Program Files và có thể gỡ bỏ. Nhóm hai là những ứng dụng hệ thống được lưu chủ yếu trong thư mục SystemApps theo đường dẫn C:\Windows và có một số ứng dụng được lưu ngay trong thư mục Windows, nhóm ứng dụng này được bảo vệ không cho phép gỡ bỏ.

Tham khảo thêm: Danh sách ứng dụng mặc định trong Windows 10, version 1809

Như vậy nếu bạn muốn gỡ bỏ ứng dụng nào thuộc nhóm ứng dụng hệ thống trước hết bạn cần loại bỏ sự bảo vệ của ứng dụng và sau khi loại bỏ chúng ta sẽ dễ dàng gỡ bỏ bất kỳ ứng dụng nào bằng powershell script.

Phần 1: Tạo PowerShell Script

1. Tạo powershell script gỡ bỏ ứng dụng Remove-AppxPackage.ps1

Soạn nội dung bên dưới vào notepad và lưu lại với tên ví dụ Remove-AppxPackage.ps1 định dạng All files và Econding-ANSI

Copy
If (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]"Administrator")) {
    Start-Process powershell.exe "-NoProfile -ExecutionPolicy Bypass -File `"$PSCommandPath`" $args" -Verb RunAs
    Exit
}
Function Main-menu() {
  $index=1
  $apps=Get-AppxPackage -AllUsers
  Write-Host "ID`t App name"
  echo ""
  foreach ($app in $apps) {
    Write-Host " $index`t $($app.name)"
    $index++
  }
  if ($apps) {
    $index++
  } else {
    Write-Host "Apps not found"
    echo ""
    pause
    exit
  }
  Do {
    echo ""
    $IDs=Read-Host -Prompt "For remove each app please select ID and press enter"
  }
  While($IDs -eq "")
  try {
    [int[]]$IDs=$IDs -split ","
  } catch {
    Write-Host "Error:" $_.Exception.Message
  }
  foreach ($ID in $IDs) {
    if ($ID -ge 1 -and $ID -le $apps.count) {
        $ID--
        $AppName=$apps[$ID].packagefullname
        Remove-AppxPackage -Package $AppName
    } else {
        echo ""
        Write-warning -Message "wrong ID"
        echo ""
        pause
    }
  }
}
Main-menu

Trường hợp nếu bạn chỉ muốn gỡ bỏ ứng dụng thuộc nhóm StoreApps bạn thay

Get-AppxPackage -AllUsers

thành

Get-AppxPackage -PackageTypeFilter Bundle -AllUser

Khi tạo xong chuột phải tập tin script vừa tạo chọn Run with Powershell


Nếu muốn gỡ bỏ ứng dụng nào chọn ID của ứng dụng nhấn Enter ví dụ như 64


Trường hợp nếu chọn ID không có trong danh sách ứng dụng sẽ đưa ra cảnh báo sai ID, khi đó nhấn Enter để tiếp tục.

2. Tạo powershell script thêm lại ứng dụng Add-AppxPackage.ps1

Soạn nội dung bên dưới vào notepad và lưu lại với tên ví dụ Add-AppxPackage.ps1 định dạng All files và Econding-ANSI

Copy
If (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]"Administrator")) {
    Start-Process powershell.exe "-NoProfile -ExecutionPolicy Bypass -File `"$PSCommandPath`" $args" -Verb RunAs
    Exit
}
Function Main-menu() {
  $index=1
  $apps=Get-AppxPackage -AllUsers
  Write-Host "ID`t App name"
  Write-Host ""
  foreach ($app in $apps) {
    Write-Host " $index`t $($app.name)"
    $index++
  }
  if ($apps) {
    $index++
    Write-Host ""
  } else {
    Write-Host "Apps not found"
    Write-Host ""
    pause
  }
  Do {
    Write-Host ""
    $IDs=Read-Host -Prompt "For add each app please select ID and press enter"
  }
  While($IDs -eq "")
  try {
    [int[]]$IDs=$IDs -split ","
  } catch {
    Write-Host "Error:" $_.Exception.Message
  }
  foreach ($ID in $IDs) {
    if ($ID -ge 1 -and $ID -le $apps.count) {
        $ID--
        $AppName=$apps[$ID].name
        Get-AppxPackage -AllUsers $AppName | Foreach {Add-AppxPackage -Register "$($_.InstallLocation)\appxmanifest.xml" -DisableDevelopmentMode}
    } else {
        echo ""
        Write-warning -Message "wrong ID"
        echo ""
        pause
    }
  }
}
Main-menu

Trường hợp nếu bạn chỉ muốn gỡ bỏ ứng dụng thuộc nhóm StoreApps bạn thay

Get-AppxPackage -AllUsers

thành

Get-AppxPackage -PackageTypeFilter Bundle

Khi tạo xong chuột phải tập tin script vừa tạo chọn Run with Powershell


Nếu muốn thêm lại ứng dụng nào chọn ID của ứng dụng nhấn Enter ví dụ như 23


Trường hợp nếu chọn ID không có trong danh sách ứng dụng sẽ đưa ra cảnh báo sai ID, khi đó nhấn Enter để tiếp tục.


Phần 2. Loại bỏ sự bảo vệ ứng dụng hệ thống

Để loại bỏ sự bảo vệ ứng dụng hệ thống của Windows. Chúng ta cần sự trợ giúp của phần mềm có tên DB.Browser.for.SQLite, phần mềm này có rất nhiều chức năng và một trong số đó cho phép gỡ bảo vệ ứng dụng hệ thống. Tải và cài đặt phần mềm theo liên kết: https://yadi.sk/d/AftaIv-r3JRWdM

Bước 1: Bật chế độ xem file ẩn để thấy thư mục ProgramData trong phân vùng hệ thống.


Bước 2: Cài đặt TakeOwnership


Bước 3: Truy cập đường dẫn C:\ProgramData\Microsoft\Windows chuột phải vào thư mục AppRepository chọn Take Ownership


Bước 4: Khi Take Ownership thư mục xong truy cập thư mục tìm đến file có tên StateRepository-Machine.srd bạn copy file này lưu ở thư mục khác mục đích là sao lưu file này phòng trường hợp file bị hỏng có thay thế kịp thời.


Bước 5: Chạy phần mềm DB.Browser.for.SQLite, tại giao diện chính nhấn vào tab Open Database tìm đến đường dẫn C:\ProgramData\Microsoft\Windows\AppRepository và dưới khung File name gõ chữ s mở file StateRepository-Machine.srd.


Bước 6: Khi mở xong chuyễn qua tab Browse Data trong khung Table chọn Package


Bước 7: Trong Package có nhiều cột nhưng chúng ta chỉ cần quan tâm đến hai cột PackageFullNameIsInbox. Kéo rộng cột PackageFullName ra để ý bên phải cột IsInbox quan sát bạn có thể thấy chỉ có hai giá trị 0 (không bảo vệ) và 1 (được bảo vệ).



Bước 8: Trong cột IsInbox sửa hết giá trị của PackageFullName từ 1 sang 0 sau đó bấm tổ hợp phím Ctrl+S lưu lại xong tắt phần mềm đi.


Đến bước này coi như đã xong, ứng dụng hệ thống không còn được bảo vệ bây giờ bạn có thể sử dụng tệp powershell script để gỡ bỏ ứng dụng hệ thống

QUAN TRỌNG: Những ứng dụng hệ thống sau khi đã gỡ bỏ nếu thêm lại thì ứng dụng sẽ mặc định được bảo vệ lại có giá trị IsInbox bằng 1 khi đó nếu muốn gỡ bỏ lại ứng dụng này bạn cần chạy lại phần mềm DB.Browser.for.SQLite sửa giá trị của ứng dụng về lại 0.
Bài đăng mới hơn Bài đăng cũ hơn
Bài viết này có hữu ích không?