ค้นหาเว็บไซต์

วิธีลบแอพ Windows 10 ด้วย PowerShell


Windows 10 มีแอปที่มาพร้อมเครื่องมากมาย ตั้งแต่แอปพื้นฐาน เช่น เครื่องคิดเลขและสภาพอากาศ ไปจนถึงแอปที่เน้นงานอื่นๆ เช่น เมลและรูปภาพ แม้ว่าแอปที่มาพร้อมเครื่องเหล่านี้จะใช้ได้ดีในสถานการณ์ส่วนใหญ่ แต่ในสภาพแวดล้อมทางธุรกิจ แอปเหล่านั้นอาจไม่เหมาะสม ซ้ำซ้อน หรือไม่ได้รับการสนับสนุน บ่อยครั้งที่แอปเหล่านี้ก่อให้เกิดความเสี่ยงด้านความปลอดภัย ด้วยเหตุนี้ในโพสต์นี้ คุณจะได้เรียนรู้วิธีลบแอป Windows 10 ด้วย PowerShell

ปัญหาคือ Microsoft ไม่ได้ทำให้การถอนการติดตั้งแอปเหล่านี้บางแอปเป็นเรื่องง่าย ไม่มีปุ่มถอนการติดตั้งเมื่อถอนการติดตั้งโดยใช้วิธีการปกติ ต้องถอนการติดตั้งแอปที่มาพร้อมเครื่องผ่าน PowerShell

ข้อจำกัดความรับผิดชอบ: อย่าถอนการติดตั้งแอป Windows 10 ทั้งหมด หลายอย่างจำเป็นสำหรับ "ประสบการณ์" ของ Windows 10 และอื่น ๆ เช่น .NET Framework จำเป็นสำหรับโปรแกรมอื่น ๆ พิถีพิถันเกี่ยวกับแอปพลิเคชันที่จะถอนการติดตั้ง อย่างไรก็ตาม คุณสามารถติดตั้งแอปพลิเคชันทั้งหมดใหม่ได้ และคุณจะเห็นคำสั่ง PowerShell ในส่วนท้ายของบทความนี้

ค้นหาแอพ Windows 10 ด้วย PowerShell

จริงๆ แล้วมีแอปพลิเคชันสองประเภทที่แตกต่างกันที่เราจะใช้งาน

  • แพ็คเกจ AppX - แอปพลิเคชันที่ติดตั้งพร้อมกับระบบปฏิบัติการ
  • แพ็คเกจที่จัดเตรียมโดย AppX - แอปพลิเคชันที่ติดตั้งเป็นส่วนหนึ่งของโปรไฟล์ผู้ใช้ในการตั้งค่าครั้งแรก

ขั้นตอนแรกคือการรับรายการแอพที่ติดตั้ง ในการทำเช่นนั้น ให้เริ่ม PowerShell ด้วยสิทธิ์ระดับสูง และเรียกใช้คำสั่ง Get-AppxPackage นี่จะส่งคืนแพ็คเกจ AppX ทั้งหมดที่ติดตั้งบน Windows 10

PS C:\> Get-AppxPackage

Name              : Microsoft.NET.Native.Framework.1.6
Publisher         : CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US
Architecture      : X64
ResourceId        :
Version           : 1.6.24903.0
PackageFullName   : Microsoft.NET.Native.Framework.1.6_1.6.24903.0_x64__8wekyb3d8bbwe
InstallLocation   : C:\Program Files\WindowsApps\Microsoft.NET.Native.Framework.1.6_1.6.24903.0_x64__8wekyb3d8bbwe
IsFramework       : True
PackageFamilyName : Microsoft.NET.Native.Framework.1.6_8wekyb3d8bbwe
PublisherId       : 8wekyb3d8bbwe
IsResourcePackage : False
IsBundle          : False
IsDevelopmentMode : False
IsPartiallyStaged : False
SignatureKind     : Store
Status            : Ok
--snip--

แพ็คเกจที่จัดเตรียมไว้มีคำสั่งที่แตกต่างกันเล็กน้อยและจำเป็นต้องมีพารามิเตอร์ Online พารามิเตอร์ Online จะดึงแพ็กเกจจากระบบปฏิบัติการออนไลน์ปัจจุบัน ซึ่งตรงข้ามกับไฟล์รูปภาพที่อยู่ในไดเร็กทอรีในเครื่อง นี่จะแสดงรายการรายละเอียดทั้งหมดเกี่ยวกับแต่ละแพ็คเกจ

PS C:\> Get-AppxProvisionedPackage -Online


DisplayName  : Microsoft.3DBuilder
Version      : 16.1.1431.0
Architecture : neutral
ResourceId   : ~
PackageName  : Microsoft.3DBuilder_16.1.1431.0_neutral_~_8wekyb3d8bbwe
Regions      :

