A telepített szoftververziók gyors ellenőrzése

vannak olyan helyzetek, amikor ellenőrizni kell, hogy Ön vagy a felhasználók telepítettek-e bizonyos szoftvert, és mi a verziója. Érdemes lehet ellenőrizni, hogy a szoftver naprakész, vagy ha a GPO telepített szoftver telepítve van egy bizonyos felhasználó számára. Megmutatom néhány módszert, amellyel ellenőrizheti ezt a PowerShell-vel.

a telepített szoftver verziójának ellenőrzése

Gyors navigáció:

  • helyileg ellenőrizze a telepített szoftverek listáját
    • Get-WmiObject
    • rendszerleíró lekérdezés
    • Eseménynapló
  • ellenőrizze a telepített szoftverek listáját távolról
    • Get-WmiObject
    • rendszerleíró lekérdezés
    • Eseménynapló
  • ellenőrizze, hogy sikeresen alkalmazta-e a GPO által telepített szoftvert

ellenőrizze, hogy mi van telepítve a számítógépére

a telepített szoftver ellenőrzéséhez mindig használhat programokat és funkciókat a Vezérlőpulton, vagy böngészhet az összes lemezpartíció között egy adott alkalmazás kereséséhez. Akkor is megpróbál, és talál egy alkalmazást a Start menüben annak érdekében, hogy indítsa el, és keresse meg a verziószámot kézzel. A probléma azonban ezekkel a módszerekkel az, hogy olyan messze vannak a “gyors és automatikus” – tól, amennyire csak lehet. A telepített szoftververziók ellenőrzése a PowerShell használatával lehetővé teszi, hogy sokkal gyorsabban gyűjtsön adatokat.

Get installed software list with Get-WmiObject

az első módszer olyan egyszerű, mint egy egyszerű lekérdezés beillesztése:

Get-WmiObject -Class Win32_Product
a telepített szoftver verziójának ellenőrzése-Get-WmiObject

könnyen szűrheti az adatokat, hogy egyetlen gyártótól származó konkrét alkalmazásokat találjon, például azok verzióival együtt:

Get-WmiObject -Class Win32_Product | where vendor -eq CodeTwo | select Name, Version
a telepített szoftver verziójának ellenőrzése-Get-WmiObject szűrt

annak ellenére, hogy nagyon könnyű, ennek a módszernek van egy nagy hátránya – elég sokáig tartvisszaadja az eredményeket.

query registry forinstalled software

a telepített szoftverek listájának lekérdezésének másik módja a rendszerleíró adatbázis lekérdezése. A következő rövid szkript az alkalmazások listáját adja vissza azok verzióival együtt:

$InstalledSoftware = Get-ChildItem "HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall"foreach($obj in $InstalledSoftware){write-host $obj.GetValue('DisplayName') -NoNewline; write-host " - " -NoNewline; write-host $obj.GetValue('DisplayVersion')}
a telepített szoftver verziójának ellenőrzése-rendszerleíró adatbázis lekérdezése

most, hogy aquick nézd meg a HKLM elem félkövéren fent. Ez azt jelenti, hogy aa szkript által visszaküldött szoftver az LM – localmachine-ra telepített összes szoftver. Az alkalmazások azonban felhasználónként is telepíthetők. A jelenleg bejelentkezett felhasználó alkalmazásainak listájának visszaadásához változtassa meg a HKLM-et HKCU-ra(a CU jelentése “aktuális felhasználó”):

$InstalledSoftware = Get-ChildItem "HKCU:\Software\Microsoft\Windows\CurrentVersion\Uninstall"
foreach($obj in $InstalledSoftware){write-host $obj.GetValue('DisplayName') -NoNewline; write-host " - " -NoNewline; write-host $obj.GetValue('DisplayVersion')}

a legutóbb telepített szoftverek listájának letöltése az Eseménynaplóból

ha csak a nemrég telepített szoftvert szeretné ellenőrizni, használhatja a következő cmdletto keresést az Eseménynaplóban.

