Cum să verificați rapid versiunile software instalate

există situații în care trebuie să verificați dacă dvs. sau utilizatorii dvs. aveți anumite programe instalate și care este versiunea sa. Poate doriți să verificați dacă software-ul este actualizat sau dacă software-ul implementat de GPO a fost instalat pentru un anumit utilizator. Vă voi arăta mai multe metode pe care le puteți utiliza pentru a verifica acest lucru cu PowerShell.

cum să verificați versiunea software instalată

navigare rapidă:

  • verificați lista software-ului instalat local
    • Get-WmiObject
    • interogare registru
    • jurnal de evenimente
  • verificați lista de software instalat de la distanță
    • Get-WmiObject
    • registru interogare
    • jurnal de evenimente
  • verificați dacă software-ul implementat de GPO a fost aplicat cu succes

verificați ce este instalat pecomputerul dvs.

pentru a verifica ce software este instalat, puteți utiliza întotdeauna programe și caracteristici din panoul de Control sau puteți răsfoi toate partițiile de disc în căutarea unei anumite aplicații. Puteți chiar să încercați să găsiți o aplicație în meniul Start pentru a o lansa și a căuta manual Numărul versiunii sale. Cu toate acestea, problema cu aceste metode este că acestea sunt la fel de departe de „rapid și automat”, deoarece acestea pot fi. Verificarea versiunilor software instalate utilizând PowerShell vă permite să colectați date de care aveți nevoie mult mai repede.

obțineți lista de software instalată cu Get-WmiObject

firstmethod este la fel de simplu ca lipirea unei interogări simple:

Get-WmiObject -Class Win32_Product
cum să verificați versiunea software instalată-Get-WmiObject

de asemenea, puteți filtra cu ușurință datele pentru a găsi aplicații specifice de la un singur furnizor, împreună cu versiunile acestora, de exemplu:

Get-WmiObject -Class Win32_Product | where vendor -eq CodeTwo | select Name, Version
cum să verificați versiunea software instalată-Obțineți-WmiObject filtrat

în Ciudafiind foarte ușor, această metodă are un dezavantaj major – este nevoie de ceva timp pentru a reveni la rezultate.

registru de interogare pentrusoftware-ul instalat

o altă metodă de a obține o listă de software instalat interoghează Registrul. Următorul script scurt returnează lista de aplicații împreună cu versiunile lor:

$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')}
cum se verifică versiunea software instalată - interogare de registru

acum, aruncați o privire rapidă la elementul HKLM îngroșat mai sus. Aceasta înseamnă că lista desoftware – ul returnat de script este tot software-ul instalat pe lm-localmachine. Cu toate acestea, aplicațiile pot fi instalate și pentru fiecare utilizator. Pentru a returna Alist de aplicații ale utilizatorului înregistrat în prezent, schimbați HKLM în HKCU (cu înseamnă „utilizator curent”):

$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')}

obținerea listei desoftware instalat recent din Jurnalul de evenimente

dacă dorițipentru a verifica numai software-ul instalat recent, puteți utiliza următorul cmdletpentru a căuta prin Jurnalul de evenimente.

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

această metodă de a afla software-ul instalat este cea mai fiabilă pentru elementele adăugate recent, deoarece, în mod implicit, jurnalele de evenimente sunt setate să suprascrie cele mai vechi înregistrări(logare circulară).

Aflați mai multe despre utilizarea PowerShell pentru a verifica jurnalele de evenimente Windows și rezultatele filtrării

obțineți o listă de instalatesoftware de la distanță

fiecare dintre metodele menționate mai sus poate fi utilizată și pentru a verifica software-ul instalat pe alte mașini din aceeași rețea. Dacă creați o listă cu toate numele computerului din rețeaua dvs., puteți utiliza metodele de mai jos într-o buclă Foreach pentru a returna rezultate de la mai mult de un singur computer la distanță.

$pcname în fiecare script reprezintă numele computerului la distanță pe care doriți să obțineți o listă de software instalat și versiunile acestora.

Obțineți softwarelist instalat cu comanda Get-WmiObject de la distanță

următorul cmdlet este, din nou, cel mai ușor din buchet, dar poate dura ceva timp pentru a termina:

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

unde$pcname este numele computerului pe care doriți să îl interogați.

verificați software-ul instalatcu interogare de registru la distanță

interogările de registru la distanță sunt puțin mai complicate și necesită rularea serviciului de registru la distanță. O interogare eșantion este după cum urmează:

$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
cum se verifică versiunea software instalată-vizualizarea tabelului de interogare a registrului

verificați lista software-ului instalat recent din Jurnalul de evenimente de la distanță

verificarea jurnalului de evenimente auser de la distanță necesită adăugarea unui singur atribut (- ComputerName) la cmdlet-ul utilizat înainte:

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

verificați dacă un software implementat de GPO a fost aplicat cu succes

dacă ați aplicat o anumită versiune de software prin GPO, puteți verifica cu ușurință dacă acest GPO a fost aplicat cu succes unui utilizator sau nu. Tot ce ai nevoie este instrumentul gpresult andnames de calculator țintă și utilizator:

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

apoi, căutați GPOname-ul dvs. și verificați dacă este listat sub GPO-uri aplicate sau GPO-uri refuzate.Eșantionul GPO de mai jos se află în grupul GPO aplicat.

cum să verificați versiunea software instalată-raport html gpresult