Sådan viser og administrerer du drivere fra PowerShell i Windows

Sidste ændring: 04/12/2025
Forfatter: Isaac
  • PowerShell Det giver dig mulighed for at liste, filtrere og eksportere drivere med cmdlets som Get-WmiObject og Get-WindowsDriver.
  • driverforespørgsel, den Enhedshåndtering og SCCM (Get-CMDriver) supplerer controller-inventaret.
  • Nogle dynamisk indlæste drivere kræver yderligere værktøjer såsom WinDbg eller verifier.
  • Moduler som PSWindowsUpdate og eksterne værktøjer gør det nemt at opdatere og holde drivere opdaterede.

Liste over drivere fra PowerShell

I Windows-miljøer, kontrollere hvilke drivere der er installeret, og hvilken version hver enkelt har Det er nøglen til at opretholde systemstabilitet, fejlfinde blå skærme eller forberede migreringer. PowerShell er blevet et utroligt praktisk værktøj til at udføre denne type opgørelse uden at skulle gennemgå Enhedshåndtering én efter én.

I de følgende linjer vil du se Sådan viser du controllere fra PowerShell på forskellige måder, og hvordan du eksporterer dem til filer for at analysere dem roligt, hvilke forskelle der er med andre kommandoer som driverquery eller grafiske værktøjer, og endda hvordan man håndterer mere avancerede scenarier såsom offlinebilleder eller dynamisk indlæste drivere.

Hvad er en driver, og hvorfor vil du angive den fra PowerShell?

Enhedsdrivere i Windows

I Windows er en controller eller driver en lille softwareblok, der fungerer som mellemled mellem operativsystemet og en komponent i hardware (grafikkort, chipsæt, opbevaringperiferiudstyr USBosv.). Selvom den kode, de optager, ikke er enorm, er deres indflydelse på systemstabilitet gigantisk.

Når en kritisk drivkraft (f.eks. lagring, netværk, grafik eller chipsæt) funktionsfejl, kan forårsage nedbrud, tab af ydeevne og endda blå skærme (BSOD)Derfor er det så nyttigt at have en tydelig liste over installerede drivere og deres version, når du foretager fejlfinding eller forbereder dig på en større opdatering.

Før du skynder dig at ændre, afinstallere eller rulle drivere tilbage, er det en god idé minimer risici med et systemgendannelsespunktPå denne måde kan du vende tilbage, hvis en driveropdatering går galt, og computeren begynder at opføre sig mærkeligt eller ikke engang starter korrekt.

Ud over restauranten er det tilrådeligt sikkerhedskopier vigtige data (dokumenter, fotos, arbejdsprojekter osv.), især hvis du skal røre ved lagerdrivere, da en fejl kan medføre, at systemet ikke monterer drevene korrekt eller beskadiger oplysninger.

Grundlæggende kommando i PowerShell til at liste installerede drivere

Den mest direkte måde at hente en controller-inventar fra PowerShell er stole på WMIEn af de mest almindeligt anvendte kommandoer er:

Get-WmiObject Win32_PnPSignedDriver | Select DeviceName, DriverVersion

Med denne cmdlet, PowerShell forespørger Win32_PnPSignedDriver WMI-klassen og returnerer en liste over de signerede PnP-drivere sammen med enhedsnavnet og den driverversion, som systemet i øjeblikket har tilknyttet.

Hvis du ønsker lidt mere kontekst om hver driver, kan du tilføje felter som brugernavn, udgivelsesdato eller producent. For eksempel:

Get-WmiObject Win32_PnPSignedDriver | Select DeviceName, FriendlyName, Manufacturer, DriverVersion, DriverDate

Med denne konsultation får du Meget mere fuldstændige oplysninger for hver postDette giver dig mulighed for at registrere ældre versioner, specifikke producenter eller drivere, der ikke er blevet opdateret i årevis.

Sådan eksporterer du chaufførlisten til en fil (TXT eller CSV)