DisplayName  : Microsoft.BingWeather
Version      : 4.31.11905.0
Architecture : neutral
ResourceId   : ~
PackageName  : Microsoft.BingWeather_4.31.11905.0_neutral_~_8wekyb3d8bbwe
Regions      :
--snip--

การจำกัดรายการแอปให้แคบลง

คำสั่งทั้งสองนี้สร้างรายการที่ค่อนข้างละเอียด และสิ่งที่คุณสนใจคือ ชื่อของแพ็คเกจสำหรับแพ็คเกจ Appx และ DisplayName สำหรับแพ็คเกจที่จัดเตรียมไว้ดังที่แสดงด้านล่าง

เพื่อให้ง่ายขึ้นอีกเล็กน้อย ให้ไพพ์ผลลัพธ์ผ่าน Select-Object และเลือกคุณสมบัติ Name และ DisplayName นี่จะให้รายการเหมือนกับรายการด้านล่าง รายการนี้ง่ายต่อการใช้งาน

Get-AppxPackage | Select-Object Name

ตอนนี้คุณสามารถดูว่าแอป Windows 10 ใดที่คุณต้องการลบ ณ จุดนี้ คุณจะต้องแสดงรายการชื่อแพ็คเกจทั้งหมดที่คุณต้องการลบ วิธีหนึ่งในการทำเช่นนั้นคือการคัดลอกและวางแอป Windows 10 ที่คุณสนใจที่จะลบและสร้างรายการในลักษณะนั้น เคล็ดลับอย่างหนึ่งที่ฉันใช้คือบันทึกผลลัพธ์ลงในไฟล์ข้อความ จากนั้นเปิดไฟล์นั้นใน Visual Studio Code ตัวอย่างเช่น:

Get-AppxPackage | Select-object name | Out-File apps.txt | code apps.txt

ในโปรแกรมแก้ไขภายนอกของคุณ ให้เริ่มสร้างอาร์เรย์ของแอปที่จะลบออก

$ProvisionedAppPackageNames = @()

เมื่อคุณมีรายการแล้ว คุณสามารถเริ่มสร้างสคริปต์ PowerShell ได้เลย

การลบแอพ Windows 10 ด้วย PowerShell

ตอนนี้คุณควรกำหนดอาร์เรย์ไว้ในโปรแกรมแก้ไขของคุณซึ่งมีชื่อของแพ็คเกจ AppX ทั้งหมดที่คุณต้องการลบออก ฉันได้ตัวอย่างด้านล่าง

$ProvisionedAppPackageNames = @(
    "Microsoft.BingFinance"
    "Microsoft.BingNews"
    "Microsoft.BingSports"
    "Microsoft.BingWeather"
    "Microsoft.MicrosoftOfficeHub"
    "Microsoft.Getstarted"
    "microsoft.windowscommunicationsapps" # Mail,Calendar
    "Microsoft.Office.OneNote"
    "Microsoft.People"
    "Microsoft.SkypeApp"
    "Microsoft.XboxApp"
    "Microsoft.ZuneMusic"
    "Microsoft.ZuneVideo"
)

ด้วยอาร์เรย์ที่เต็มไปด้วยแอปพลิเคชันเฉพาะที่จะถูกลบ ตอนนี้คุณสามารถตั้งค่า foreach loop เพื่อดำเนินการแต่ละแพ็คเกจเพื่อถอนการติดตั้งโดยใช้ Remove-AppXProvisionedPackage cmdlet และ Remove-AppXPackage รหัส> cmdlet.

foreach ($ProvisionedAppName in $ProvisionedAppPackageNames) {
    Get-AppxPackage -Name $ProvisionedAppName -AllUsers | Remove-AppxPackage
    Get-AppXProvisionedPackage -Online | Where-Object DisplayName -EQ $ProvisionedAppName | Remove-AppxProvisionedPackage -Online
}

หากคุณต้องการติดตั้งแอปพลิเคชันทั้งหมดใหม่ไม่ว่าด้วยเหตุผลใดก็ตาม คุณสามารถใช้ add-AppXPackage cmdlet เพื่อลงทะเบียนแอป Windows 10 อีกครั้งโดยระบุเป็นไฟล์ XML รายการแอปพลิเคชันดังที่แสดงด้านล่าง

Get-AppxPackage -AllUsers | Foreach {
    Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"
}

สรุป

แม้ว่า Microsoft จะไม่ทำให้การถอนการติดตั้งแอป Windows 10 เป็นเรื่องง่าย แต่คุณจะเห็นว่าคุณมี PowerShell อยู่เสมอ!

บทความที่เกี่ยวข้อง