Kuinka nopeasti tarkistaa asennetut ohjelmistoversiot
on tilanteita, joissa sinun on tarkistettava, onko sinulla tai käyttäjilläsi asennettuna tiettyjä ohjelmistoja ja mikä on sen versio. Haluat ehkä tarkistaa, onko ohjelmisto ajan tasalla tai onko GPO-käyttöön otettu ohjelmisto asennettu tietylle käyttäjälle. Näytän sinulle useita menetelmiä, joilla voit tarkistaa sen Powershellissa.
Nopea navigointi:
- Tarkista asennettujen ohjelmistojen luettelo paikallisesti
- Get-WmiObject
- Rekisterikysely
- tapahtumaloki
- Tarkista asennettujen ohjelmistojen luettelo etänä
- Get-WmiObject
- rekisterin kysely
- tapahtumaloki
- Tarkista, että jos GPO-käyttöön otettua ohjelmistoa on sovellettu onnistuneesti
tarkista, mitä tietokoneellesi on asennettu
, voit aina käyttää ohjelmia ja ominaisuuksia ohjauspaneelissa tai selata kaikkia levyosioita etsiessäsi tiettyä sovellusta. Voit jopa yrittää löytää sovelluksen Käynnistä-valikosta, jotta se voidaan käynnistää ja etsiä sen versionumero manuaalisesti. Ongelmana näissä menetelmissä on kuitenkin se, että ne ovat niin kaukana ”nopeista ja automaattisista” kuin ne voivat olla. Tarkistamalla asennetut ohjelmistoversiot Powershellilla voit kerätä tarvitsemasi tiedot paljon nopeammin.
Get installed software list with Get-WmiObject
the firstmethod is niinkin yksinkertainen kuin liittämällä yksinkertainen kysely:
Get-WmiObject -Class Win32_Product
voit myös helposti suodattaa tietoja löytääksesi tietyn sovelluksen yksittäiseltä toimittajalta, yhdessä niiden versioiden kanssa, esim.:
Get-WmiObject -Class Win32_Product | where vendor -eq CodeTwo | select Name, Version
Despitebeing erittäin helppoa, tämä menetelmä on merkittävä haittapuoli-se kestää melko kauan palauttaa tuloksia.
Kyselyrekisteri asennetuille ohjelmistoille
Anothermethod to get a list of installed software is querying the registry. The following short script palauttaa sovellusluettelon versioineen:
$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')}
nyt, ottaa aquick tarkastella HKLM Elementti lihavoitu edellä. Se tarkoittaa, että lista ofsoftware palauttaa script on kaikki ohjelmistot asennettu lm-localmachine. Sovelluksia voidaan kuitenkin asentaa myös käyttäjäkohtaisesti. Jos haluat palauttaa luettelon kirjautuneen käyttäjän sovelluksista, muuta HKLM: ksi HKCU(CU tarkoittaa ”nykyinen käyttäjä”):
$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')}
saada luettelo äskettäin asennetuista ohjelmistoista tapahtumalokista
jos haluat tarkistaa vain äskettäin asennetun ohjelmiston, voit käyttää seuraavaa cmdlettoa etsiäksesi tapahtumalokia.
Get-WinEvent -ProviderName msiinstaller | where id -eq 1033 | select timecreated,message | FL *
tämä asennettujen ohjelmistojen löytämistapa on luotettavin äskettäin lisätyille elementeille, koska oletusarvoisesti tapahtumalokit on asetettu ylikirjoittamaan vanhimmat tietueet(ympyrälokki).
Learn more about using PowerShell to check Windows Event Loc and filtering results
Get a list of installledsoftware etänä
jokaista edellä mainittua menetelmää voidaan käyttää myös muihin saman verkon koneisiin asennettujen ohjelmistojen tarkistamiseen. Jos luot luettelon kaikista verkon tietokonenimistä, voit käyttää alla olevia menetelmiä Foreach-silmukan sisällä palauttaaksesi tuloksia useammalta kuin yhdeltä etätietokoneelta.
$pcname jokaisessa skriptissä tarkoittaa sen etätietokoneen nimeä, johon haluat saada luettelon asennetuista ohjelmistoista ja niiden versioista.
Get installed softwarelist with remote Get-Wmiobject command
Thefollowing cmdlet on jälleen joukon helpoin, mutta se voi kestää jonkin aikaa:
Get-WmiObject Win32_Product -ComputerName $pcname | select Name,Version
missä$pcname on sen tietokoneen nimi, jota haluat kysellä.
Tarkista asennettu ohjelmisto etärekisterikyselyllä
etärekisterikyselyt ovat hieman monimutkaisempia ja edellyttävät Etärekisteripalvelun suorittamista. Otoskysely on seuraava:
$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
Tarkista äskettäin asennetut ohjelmat-luettelo tapahtumalokista etänä
auserin tapahtumalokin tarkistaminen etänä edellyttää yhden attribuutin (- Tietokonenimen) lisäämistä ennen käytettyyn cmdletiin:
Get-WinEvent -ComputerName $pcname -ProviderName msiinstaller | where id -eq 1033 | select timecreated,message | FL *
Tarkista, sovellettiinko yleisen ryhmäpoikkeuksen käyttöönotettua ohjelmistoa onnistuneesti
jos SOVELLIT tiettyä ohjelmistoversiota yleisen ryhmäpoikkeusasetuksen kautta, voit helposti tarkistaa, sovellettiinko tätä ryhmäpoikkeusasetusta onnistuneesti käyttäjälle vai ei. Tarvitset vain gpresult-työkalun ja kohdetietokoneen ja käyttäjän nimet:
gpresult /s "PCNAME" /USER "Username" /h "Target location of theHTML report"
sitten, etsiä GPOname ja tarkista, jos se on lueteltu sovellettu GPOs tai evätty GPOs.Alla oleva näyte GPO kuuluu sovellettuun GPO-ryhmään.