Illesztőprogramok listázása és kezelése a PowerShellből Windows rendszerben

Utolsó frissítés: 04/12/2025
Szerző: Izsák
  • PowerShell Lehetővé teszi a listázást, szűrést és exportálást illesztőprogramok olyan parancsmagokkal, mint a Get-WmiObject és a Get-WindowsDriver.
  • illesztőprogram-lekérdezés, a Eszközkezelő Az SCCM (Get-CMDriver) pedig kiegészíti a vezérlőleltárt.
  • Néhány dinamikusan betöltött illesztőprogram további eszközöket igényel, például a WinDbg-t vagy a Verifier-t.
  • Az olyan modulok, mint a PSWindowsUpdate és a külső segédprogramok megkönnyítik az illesztőprogramok frissítését és naprakészen tartását.

Illesztőprogramok listázása a PowerShellből

Windows környezetekben, szabályozza, hogy mely illesztőprogramok vannak telepítve és milyen verziójúak Kulcsfontosságú a rendszer stabilitásának fenntartásához, a kék képernyők elhárításához vagy a migrációkra való felkészüléshez. A PowerShell hihetetlenül kényelmes eszközzé vált az ilyen típusú leltárok elvégzéséhez anélkül, hogy egyenként kellene végigmenni az Eszközkezelőn.

A következő sorokban látni fogod Hogyan listázhatjuk a vezérlőket a PowerShellből különböző módokon, és hogyan exportálhatjuk őket fájlokhoz, hogy nyugodtan elemezhesd őket, milyen különbségek vannak másokhoz képest parancsok mint driverquery vagy grafikus eszközöket, sőt, még a bonyolultabb forgatókönyvek, például az offline képek vagy a dinamikusan betöltött illesztőprogramok kezelését is.

Mi az a driver, és miért szeretnéd listázni a PowerShellből?

Eszközillesztők Windows rendszerben

Windows rendszerben a vezérlő vagy illesztőprogram egy kis szoftverblokk, amely közvetítőként működik az operációs rendszer és egy komponens között hardver (grafikus kártya, chipset, tárolásperifériák USBstb.). Bár az általuk elfoglalt kód nem hatalmas, a rendszer stabilitására gyakorolt ​​hatásuk gigantikus.

Amikor egy kritikus fontosságú sofőr (például tárhely, hálózat, grafika vagy lapkakészlet) meghibásodások, összeomlásokat, teljesítménykiesést és akár kék képernyők (BSOD)Ezért olyan hasznos a telepített illesztőprogramok és azok verzióinak egyértelmű listája, amikor hibákat keresel, vagy egy nagyobb frissítésre készülsz.

Mielőtt sietne az illesztőprogramok módosításával, eltávolításával vagy visszaállításával, érdemes minimalizálja a kockázatokat rendszer-visszaállítási ponttalÍgy visszaállíthatod az eredeti állapotot, ha egy illesztőprogram-frissítés hibásan történik, és a számítógép furcsán kezd viselkedni, vagy akár nem is indul el megfelelően.

Az étterem mellett ajánlott fontos adatok biztonsági mentése (dokumentumok, fényképek, munkaprojektek stb.), különösen, ha tárolóillesztőkkel fog foglalkozni, mivel egy hiba miatt a rendszer nem csatlakoztatja megfelelően a meghajtókat, vagy az információk megsérülhetnek.

Alapvető parancs a PowerShellben a telepített illesztőprogramok listázásához

A PowerShellből a vezérlőleltár beszerzésének legközvetlenebb módja a következő: WMI-re támaszkodikAz egyik leggyakrabban használt parancs a következő:

Get-WmiObject Win32_PnPSignedDriver | Select DeviceName, DriverVersion

Ezzel a parancsmaggal A PowerShell lekérdezi a Win32_PnPSignedDriver WMI osztályt és visszaadja az aláírt PnP-illesztőprogramok listáját, valamint az eszköz nevét és a rendszer által jelenleg társított illesztőprogram verzióját.

Ha további kontextusra van szüksége az egyes illesztőprogramokkal kapcsolatban, hozzáadhat olyan mezőket, mint a felhasználóbarát név, kiadási dátum vagy gyártó. Például:

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

Ezzel a konzultációval Ön megkapja a Sokkal teljesebb információ minden bejegyzéshezEz lehetővé teszi a régebbi verziók, adott gyártók vagy az évek óta nem frissített illesztőprogramok észlelését.

Hogyan exportálható az illesztőprogram-lista fájlba (TXT vagy CSV)