Get-WinEvent -ProviderName msiinstaller | where id -eq 1033 | select timecreated,message | FL *

ez a módszer a telepített szoftver megtalálására a legmegbízhatóbb a legutóbb hozzáadott elemek számára, mert alapértelmezés szerint az eseménynaplók felülírják a legrégebbi rekordokat(körkörös naplózás).

További információ a PowerShell használatáról A Windows eseménynaplók és szűrési eredmények ellenőrzéséhez

a telepített szoftverek listájának megtekintése távolról

a fent említett módszerek mindegyike használható az ugyanazon hálózat más gépeire telepített szoftverek ellenőrzésére is. Ha létrehoz egy listát a hálózat összes számítógépnevéről, az alábbi módszerekkel egy Foreach hurokon belül több távoli számítógépről is visszaadhatja az eredményeket.A

$pcname minden szkriptben annak a távoli számítógépnek a nevét jelenti, amelyre a telepített szoftvereket és azok verzióit szeretné letölteni.

Get installed softwarelist with remote Get-WmiObject paranccsal

a következő parancsmag ismét a legkönnyebb a csomagban, de eltarthat egy ideig, hogy befejezze:

Get-WmiObject Win32_Product -ComputerName $pcname | select Name,Version

ahol a$pcname a lekérdezni kívánt számítógép Neve.

telepített szoftver Ellenőrzésetávoli rendszerleíró lekérdezéssel

a Távoli rendszerleíró lekérdezések kissé bonyolultabbak, ezért a Távoli Rendszerleíró szolgáltatás futtatásához szükséges. A minta lekérdezés a következő:

$list=@()$InstalledSoftwareKey="SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"$InstalledSoftware=::OpenRemoteBaseKey('LocalMachine',$pcname)$RegistryKey=$InstalledSoftware.OpenSubKey($InstalledSoftwareKey) $SubKeys=$RegistryKey.GetSubKeyNames()Foreach ($key in $SubKeys){$thisKey=$InstalledSoftwareKey+"\"+$key$thisSubKey=$InstalledSoftware.OpenSubKey($thisKey)$obj = New-Object PSObject$obj | Add-Member -MemberType NoteProperty -Name "ComputerName" -Value $pcname$obj | Add-Member -MemberType NoteProperty -Name "DisplayName" -Value $($thisSubKey.GetValue("DisplayName"))$obj | Add-Member -MemberType NoteProperty -Name "DisplayVersion" -Value $($thisSubKey.GetValue("DisplayVersion"))$list += $obj}$list | where { $_.DisplayName } | select ComputerName, DisplayName, DisplayVersion | FT
a telepített szoftver verziójának ellenőrzése-registry query table view

ellenőrizze a legutóbb telepített szoftverlistát az Eseménynaplóból távolról

az auser eseménynaplójának távoli ellenőrzéséhez egyetlen attribútum (-ComputerName) hozzáadása szükséges a korábban használt parancsmaghoz:

Get-WinEvent -ComputerName $pcname -ProviderName msiinstaller | where id -eq 1033 | select timecreated,message | FL *

ellenőrizze, hogy a GPO által telepített szoftvert sikeresen alkalmazták-e

ha egy bizonyos szoftververziót GPO-n keresztül alkalmazott, könnyen ellenőrizheti, hogy ez a GPO sikeresen alkalmazta-e a felhasználót. Minden amire szükséged van a GPResult eszköz ésa célszámítógép és a felhasználó neve:

gpresult /s "PCNAME" /USER "Username" /h "Target location of theHTML report"

Ezután keresse meg a GPOname-t, és ellenőrizze, hogy szerepel-e az alkalmazott GPO-k vagy a megtagadott GPO-k között.Az alábbi csoportházirend-csoportházirend-minta az alkalmazott Csoportházirend-csoportba tartozik.

a telepített szoftver verziójának ellenőrzése-gpresult html jelentés