I virkeligheden er det sjældent nok blot at se listen på skærmen. Den mest bekvemme fremgangsmåde er... gem resultatet i en fil at analysere det i Excel, dele det med teamet eller gemme det som et øjebliksbillede af systemets tilstand, før der foretages ændringer, for eksempel før slet gamle drivere.

Hvis du kun har brug for en hurtig liste i almindelig tekst, kan du omdirigere outputtet til en fil:

Get-WmiObject Win32_PnPSignedDriver | Select DeviceName, DriverVersion > C:\drivers.txt

Den kommando opretter en fil C:\drivere.txt med en simpel liste over enheder og versioner. Ideel til hurtig reference eller til at vedhæfte den til en rapport uden for meget besvær.

Når du leder efter noget mere overskueligt til filtrering og sortering, er den bedste løsning at bruge CSV og cmdlet'en Export-CSVEt meget almindeligt eksempel ville være:

Get-WmiObject Win32_PnPSignedDriver | Select DeviceName, FriendlyName, DriverVersion, DriverDate | Export-CSV -Path "./MisDrivers.csv" -NoTypeInformation

Med denne kommando oprettes en fil med navnet MineDrivere.csv som du kan åbne i Excel eller et hvilket som helst regnearksprogram for at Sortér efter version, filtrer efter driverdato, søg efter specifikke producenterOsv

Selvom det nogle gange siges, at PowerShell "ikke tillader eksport" af driverlisten, så er det i virkeligheden Ja, det kan perfekt eksporteres. Brug outputomdirigering eller Export-CSV, som du lige så. Så kan du kopiere, indsætte eller arbejde med disse oplysninger, hvor du vil.

  25 fantastiske værktøjer til at udtrække lydfiler fra videoer

Filtrer drivere efter producent, navn eller specifik tekst

Normalt vil du ikke se alle driverne på én gang, men i stedet fokusere på en bestemt producent eller enhedstype. Til det formål kan du kæde filtre med Where-Object om egenskaberne for hver driver.

Hvis du for eksempel kun er interesseret i at beholde driverne til IntelDu kunne gøre noget så simpelt som:

Get-WmiObject Win32_PnPSignedDriver | Select DeviceName, DriverVersion | Where-Object { $_.DeviceName -like "*Intel*" }

Denne kommando gentager sig gennem alle de poster, der returneres af WMI, og Den vedligeholder kun dem, hvis enhedsnavn indeholder strengen "Intel".Brug af asterisken som jokertegn giver dig mulighed for at søge efter delvise matches hvor som helst i teksten.

Den samme idé kan bruges til at finde drivere relateret til et bestemt program eller en bestemt type hardware, for eksempel til opdatere USB-drivereHvis du kender en del af navnet, producenten eller et rutemønster, kan du Tilpas filteret til den mest komfortable ejendom i hvert tilfælde.

Se drivere fra Enhedshåndtering og andre Windows-værktøjer

Selvom PowerShell er meget kraftfuld til at automatisere og eksportere lister, tilbyder Windows stadig klassiske grafiske værktøjer til styring af controllere som skal være kendt og kombineret med kommandostien.

Det første referencepunkt er EnhedshåndteringDette kan tilgås ved at højreklikke på "Denne pc" og vælge "Administrer", eller hurtigere ved at bruge kontekstmenuen på Start-knappen (Windows + X). Der vil du se et træ med alle de hardwarekategorier, der er installeret på systemet.

Enheder, der har installations- eller driftsproblemer, vises ofte med et gult advarselsikonHvis du dobbeltklikker på en af ​​dem, åbnes egenskabsvinduet, hvor du kan kontrollere enhedens status og få adgang til fanen "Driver".

Inden for den fane finder du muligheder som f.eks. "Driveroplysninger", "Opdater driver", "Rul driver tilbage", "Deaktiver" eller "Afinstaller"Disse handlinger giver dig mulighed for at se driverfilerne, søge efter nye versioner, vende tilbage til en tidligere version, deaktivere enheden uden at fjerne den eller fjerne driveren helt fra systemet.