A valós helyzetekben ritkán elegendő a lista egyszerű megtekintése a képernyőn. A legkényelmesebb megközelítés a következő... mentse el az eredményt egy fájlba elemezheti Excelben, megoszthatja a csapattal, vagy pillanatképként megőrizheti a rendszer állapotáról, mielőtt bármilyen változtatást végrehajtana, például mielőtt törölje a régi illesztőprogramokat.

Ha csak egy gyors, sima szöveges listára van szüksége, átirányíthatja a kimenetet egy fájlba:

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

Ez a parancs létrehoz egy fájlt C:\drivers.txt fájl egyszerű eszköz- és verziólistával. Ideális gyors áttekintéshez vagy jelentéshez való csatoláshoz, különösebb gond nélkül.

Ha valami könnyebben kezelhető szűrési és rendezési lehetőséget keres, a legjobb megoldás a következő használata: CSV és az Export-CSV parancsmagEgy nagyon gyakori példa erre:

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

Ezzel a paranccsal egy fájl neve SajátJárművezetők.csv amit Excelben vagy bármilyen táblázatkezelő programban megnyithatsz Rendezés verzió szerint, szűrés illesztőprogram dátuma szerint, keresés konkrét gyártókraStb

Bár néha azt mondják, hogy a PowerShell "nem engedélyezi az illesztőprogram-lista exportálását", a valóságban Igen, tökéletesen exportálható. Kimenet átirányításával vagy CSV exportálással, ahogy az előbb láttad. Ezután másolhatod, beillesztheted vagy dolgozhatsz az információkkal, ahová csak szeretnél.

  25 csodálatos eszköz audiofájlok videókból való kinyerésére

Illesztőprogramok szűrése gyártó, név vagy adott szöveg alapján

Normális esetben nem érdemes egyszerre az összes illesztőprogramot látni, hanem egy adott gyártóra vagy eszköztípusra kell összpontosítani. Ehhez a következőket teheti: szűrők láncolása Where-Object segítségével az egyes sofőrök tulajdonságairól.

Például, ha csak az illesztőprogramokat szeretné megtartani a következőhöz: IntelCsinálhatnál valami olyan egyszerűt, mint például:

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

Ez a parancs végigmegy a WMI által visszaadott összes bejegyzésen, és Csak azokat tartja karban, amelyek eszköznevében szerepel az "Intel" karakterlánc.A csillag helyettesítő karakterként való használata lehetővé teszi részleges találatok keresését a szöveg bármely pontján.

Ugyanez az elv alkalmazható egy adott alkalmazáshoz vagy hardvertípushoz kapcsolódó illesztőprogramok megkeresésére is, például a következőhöz: frissítse az USB illesztőprogramokatHa ismered a név egy részét, a gyártót vagy az útvonal valamilyen mintázatát, akkor megteheted. igazítsa a szűrőt a legkényelmesebb tulajdonsághoz minden egyes esetben.

Illesztőprogramok megtekintése az Eszközkezelőből és más Windows eszközökből

Bár a PowerShell nagyon hatékony a listák automatizálásában és exportálásában, a Windows továbbra is kínálja a következőket: klasszikus grafikus eszközök a vezérlők kezeléséhez amelyet ismerni és kombinálni kell a parancsútvonallal.

Az első viszonyítási pont a EszközkezelőEz úgy érhető el, hogy jobb gombbal kattint az „Ez a gép” elemre, és kiválasztja a „Kezelés” lehetőséget, vagy gyorsabban a Start gomb (Windows + X) helyi menüjével. Ott egy fastruktúrát fog látni, amelyen a rendszerre telepített összes hardverkategória szerepel.

A telepítési vagy működési problémákkal küzdő eszközök gyakran jelennek meg egy sárga figyelmeztető ikonHa duplán kattint bármelyikre, megnyílik a tulajdonságok ablak, ahol ellenőrizheti az eszköz állapotát és elérheti az „Illesztőprogram” fület.

Ezen a fülön olyan opciókat találsz, mint például „Illesztőprogram adatai”, „Illesztőprogram frissítése”, „Illesztőprogram korábbi verziójának visszaállítása”, „Letiltás” vagy „Eltávolítás”Ezek a műveletek lehetővé teszik az illesztőprogram-fájlok megtekintését, új verziók keresését, egy korábbi verzióra való visszaállítást, az eszköz letiltását eltávolítás nélkül, vagy az illesztőprogram teljes eltávolítását a rendszerből.

