Nyahpasang program melalui registry atau PowerShell
Setiap program yang dipasang mendaftarkan arahan nyahpasang dalam registry. Apabila Seting → Aplikasi tidak dapat membuang sesuatu program, atau program itu perlu dibuang secara senyap, arahan inilah caranya.
Tempat Windows menyimpan arahan nyahpasang
Program yang dipasang untuk semua pengguna berada di bawah HKLM, program 32-bit pada Windows 64-bit di bawah WOW6432Node, dan program yang dipasang untuk anda sahaja di bawah HKCU. Setiap program mempunyai subkunci dengan DisplayName, DisplayVersion, UninstallString dan selalunya QuietUninstallString.
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\UninstallHKLM\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\UninstallHKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\UninstallSenaraikan program terpasang dengan PowerShell
Arahan ini membaca ketiga-tiga lokasi dan memaparkan nama, versi serta arahan nyahpasang.
$keys = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*", "HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*", "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*"Get-ItemProperty $keys | Where-Object DisplayName | Select-Object DisplayName, DisplayVersion, UninstallString, QuietUninstallString | Sort-Object DisplayNameJalankan arahan nyahpasang
QuietUninstallString, jika ada, membuang program tanpa sebarang soalan. Jika tiada, jalankan UninstallString dan tambah suis senyap mengikut jenis pemasang (/S untuk NSIS, /VERYSILENT untuk Inno Setup). Bagi pakej MSI, nama subkunci ialah ProductCode, dan msiexec /x membuangnya.
msiexec /x {PRODUCT-CODE-GUID} /qn /norestart"C:\Program Files\App\uninstall.exe" /SAtau biarkan winget melakukannya
winget mencari program dalam kunci registry yang sama, termasuk program yang tidak dipasangnya, dan menjalankan penyahpasang program tersebut.
winget listwinget uninstall --name "Nama Aplikasi"Apabila penyahpasang tiada
Jika fail penyahpasang telah dipadam, memasang semula versi yang sama dahulu biasanya membaikinya, dan selepas itu program boleh dibuang seperti biasa. Padam entri registry secara manual hanya apabila fail program sudah tiada, dan eksport kunci itu sebelum memadamnya.
Soalan lazim
Mengapakah sesuatu program tidak muncul dalam Seting → Aplikasi?
Seting hanya menyenaraikan entri yang mempunyai DisplayName dan tidak ditanda sebagai komponen sistem. Program mudah alih tidak pernah mendaftarkan apa-apa dan dibuang dengan memadam foldernya.
Apakah ProductCode bagi MSI?
GUID yang mengenal pasti satu pakej MSI. Ia ialah nama subkunci program di bawah …\Uninstall dan dipaparkan pada halaman pemasangan senyap setiap aplikasi MSI di ExeAtlas.