Ud over disse værktøjer inkluderer Windows kommandoen driverquery at bruge fra kommandoprompt (CMDLøb driverquery Du får en liste over alle installerede drivere, og med driverquery /v Du vil se mere detaljerede oplysninger, f.eks. hukommelsesforbrug, builddato eller status.

driverquery og dens forhold til PowerShell

Driverquery-kommandoen er meget fleksibel og tillader Se forskellige visninger af førerstatusHvis du for eksempel kun vil liste signerede drivere mere detaljeret, kan du køre:

driverquery /si

Denne tilstand viser underskrevne chauffører med yderligere nyttige oplysninger til sikkerhedsrevisioner eller integritetstjek. Og du kan altid konsultere driverquery /? for at se alle tilgængelige parametre og justere outputtet efter dine behov.

En af fordelene ved driverquery er, at Du kan integrere det med PowerShell ved hjælp af ConvertFrom-CSVHvis du genererer outputtet i CSV-format og sender det via pipe, får du objekter, der kan manipuleres fra PowerShell. Et klassisk eksempel ville være:

driverquery.exe /v /fo csv | ConvertFrom-CSV | Select-Object "Display Name", "Start Mode", "Paged Pool(bytes)", Path

Med dette kombinerer du Styrken ved driverquery med PowerShell-datamanipulationValg af kun de kolonner, du er interesseret i: visningsnavn, opstartstilstand, sideinddelt hukommelse og driversti på disken. Dette er nyttigt, når du vil filtrere efter bestemte typer, f.eks. grafikdrivere.

Det skal bemærkes, at både driverquery og visse standard WMI-forespørgsler primært fokuserer på chauffører registreret i systemet, mange af dem lastet ind i støvle eller administreres via registreringsdatabasen på HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services. Nogle drivere, der injiceres dynamisk under kørsel, vises muligvis ikke på disse lister.

Liste over drivere fra PowerShell med Get-WindowsDriver

Til mere avancerede scenarier, især når man arbejder med Windows offline-billeder (for eksempel monterede WIM'er), er cmdlet'en meget nyttig Get-WindowsDriver, som er en del af DISM-værktøjerne, der er tilgængelige fra PowerShell.

Denne cmdlet giver dig mulighed for at vise oplysninger om driverpakker til både den kørende Windows-installation og et billede monteret i en mappe. Hovedsyntaksen er opdelt i to hovedbrugstilstande: offline og online.

  Sådan sletter du filer i brug i Windows trin for trin

For en offlinebillede monteret i en mappeDen generelle form ville være:

Get-WindowsDriver -Path "C:\offline"

Og for at arbejde mod det kørende system, ville du bruge parameteren - Online:

Get-WindowsDriver -Online

Uden yderligere parametre, Get-WindowsDriver returnerer listen over tredjepartsdrivere til stede i billedet. Hvis du tilføjer modifikatoren -AlleDu vil også se standarddrivere inkluderet som standard i Windows.

Nøgleparametre for Get-WindowsDriver

En af de vigtigste parametre er -Chaufførsom giver dig mulighed for at specificere en specifik .inf-fil eller en mappe med .inf-filer For at få detaljerede oplysninger om disse drivere. Hvis du peger på en mappe, ignoreres .inf-filer, der ikke er gyldige driverpakker, automatisk.

Når du arbejder med et offlinebillede, er parameteren -Sti angiver rodstien til det monterede billede. Hvis Windows-mappen ikke er på det rodniveau, kan du bruge -Windows-mappe for at angive den relative undermappe, hvor den er placeret.

Parameter -Systemdrev Den bruges i mere specifikke scenarier, f.eks. når man arbejder fra Windows PE, og boot manager er på en anden partition. I disse tilfælde tjener den til at angive det drev, der indeholder de BootMgr-filer, der skal betjenes.

Vedrørende aktivitetsloggen, parameteren -LogPath Den lader dig definere den fulde sti til logfilen. Hvis du ikke justerer den, bruges standardstien. %WINDIR%\Logs\Dism\dism.logeller i Windows PE, arbejdspladsen i RAM. I mellemtiden, -Logniveau bestemmer loggens omfangsrighed, med værdier lige fra blot fejl til inklusive fejlfindingsoplysninger.

Endelig parameteren -Scratch-katalog Dette er den midlertidige mappe, hvor filer udpakkes under servicehandlinger. Det skal være en lokal sti, og når handlingen er fuldført, midlertidige filer De fjernes automatisk, så de ikke efterlader rester.

Praktiske eksempler med Get-WindowsDriver

For hurtigt at se alle driverne til din nuværende Windows-installation kan du køre:

Get-WindowsDriver -Online -All

Denne kommando vises alle drivere (både system- og tredjepartsdrivere) til stede i det kørende billede. Det er en meget direkte måde at se, hvilke pakker der er installeret, uden at bruge WMI eller Enhedshåndtering.

Hvis du arbejder med en billede monteret i C:\offline Og hvis du kun vil tjekke tredjepartsdrivere, kan du gøre følgende:

Get-WindowsDriver -Path "C:\offline"

Hvis du ønsker en detaljeret rapport om en specifik OEM-driver i det pågældende billede, skal du blot angive .inf-filen:

Get-WindowsDriver -Path "C:\offline" -Driver "OEM1.inf"

Du kan endda få adgang til en .inf-fil, der er placeret i en bestemt driversti, for eksempel:

Get-WindowsDriver -Path "C:\offline" -Driver "C:\drivers\Usb\Usb.inf"

I alle disse tilfælde, Get-WindowsDriver returnerer objekter som du kan overføre til Select-Object, Where-Object eller Export-CSV for at filtrere, sortere eller eksportere informationen til det format, der passer bedst til dig.

PowerShell og SCCM: Get-CMDriver til driverkataloger

Når du administrerer et virksomhedsmiljø med Konfigurationsstyring (SCCM)Du er ikke kun interesseret i driverne på hver computer, men også i det centraliserede katalog over drivere, som SCCM vedligeholder til implementering af images og pakker.

I den sammenhæng kommer cmdlet'en i spil. Get-CMDriver, Det fungerer for Hent oplysninger fra enhedsdrivere, der administreres af Configuration ManagerDenne cmdlet har flere signaturer afhængigt af hvad du vil forespørge: efter navn, efter numerisk identifikator, efter driverpakke eller efter administrativ kategori.

Den grundlæggende syntaks inkluderer varianter såsom:

Get-CMDriver

Get-CMDriver -DriverPackageId <String>

Get-CMDriver -DriverPackageName <String>

Get-CMDriver -Id <Int32>

Get-CMDriver -InputObject <IResultObject>

Med disse parametre kan du rette dine forespørgsler til SCCM-kataloget og filtrere efter drivernavn, identifikator, tilhørende pakker eller administrative kategorier som du har defineret til at organisere dine controllere.

Eksempler med Get-CMDriver

Hvis du kender navnet på en bestemt driver, for eksempel "Surface Serial Hub Driver", kan du få dens oplysninger med:

Get-CMDriver -Name "Surface Serial Hub Driver"

Når du har brug for at kontrollere flere drivere, der deler det samme præfiks i deres navn (som hele Surface-driverfamilien), og du kun vil se nogle relevante egenskaber, kan du bruge noget i retning af:

  Opnåelse mislykkedes – Fejl med utilstrækkelige tilladelser i Chrome

Get-CMDriver -Fast -Name "Surface*" | Select-Object LocalizedDisplayName, DriverVersion, DriverDate

Modifikatoren -Hurtig Det reducerer mængden af ​​hentet information og fremskynder forespørgslen, hvilket er ret mærkbart i store kataloger. Derefter, med Select-Object, Du beholder kun de kolonner, der er nyttige for dig til din analyse.

Hvis du administrerer administrative kategorier (f.eks. en "Surface"-kategori, hvor du grupperer alle disse controllere), kan du kæde hentning af kategori og driver sammen på denne måde:

$category = Get-CMCategory -Name "Surface"
Get-CMDriver -Fast -AdministrativeCategory $category

I dette tilfælde gemmer du først kategorien i en variabel og beder derefter Get-CMDriver om at returnere den til dig. alle controllere tilknyttet den pågældende kategori, noget meget nyttigt til at vedligeholde logiske visninger af dine controllere i SCCM.

Begrænsninger ved angivelse af dynamisk indlæste drivere

Ikke alle chauffører opfører sig ens. Der findes værktøjer, som f.eks. nogle i pakken. Sysinternals (for eksempel Process Explorer eller handle.exe)som dynamisk injicerer drivere i kernen, når de udføres, uden at registrere dem som traditionelle tjenester, der indlæses ved opstart.

Et typisk eksempel er chaufføren procexp152.sys (eller tidligere versioner såsom procexp113.sys), der er forbundet med Process Explorer. Denne type driver vises muligvis ikke i standardforespørgsler fra Get-WmiObject Win32_SystemDriverda disse forespørgsler er afhængige af oplysninger fra registreringsdatabasetjenester (CurrentControlSet\Services) og normalt primært afspejler drivere, der er indlæst med systemet.

Tilsvarende driverquery viser muligvis ikke alle dynamisk indsprøjtede drivereSå hvis du fejlfinder BSOD'er eller unormal adfærd forårsaget af tredjepartsværktøjer, der indlæser deres egne drivere, skal du muligvis ty til andre metoder.

Blandt disse alternativer er undersøge hukommelsesdumps kerne med værktøjer som WinDbg, eller brug værktøjer som verifier.exeDriververifikatoren giver dig mulighed for at vælge drivere, du vil overvåge, og registrere ustabil adfærd, men den grafiske brugerflade tilbyder flere optællingsmuligheder end kommandolinjeversionen, som fokuserer på forespørgsler og konfiguration af verifikation.

Kort sagt, til en generel opgørelse og til de fleste administrative behov, PowerShell, WMI og Get-WindowsDriver dækker alting rigtig godt.I ekstreme tilfælde af fejlfinding af hot-loaded drivere skal du dog supplere med kerneanalyseværktøjer.

Opdater drivere med PowerShell ved hjælp af PSWindowsUpdate

Udover at liste drivere bruger mange administratorer PowerShell til automatisere driveropdateringer via Windows Update og også for opdater lyddrivereEn almindeligt anvendt metode er via PSWindowsUpdate-modulet, som udvider standardopdaterings-cmdlets.

Den sædvanlige strømning passerer igennem midlertidig aktiver udførelse af signerede scriptsInstaller modulet, og anmod derefter om driveropdateringer direkte fra Microsofts servere.

Et typisk sæt kommandoer kunne være:

Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
Install-Module PSWindowsUpdate
Import-Module PSWindowsUpdate
Get-WindowsUpdate
Get-WindowsUpdate -MicrosoftUpdate -Category Driver -Install -AutoReboot

Denne sekvens aktiverer scriptudførelse for den aktuelle session, installerer og importerer PSWindowsUpdate-modulet, Du tjekker hvilke opdateringer der er tilgængelige. Og endelig anmoder du om, at de installeres fra kategorien "Driver" via Microsoft Update, så systemet kan genstarte automatisk, hvis det er nødvendigt.

Du kan også udvide omfanget ved at bruge en kommando, der installerer alle opdateringer, der registreres fra Microsoft Update, og genstarter uden indgriben, for eksempel:

Get-WindowsUpdate -MicrosoftUpdate -Install -AutoReboot

Denne arbejdsmetode er især praktisk i store holdparkerDet er her, du ønsker at standardisere driverversioner uden at gå én efter én. Det er dog altid tilrådeligt at kombinere dette med en god forudgående oversigt over drivere og, i kritiske miljøer, teste i en pilotgruppe, før de implementeres i hele organisationen.

Windows-tilbehør og driverproblemer
relateret artikel:
Komplet guide til fjernelse af spøgelsesenheder og forældreløse drivere i Windows