Ezen eszközök mellett a Windows tartalmazza a parancsot is driverquery használni a parancssor (CMD). Futás driverquery Kapsz egy listát az összes telepített illesztőprogramról, és a driverquery /v Részletesebb információkat láthat, például a memóriahasználatot, a build dátumát vagy az állapotot.

driverquery és kapcsolata a PowerShell-lel

A driverquery parancs nagyon rugalmas és lehetővé teszi a következőket: A sofőr állapotának különböző nézeteinek megtekintésePéldául, ha csak az aláírt illesztőprogramokat szeretné részletesebben listázni, akkor a következő parancsot futtathatja:

driverquery /si

Ez a mód mutatja aláírt illesztőprogramok további hasznos információkkal biztonsági auditokhoz vagy integritási ellenőrzésekhez. És bármikor konzultálhat driverquery /? hogy megtekinthesse az összes elérhető paramétert, és az igényeinek megfelelően beállíthassa a kimenetet.

A driverquery egyik előnye, hogy Integrálhatod a PowerShell-lel a ConvertFrom-CSV használatával.Ha CSV formátumban generálod a kimenetet és pipe-on keresztül küldöd el, akkor olyan objektumokat kapsz, amelyek PowerShellből manipulálhatók. Egy klasszikus példa erre:

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

Ezzel kombinálod A driverquery ereje PowerShell adatkezelésselCsak a kívánt oszlopok kiválasztása: megjelenített név, indítási mód, lapozható memória és illesztőprogram elérési útja a lemezen. Ez akkor hasznos, ha adott típusok szerint szeretne szűrni, például grafikus illesztőprogramok.

Meg kell jegyezni, hogy mind a driverquery, mind bizonyos szabványos WMI-lekérdezések elsősorban a következőkre összpontosítanak: a rendszerben regisztrált sofőrök, sokan közülük berakodtak a csomagtartó vagy a HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services mappában található beállításjegyzéken keresztül kezelhető. Előfordulhat, hogy egyes, futásidőben dinamikusan befecskendezett illesztőprogramok nem jelennek meg ezeken a listákon.

Illesztőprogramok listázása a PowerShellből a Get-WindowsDriver paranccsal

Összetettebb forgatókönyvek esetén, különösen, ha Windows offline lemezképek (például csatolt WIM-ek esetén), a cmdlet nagyon hasznos Get-WindowsDriver, amely a PowerShellből elérhető DISM eszközök része.

Ez a parancsmag lehetővé teszi az illesztőprogram-csomagokkal kapcsolatos információk megjelenítését mind a futó Windows-telepítéshez, mind egy mappába csatolt rendszerképhez. A fő szintaxis két fő felhasználási módra oszlik: offline és online.

  Hogyan töröljünk használatban lévő fájlokat Windows rendszerben lépésről lépésre

A offline kép csatolva egy mappábaAz általános forma a következő lenne:

Get-WindowsDriver -Path "C:\offline"

És a futó rendszer ellen dolgozva a paramétert kellene használnia -Online:

Get-WindowsDriver -Online

További paraméterek nélkül, Get-WindowsDriver visszaadja a harmadik féltől származó illesztőprogramok listáját jelen van a képen. Ha hozzáadod a módosítót -ÖsszesA Windowsban alapértelmezés szerint alapértelmezett illesztőprogramokat is látni fog.

A Get-WindowsDriver főbb paraméterei

Az egyik legfontosabb paraméter az -Sofőramely lehetővé teszi, hogy megadja egy adott .inf fájl vagy .inf fájlokat tartalmazó mappa Az illesztőprogramokkal kapcsolatos részletes információk beszerzéséhez. Ha egy mappára mutat, a nem érvényes illesztőprogram-csomagok .inf fájljait a rendszer automatikusan figyelmen kívül hagyja.

Amikor offline képpel dolgozik, a paraméter -Pálya megadja a felcsatolt kép gyökérkönyvtárának elérési útját. Ha a Windows mappa nem a megfelelő gyökérkönyvtárszinten található, akkor a következőt használhatja: -Windows könyvtár hogy megadja a relatív almappát, ahol található.

Paraméter -Rendszermeghajtó Speciálisabb esetekben használják, például amikor Windows PE környezetben dolgozunk, és a rendszerindító kezelő egy másik partíción található. Ilyen esetekben arra szolgál, hogy meghatározza azt a meghajtót, amelyen a BootMgr fájlokat kiszolgálni kell.

