ถอนการติดตั้งโปรแกรมด้วย 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-AppxProvisionedPackagePowerShell 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





