Windows 10/11'de PowerShell ile Programları Kaldırma


Bu yazıda, PowerShell kullanarak yerel veya uzak bir Windows bilgisayarda yazılımın nasıl kaldırılacağına bakacağız. Oldukça sık olarak, sistem yöneticisi Windows uygulamalarını kaldırmak için komut dosyaları kullanır. Programları komut isteminden veya PowerShell betiklerinden kaldırmak için çeşitli yaklaşımlar kullanabilirsiniz.

Windows'ta Programları Kaldırmak için WMI Kullanma

Windows'ta yüklü programları kaldırmanın en yaygın yolu, WMI ad alanına başvuran komutları kullanmaktır. Örneğin, wmic komutuyla WMI ad alanını sorgulayabilir ve kurulu programların bir listesini alabilirsiniz.

wmic product get name,version

Bir uygulamayı bu listeden sessizce kaldırmak için aşağıdaki komutu kullanabilirsiniz:

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

Komut, Windows Installer aracılığıyla bir uygulama (vCenter Converter) kaldırma WMI yöntemini çağırır.

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

Program başarıyla kaldırılırsa, şunu döndürür:

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

Uygulamaları WMI aracılığıyla görüntülemek ve kaldırmak için benzer PowerShell komutları şunlardır:

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

Uzak bilgisayardaki bir programı kaldırmak için -ComputerName seçeneğini ekleyin. Örneğin, uzak bir bilgisayarda Microsoft Office'i kaldırmak için aşağıdaki komutu çalıştırın:


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

Ancak, bu uygulamaları kaldırma yöntemi, tüm olası durumlar için yeterince evrensel değildir. WMI ad alanı aracılığıyla döndürülen programların listesini ve Ayarlar'daki Windows Denetim Masası/ Uygulamalar ve özellikler listesindeki uygulama listesini karşılaştırırsanız (MS-Settings hızlı erişim komutunu kullanın:

ms-settings:appsfeatures

), farklı olduklarını göreceksiniz. Wmi komutu yalnızca Windows Installer aracılığıyla yüklenen programların bir listesini görüntüler. Liste, çoğu kullanıcı uygulamasını (örneğin tarayıcılar) içermez.

Ayrıca, Microsoft Store'daki UWP programları ve PowerShell modülleri (PowerShellGet aracılığıyla) görüntülenmez.

PowerShell Paket Yöneticisi Modülü ile Uzak Bilgisayardaki Uygulamaları Kaldırma

Modern Windows 10/11 yapılarında ve Windows Server 2022/2019/2016'da, uygulamaları yüklemek veya kaldırmak için yerleşik PowerShell Paket Yönetimi cmdlet'lerini kullanabilirsiniz. Başlangıçta modül, PowerShell modüllerini yüklemek/kaldırmak için kullanıldı. Ancak, Win32 programlarını, MSU güncellemelerini ve MSI yükleyicileri kullanılarak yüklenen uygulamaları kaldırmak için de kullanabilirsiniz.

Yerel bir bilgisayarda yüklü uygulamaların tam listesini görüntülemek için aşağıdaki komutu çalıştırın:

Get-Package

Komut, farklı sağlayıcılar (SağlayıcıAdı) aracılığıyla yüklenen çeşitli program sınıflarını döndürür. Sağlayıcıların listesini bir bilgisayarda aşağıdaki gibi görüntüleyebilirsiniz:

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

Belirli bir sağlayıcı aracılığıyla yüklenen programların listesini göstermek için şu komutu çalıştırın:

Get-Package -ProviderName Programs -IncludeWindowsInstaller

Programı kaldırmak için Uninstall-Package cmdlet'ini kullanın:

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

Kurulu PowerShell modülünü kaldırabilirsiniz. Örneğin, tüm VMware.PowerCLI modüllerini kaldırmak için:

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

Uzak bilgisayardaki bir programı kaldırmak için Invoke-Command cmdlet'ini kullanın:

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

GPO aracılığıyla etki alanı bilgisayarlarında WinRM PowerShell Remoting'i etkinleştirebilirsiniz.

Bu modülü yalnızca Win32 uygulamalarını ve PS modüllerini kaldırmak için kullanabilirsiniz. UWP uygulamalarını Microsoft Store'dan kaldırmak için

Remove-AppxPackage

veya

Remove-AppxProvisionedPackage

PowerShell cmdlet'leri (bu makaledeki bir örneğe bakın).

WinGet Komutu ile Uygulama Nasıl Kaldırılır?

Windows'ta program yüklemek ve kaldırmak için yeni WinGet paket yöneticisini (Windows 10 ve 11'de yerleşiktir) kullanabilirsiniz. Bilgisayarınızdaki programların bir listesini almak için şunu çalıştırın:

winget list

Komut, winget dışındaki yöntemlerle yüklenenler de dahil olmak üzere programların bir listesini ve UWP (APPX) uygulamalarının bir listesini döndürür.

WinGet aracılığıyla yüklenen uygulamaları kaldırmak için aşağıdaki komutu çalıştırın:

winget uninstall --name 7zip.7zip

Windows'ta bir MSI uygulamasını kaldırmak için GUID'sini belirtin:

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

Bir UWP uygulamasını kaldırmak için:

winget uninstall --id "Microsoft.ZuneVideo_8wekyb3d8bbwe"

Ancak winget, uzaktaki bir bilgisayardaki programları kaldırmanıza izin vermez. Uzak bir bilgisayarda winget komutunu yürütmek için PowerShell Remoting özelliklerini (Invoke-Command ve Enter-PSSession cmdlet'leri) kullanın. Örneğin:

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

Programları uzaktan kaldırmak veya SCCM veya GPO oturum açma komut dosyalarını kullanarak etki alanı bilgisayarlarında çalıştırmak için burada gösterilen PowerShell komut dosyalarını kullanabilirsiniz.

İlgili makaleler