A tevékenységnaplóval kapcsolatban a paraméter -LogPath Lehetővé teszi a naplófájl teljes elérési útjának meghatározását. Ha nem módosítja, akkor az alapértelmezett elérési út lesz érvényben. %WINDIR%\Logs\Dism\dism.logvagy Windows PE esetén a RAM-ban lévő üres hely. Eközben -Naplózási szint meghatározza a napló részletességét, az értékek a hibáktól a hibakeresési információkig terjednek.

Végül a paraméter -Scratch könyvtár Ez az ideiglenes mappa, ahová a szolgáltatások műveletei során a fájlok kicsomagolásra kerülnek. Helyi elérési útnak kell lennie, és a művelet befejezése után a ideiglenes fájlok Automatikusan eltávolítódnak, így nem maradnak maradványok.

Gyakorlati példák a Get-WindowsDriver használatával

A jelenlegi Windows-telepítés összes illesztőprogramjának gyors megtekintéséhez futtassa a következő parancsot:

Get-WindowsDriver -Online -All

Ez a parancs fog megjelenni minden illesztőprogram (mind a rendszer, mind a harmadik féltől származó) jelen van a futó rendszerképben. Ez egy nagyon közvetlen módja annak, hogy megtekinthessük, mely csomagok vannak telepítve, WMI vagy Eszközkezelő használata nélkül.

Ha a kép csatolva a C:\offline könyvtárba És ha csak harmadik féltől származó illesztőprogramokat szeretne ellenőrizni, akkor a következőket teheti:

Get-WindowsDriver -Path "C:\offline"

Ha egy adott OEM-illesztőprogram részletes jelentését szeretné megtekinteni a képfájlban, egyszerűen adja meg az .inf fájlt:

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

Akár egy adott illesztőprogram-útvonalon található .inf fájlt is elérhet, például:

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

Mindezekben az esetekben A Get-WindowsDriver objektumokat ad vissza amelyet a Select-Object, Where-Object vagy Export-CSV metódusokba irányíthat át az információk szűréséhez, rendezéséhez vagy exportálásához a legmegfelelőbb formátumba.

PowerShell és SCCM: Get-CMDriver az illesztőprogram-katalógusokhoz

Amikor egy vállalati környezetet kezelsz Konfigurációkezelő (SCCM)Nemcsak az egyes számítógépeken található illesztőprogramok érdekelnek, hanem az SCCM által a képfájlok és csomagok telepítéséhez használt központi illesztőprogram-katalógus is.

Ebben az összefüggésben a cmdlet kerül képbe. Get-CMDriver, Ez működik Információk lekérése a Configuration Manager által kezelt eszközillesztőkbőlEnnek a parancsmagnak több aláírása is van attól függően, hogy mit szeretne lekérdezni: név, numerikus azonosító, illesztőprogram-csomag vagy adminisztratív kategória alapján.

Az alapvető szintaxis olyan változatokat tartalmaz, mint például:

Get-CMDriver

Get-CMDriver -DriverPackageId <String>

Get-CMDriver -DriverPackageName <String>

Get-CMDriver -Id <Int32>

Get-CMDriver -InputObject <IResultObject>

Ezekkel a paraméterekkel a lekérdezéseket az SCCM katalógusra irányíthatja, szűrve a következők szerint: illesztőprogram neve, azonosítója, társított csomagok vagy adminisztratív kategóriák amelyeket a vezérlők rendszerezéséhez definiált.

Példák a Get-CMDriver paranccsal

Ha ismeri egy adott illesztőprogram nevét, például a „Surface Serial Hub Driver”-t, akkor a következőképpen szerezheti be az adatait:

Get-CMDriver -Name "Surface Serial Hub Driver"

Ha több olyan illesztőprogramot kell ellenőriznie, amelyek nevében ugyanaz az előtag szerepel (például a teljes Surface illesztőprogram-család esetében), és csak néhány releváns tulajdonságot szeretne látni, használhat valami ilyesmit:

  Beszerzés sikertelen – Nem megfelelő engedélyek hiba a Chrome-ban

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

A módosító -Gyors Csökkenti a lekérdezendő információk mennyiségét és felgyorsítja a lekérdezést, ami nagy katalógusokban elég észrevehető. Ezután a Select-Object segítségével Csak azokat az oszlopokat tartod meg, amelyek hasznosak számodra az elemzésedhez.

Ha adminisztratív kategóriákat kezel (például egy „Felület” kategóriát, ahol az összes vezérlőt csoportosítja), akkor a kategóriák és illesztőprogramok lekérését a következőképpen láncolhatja össze:

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

