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

ถอนการติดตั้งโปรแกรมด้วย PowerShell ใน Windows 10/11


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

การใช้ WMI เพื่อถอนการติดตั้งโปรแกรมใน Windows

วิธีทั่วไปในการลบโปรแกรมที่ติดตั้งบน Windows คือการใช้คำสั่งที่อ้างถึงเนมสเปซ WMI ตัวอย่างเช่น คุณสามารถค้นหาเนมสเปซ WMI และรับรายการโปรแกรมที่ติดตั้งด้วยคำสั่ง wmic

wmic product get name,version

หากต้องการถอนการติดตั้งแอปพลิเคชันอย่างเงียบ ๆ จากรายการนี้ คุณสามารถใช้คำสั่งด้านล่าง:

wmic product where name="VMware vCenter Converter Standalone" call uninstall /nointeractive

คำสั่งเรียกใช้วิธีการถอนการติดตั้งแอป (vCenter Converter) WMI ผ่าน Windows Installer

Executing (\\COMPName\ROOT\CIMV2:Win32_Product.IdentifyingNumber="{PROGRAM_GUID}",Name="VMware vCenter Converter Standalone",Version="6.2.0.8466193")->Uninstall()

หากถอนการติดตั้งโปรแกรมสำเร็จ โปรแกรมจะส่งคืน:

Method execution successful. Out Parameters: instance of __PARAMETERS {
ReturnValue = 0; };

ต่อไปนี้คือคำสั่ง PowerShell ที่คล้ายกันในการแสดงและถอนการติดตั้งแอปผ่าน WMI:

Get-WmiObject Win32_Product | ft name,version,vendor,packagename
(Get-WmiObject Win32_Product -Filter "Name = 'XXX'").Uninstall()

หากต้องการลบโปรแกรมบนคอมพิวเตอร์ระยะไกล ให้เพิ่มตัวเลือก -ComputerName ตัวอย่างเช่น หากต้องการถอนการติดตั้ง Microsoft Office บนคอมพิวเตอร์ระยะไกล ให้เรียกใช้คำสั่งด้านล่าง:


$apps = Get-WmiObject -Class Win32_Product -ComputerName wkmn-man23 |where name -Like "Office 16 Click-to-Run*"
$apps.uninstall()

อย่างไรก็ตาม วิธีการลบแอปพลิเคชันนี้ไม่เป็นสากลเพียงพอสำหรับทุกกรณีที่เป็นไปได้ หากคุณเปรียบเทียบรายการโปรแกรมที่ส่งคืนผ่านเนมสเปซ WMI กับรายการแอปในแผงควบคุม Windows/ รายการแอปและคุณลักษณะในการตั้งค่า (ใช้คำสั่งการเข้าถึงด่วนของการตั้งค่า MS:

ms-settings:appsfeatures

) คุณจะเห็นว่ามันแตกต่างกัน คำสั่ง wmi แสดงเฉพาะรายการโปรแกรมที่ติดตั้งผ่าน Windows Installer รายการนี้ไม่รวมแอปของผู้ใช้ส่วนใหญ่ (เช่น เบราว์เซอร์)

นอกจากนี้ โปรแกรม UWP จาก Microsoft Store และโมดูล PowerShell (ผ่าน PowerShellGet) จะไม่แสดง

ถอนการติดตั้งแอพบนคอมพิวเตอร์ระยะไกลด้วย PowerShell Package Manager Module

ใน Windows 10/11 รุ่นใหม่และ Windows Server 2022/2019/2016 คุณสามารถใช้ cmdlet Package Management ในตัวของ PowerShell เพื่อติดตั้งหรือถอนการติดตั้งแอป เดิมที โมดูลนี้ใช้เพื่อติดตั้ง/ถอนการติดตั้งโมดูล PowerShell อย่างไรก็ตาม คุณสามารถใช้เพื่อถอนการติดตั้งโปรแกรม Win32, การอัปเดต MSU และแอปที่ติดตั้งโดยใช้ตัวติดตั้ง MSI ได้เช่นกัน

