Weboldal keresés

Szoftvertelepítésekkel végzett munka


A Windows Installerrel telepített alkalmazások megtalálhatók a WMI lekérdezésein keresztül, de nem minden alkalmazás használja a Windows Installert. A más eszközökkel telepített alkalmazások keresésének konkrét technikái a telepítő szoftvertől függenek.

Például a fájlok számítógépen lévő mappába másolásával telepített alkalmazások általában nem kezelhetők az itt tárgyalt technikákkal. Ezeket az alkalmazásokat fájlként és mappaként kezelheti a Fájlok és mappák kezelése című részben tárgyalt technikák segítségével.

Telepítőcsomaggal telepített szoftverek esetén a Windows Installer a Win32Reg_AddRemovePrograms vagy a Win32_Product osztályok használatával érhető el. Azonban mindkettőnek vannak problémái. A Win32Reg_AddRemovePrograms csak a System Center Configuration Manager (SCCM) használata esetén érhető el. És aWin32_Productosztály lassú lehet, és mellékhatásai is lehetnek.

Vigyázat

A Win32_Product osztály nincs lekérdezésre optimalizálva. A helyettesítő karakteres szűrőket használó lekérdezések arra késztetik a WMI-t, hogy az MSI-szolgáltató segítségével felsorolja az összes telepített terméket, majd a teljes listát egymás után elemzi a szűrő kezeléséhez. Ez elindítja a telepített csomagok konzisztenciájának ellenőrzését, valamint a telepítés ellenőrzését és javítását. Az érvényesítés lassú folyamat, és hibákat eredményezhet az eseménynaplókban. További információért keresse fel a KB 974524-es cikket.

Ez a cikk egy alternatív módszert kínál a telepített szoftverek megkeresésére.

Az Uninstall rendszerleíró kulcs lekérdezése a telepített szoftver megkereséséhez

Mivel a legtöbb szabványos alkalmazás regisztrál egy eltávolítót a Windows rendszerben, ezekkel helyileg dolgozhatunk, ha megtaláljuk őket a Windows rendszerleíró adatbázisában. Nincs garantált módja annak, hogy minden alkalmazást megtaláljon a rendszeren. Mindazonáltal minden olyan programot megtalálhat, amelynek listája megjelenik a Programok hozzáadása vagy eltávolítása részben a következő beállításkulcsban:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall.

A telepített alkalmazások számát a rendszerleíró kulcsok számának megszámlálásával találhatjuk meg:

$UninstallPath = 'HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall'
(Get-ChildItem -Path $UninstallPath).Count
459

Az alkalmazások listáján tovább kereshetünk különféle technikák segítségével. Az Eltávolítás alatti beállításkulcsokban lévő beállításjegyzék értékeinek megjelenítéséhez használja a rendszerleíró kulcsok GetValue() metódusát. A metódus értéke a rendszerleíró bejegyzés neve. Például az alkalmazások megjelenített nevének megkereséséhez az Uninstall kulcsban használja a következő parancsot:

Get-ChildItem -Path $UninstallPath |
    ForEach-Object -Process { $_.GetValue('DisplayName') } |
    Sort-Object

Jegyzet

Nincs garancia arra, hogy a DisplayName értékek egyediek.

A következő példa a Win32Reg_AddRemovePrograms osztályhoz hasonló kimenetet állít elő:

Get-ChildItem $UninstallPath |
    ForEach-Object {
        $ProdID = ($_.Name -split '\\')[-1]
        Get-ItemProperty -Path "$UninstallPath\$ProdID" -ea SilentlyContinue |
        Select-Object -Property DisplayName, InstallDate, @{n='ProdID'; e={$ProdID}}, Publisher, DisplayVersion
} | Select-Object -First 3

A rövidség kedvéért ez a példa a Select-Object használatával korlátozza a visszaadott elemek számát háromra.

DisplayName    : 7-Zip 22.01 (x64)
InstallDate    :
ProdID         : 7-Zip
Publisher      : Igor Pavlov
DisplayVersion : 22.01

DisplayName    : AutoHotkey 1.1.33.10
InstallDate    :
ProdID         : AutoHotkey
Publisher      : Lexikos
DisplayVersion : 1.1.33.10

DisplayName    : Beyond Compare 4.4.6
InstallDate    : 20230310
ProdID         : BeyondCompare4_is1
Publisher      : Scooter Software
DisplayVersion : 4.4.6.27483

Kapcsolódó cikkek