Ebben az esetben először egy változóban tárolja a kategóriát, majd megkéri a Get-CMDriver függvényt, hogy adja vissza azt Önnek. az adott kategóriához tartozó összes vezérlő, ami nagyon hasznos a vezérlők logikai nézeteinek SCCM-ben történő fenntartásához.

Korlátozások a dinamikusan betöltött illesztőprogramok listázásakor

Nem minden sofőr viselkedik ugyanúgy. Vannak eszközök, például néhány a csomagban. Sysinternals (például Process Explorer vagy handle.exe)amelyek dinamikusan injektálják a meghajtóprogramokat a kernelbe végrehajtásukkor anélkül, hogy azokat hagyományos, indításkor betöltődő szolgáltatásként regisztrálnák.

Tipikus példa erre a sofőr procexp152.sys (vagy korábbi verziók, például a procexp113.sys), amelyek a Process Explorerhez vannak társítva. Ez a típusú illesztőprogram nem feltétlenül jelenik meg a szokásos lekérdezésekben. Get-WmiObject Win32_SystemDrivermivel ezek a lekérdezések a rendszerleíró szolgáltatásokból (CurrentControlSet\Services) származó információkra támaszkodnak, és általában főként a rendszerrel betöltött illesztőprogramokat tükrözik.

Hasonlóképpen, A driverquery nem feltétlenül listázza ki az összes dinamikusan befecskendezett illesztőprogramotTehát, ha BSOD-okat vagy a saját illesztőprogramjaikat betöltő harmadik féltől származó eszközök által okozott rendellenes viselkedést hibakeresel, akkor lehet, hogy más módszerekhez kell folyamodnod.

Ezen alternatívák között szerepel megvizsgálni memória dumpok kernel olyan eszközökkel, mint a WinDbg, vagy használjon olyan segédprogramokat, mint a verifier.exeAz illesztőprogram-ellenőrző lehetővé teszi a figyelni kívánt illesztőprogramok kiválasztását és az instabil viselkedés észlelését, de a grafikus felület több felsorolási lehetőséget kínál, mint a parancssori verzió, amely a lekérdezésre és az ellenőrzés konfigurálására összpontosít.

Röviden, egy általános leltárhoz és a legtöbb adminisztratív igényhez, A PowerShell, a WMI és a Get-WindowsDriver nagyon jól lefedi az alapokat.A forrón betöltött illesztőprogramok hibakeresésének szélsőséges eseteiben azonban kernel elemző eszközökkel kell kiegészíteni a folyamatot.

Illesztőprogramok frissítése PowerShell-lel a PSWindowsUpdate használatával

Az illesztőprogramok listázása mellett sok rendszergazda a PowerShell-t is használja a következőkre: automatizálja az illesztőprogram-frissítéseket a windows Update és az is frissítse a hangillesztőprogramokatAz egyik gyakran használt módszer a PSWindowsUpdate modul használata, amely kiterjeszti a szabványos frissítési parancsmagokat.

A szokásos áramlás áthalad aláírt szkriptek végrehajtásának ideiglenes engedélyezéseTelepítse a modult, majd kérjen illesztőprogram-frissítéseket közvetlenül a Microsoft szervereiről.

Egy tipikus parancskészlet lehet a következő:

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

Ez a szekvencia engedélyezi a szkriptek végrehajtását az aktuális munkamenetben, telepíti és importálja a PSWindowsUpdate modult, Ellenőrized, milyen frissítések érhetők el. Végül pedig kéred, hogy a Microsoft Update-en keresztül telepítsék őket az „Illesztőprogram” kategóriából, lehetővé téve a rendszer automatikus újraindítását, ha szükséges.

A hatókört egy olyan parancs használatával is bővítheti, amely telepíti a Microsoft Update által észlelt összes frissítést, majd beavatkozás nélkül újraindítja a gépet, például:

Get-WindowsUpdate -MicrosoftUpdate -Install -AutoReboot

Ez a munkamódszer különösen praktikus a nagy csapatparkokItt érdemes szabványosítani az illesztőprogram-verziókat anélkül, hogy egyesével kellene haladni. Azonban mindig ajánlott ezt kombinálni az illesztőprogramok előzetes, jó minőségű leltárával, és kritikus környezetekben egy kísérleti csoportban tesztelni, mielőtt a teljes szervezetben bevezetnék.

Windows perifériák, illesztőprogram-problémák
Kapcsolódó cikk:
Teljes útmutató a szellemeszközök és az árva illesztőprogramok eltávolításához Windows rendszerben