หากต้องการแสดงรายการแอพทั้งหมดที่ติดตั้งบนเครื่องคอมพิวเตอร์ ให้เรียกใช้คำสั่งด้านล่าง:

Get-Package

คำสั่งส่งคืนโปรแกรมหลายคลาสที่ติดตั้งผ่านผู้ให้บริการที่แตกต่างกัน (ProviderName) คุณสามารถแสดงรายชื่อผู้ให้บริการบนคอมพิวเตอร์ได้ดังนี้:

Get-PackageProvider
  • Programs
  • Msi
  • Msu
  • PowerShellGet
  • NuGet

หากต้องการแสดงรายการโปรแกรมที่ติดตั้งผ่านผู้ให้บริการเฉพาะ ให้รันคำสั่งนี้:

Get-Package -ProviderName Programs -IncludeWindowsInstaller

ใช้ cmdlet Uninstall-Package เพื่อลบโปรแกรม:

Get-Package -Name "Notepad++*" | Uninstall-Package

คุณสามารถลบโมดูล PowerShell ที่ติดตั้งได้ ตัวอย่างเช่น หากต้องการถอนการติดตั้งโมดูล VMware.PowerCLI ทั้งหมด:

Get-Package -ProviderName PowerShellGet -Name "VMware.*" | Uninstall-Package

หากต้องการถอนการติดตั้งโปรแกรมบนคอมพิวเตอร์ระยะไกล ให้ใช้ Invoke-Command cmdlet:

Invoke-Command -ComputerName mun-dc01 -ScriptBlock { Get-Package -Name "Notepad++*" | Uninstall-Package}

คุณสามารถเปิดใช้งาน WinRM PowerShell Remoting บนคอมพิวเตอร์โดเมนผ่าน GPO

คุณสามารถใช้โมดูลนี้เพื่อถอนการติดตั้งแอป Win32 และโมดูล PS เท่านั้น หากต้องการลบแอป UWP ออกจาก Microsoft Store ให้ใช้

Remove-AppxPackage

หรือ

Remove-AppxProvisionedPackage

PowerShell cmdlets (ดูตัวอย่างในบทความนี้)

จะถอนการติดตั้งแอพด้วย WinGet Command ได้อย่างไร?

คุณสามารถใช้ตัวจัดการแพ็คเกจ WinGet ใหม่ (มีอยู่ใน Windows 10 และ 11) เพื่อติดตั้งและลบโปรแกรมบน Windows ในการรับรายการโปรแกรมบนคอมพิวเตอร์ของคุณ ให้เรียกใช้:

winget list

คำสั่งส่งคืนรายการโปรแกรมรวมถึงโปรแกรมที่ติดตั้งด้วยวิธีอื่นที่ไม่ใช่ Winget และรายการแอป UWP (APPX)

หากต้องการลบแอพที่ติดตั้งผ่าน WinGet ให้รันคำสั่งด้านล่าง:

winget uninstall --name 7zip.7zip

หากต้องการถอนการติดตั้งแอป MSI ใน Windows ให้ระบุ GUID:

winget uninstall --id "{332C1E78-1D2F-4A64-B718-68095DC6254B}"

หากต้องการถอนการติดตั้งแอป UWP:

winget uninstall --id "Microsoft.ZuneVideo_8wekyb3d8bbwe"

อย่างไรก็ตาม Winget ไม่อนุญาตให้คุณถอนการติดตั้งโปรแกรมบนคอมพิวเตอร์ระยะไกล หากต้องการดำเนินการคำสั่ง winget บนคอมพิวเตอร์ระยะไกล ให้ใช้คุณสมบัติ PowerShell Remoting (Invoke-Command และ Enter-PSSession cmdlets) ตัวอย่างเช่น:

Invoke-Command -ComputerName wkmn-man231 -ScriptBlock {winget uninstall --name 7zip.7zip}

คุณสามารถใช้สคริปต์ PowerShell ที่แสดงที่นี่เพื่อถอนการติดตั้งโปรแกรมจากระยะไกลหรือเรียกใช้บนคอมพิวเตอร์โดเมนโดยใช้สคริปต์การเข้าสู่ระบบ SCCM หรือ GPO

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