Jak zobrazit a spravovat ovladače z PowerShellu ve Windows

Poslední aktualizace: 04/12/2025
Autor: Isaac
  • PowerShell Umožňuje vám vytvářet seznamy, filtrovat a exportovat ovladače s cmdlety jako Get-WmiObject a Get-WindowsDriver.
  • driverquery, ten Správce zařízení a SCCM (Get-CMDriver) doplňují inventář řadiče.
  • Některé dynamicky načítané ovladače vyžadují další nástroje, jako je WinDbg nebo verifikátor.
  • Moduly jako PSWindowsUpdate a externí nástroje usnadňují aktualizaci a udržování ovladačů aktuálních.

Výpis ovladačů z PowerShellu

V prostředí Windows, kontrola nainstalovaných ovladačů a jejich verze Je klíčem k udržení stability systému, řešení problémů s modrými obrazovkami nebo přípravě na migrace. PowerShell se stal neuvěřitelně pohodlným nástrojem pro provádění tohoto typu inventury, aniž byste museli procházet Správce zařízení jeden po druhém.

V následujících řádcích uvidíte Jak různými způsoby vypsat kontroléry z PowerShellu a jak je exportovat k souborům, aby je klidně analyzovali, jaké jsou mezi nimi rozdíly oproti ostatním příkazy jak driverquery nebo grafické nástroje a dokonce i to, jak zvládat pokročilejší scénáře, jako jsou offline obrazy nebo dynamicky načítané ovladače.

Co je to ovladač a proč byste ho chtěli vypsat z PowerShellu?

Ovladače zařízení ve Windows

Ve Windows je to řadič nebo ovladač malý blok softwaru, který funguje jako prostředník mezi operačním systémem a jeho součástí technické vybavení (grafická karta, čipset, skladováníperiferie USBatd.). Ačkoliv objem kódu, který zabírají, není obrovský, jejich dopad na stabilitu systému je gigantický.

Když kritický řidič (například úložiště, síť, grafika nebo čipová sada) poruchy, mohou způsobit havárie, ztrátu výkonu a dokonce modré obrazovky (BSOD)Proto je mít přehledný seznam nainstalovaných ovladačů a jejich verzí tak užitečné, když ladíte chyby nebo se připravujete na velkou aktualizaci.

Než se vrhnete na změnu, odinstalaci nebo vrácení ovladačů zpět, je to dobrý nápad minimalizujte rizika pomocí bodu obnovení systémuTímto způsobem se můžete vrátit do předchozího stavu, pokud se aktualizace ovladače pokazí a počítač se začne chovat podivně nebo se ani správně nespustí.

Kromě restaurace je vhodné zálohujte důležitá data (dokumenty, fotografie, pracovní projekty atd.), zejména pokud se chystáte pracovat s ovladači úložiště, protože chyba může způsobit, že systém disky správně nepřipojí nebo poškodí informace.

Základní příkaz v PowerShellu pro zobrazení seznamu nainstalovaných ovladačů

Nejpřímější způsob, jak získat inventář řadičů z PowerShellu, je spoléhat se na WMIJeden z nejčastěji používaných příkazů je:

Get-WmiObject Win32_PnPSignedDriver | Select DeviceName, DriverVersion

S touto rutinou PowerShell se dotazuje na třídu WMI Win32_PnPSignedDriver. a vrátí seznam podepsaných ovladačů PnP spolu s názvem zařízení a verzí ovladače, kterou má systém aktuálně přidruženou.

Pokud chcete získat více kontextu o každém ovladači, můžete přidat pole jako například popisný název, datum vydání nebo výrobce. Například:

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

Díky této konzultaci získáte Mnohem úplnější informace pro každou položkuTo vám umožní detekovat starší verze, konkrétní výrobce nebo ovladače, které nebyly aktualizovány několik let.

Jak exportovat seznam ovladačů do souboru (TXT nebo CSV)

V reálném světě pouhé zobrazení seznamu na obrazovce jen zřídka stačí. Nejpohodlnější přístup je... uložit výsledek do souboru analyzovat jej v Excelu, sdílet ho s týmem nebo si ho uchovat jako snímek stavu systému před provedením jakýchkoli změn, například před smazat staré ovladače.

Pokud potřebujete pouze rychlý výpis v prostém textu, můžete výstup přesměrovat do souboru:

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

Tento příkaz vytvoří soubor C:\drivers.txt s jednoduchým seznamem zařízení a verzí. Ideální pro rychlou orientaci nebo připojení k reportu bez větších potíží.

Pokud hledáte něco lépe spravovatelného pro filtrování a řazení, nejlepší možností je použít CSV a rutina Export-CSVVelmi častým příkladem by bylo:

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

Pomocí tohoto příkazu se vytvoří soubor s názvem MojeŘidiči.csv které můžete otevřít v Excelu nebo jakémkoli tabulkovém programu Řadit podle verze, filtrovat podle data ovladače, vyhledávat konkrétní výrobce, Etc.

I když se někdy říká, že PowerShell „neumožňuje export“ seznamu ovladačů, ve skutečnosti... Ano, lze to perfektně exportovat. Pomocí přesměrování výstupu nebo Export-CSV, jak jste právě viděli. Pak můžete tyto informace kopírovat, vkládat nebo s nimi pracovat, kdekoli chcete.

  25 úžasných nástrojů pro extrahování zvukových souborů z videí

Filtrovat ovladače podle výrobce, názvu nebo konkrétního textu

Obvykle nebudete chtít vidět všechny ovladače najednou, ale raději se zaměříte na konkrétního výrobce nebo typ zařízení. K tomu můžete řetězení filtrů pomocí Where-Object o vlastnostech každého ovladače.

Například pokud máte zájem ponechat si pouze ovladače pro IntelMohli byste udělat něco tak jednoduchého jako:

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

Tento příkaz projde všemi položkami vrácenými službou WMI a Udržuje pouze ty, jejichž název zařízení obsahuje řetězec „Intel“.Použití hvězdičky jako zástupného znaku umožňuje vyhledávat částečné shody kdekoli v textu.

Stejný princip lze použít k nalezení ovladačů souvisejících s konkrétní aplikací nebo typem hardwaru, například pro aktualizovat ovladače USBPokud znáte část názvu, výrobce nebo nějaký vzorec trasy, můžete přizpůsobte filtr nejpohodlnější nemovitosti v každém případě.

Zobrazení ovladačů ze Správce zařízení a dalších nástrojů systému Windows

Přestože je PowerShell velmi výkonný pro automatizaci a export seznamů, Windows stále nabízí klasické grafické nástroje pro správu kontrolérů který by měl být znám a zkombinován s cestou příkazu.

Prvním referenčním bodem je Správce zařízeníK tomu se dostanete kliknutím pravým tlačítkem myši na „Tento počítač“ a výběrem možnosti „Spravovat“ nebo rychleji pomocí kontextové nabídky tlačítka Start (Windows + X). Zde se zobrazí strom se všemi kategoriemi hardwaru nainstalovanými v systému.

Zařízení, která mají problémy s instalací nebo provozem, se často objevují s žlutá ikona varováníPokud na kterýkoli z nich dvakrát kliknete, otevře se okno vlastností, kde můžete zkontrolovat stav zařízení a zobrazit kartu „Ovladač“.

V dané záložce najdete možnosti, jako například „Podrobnosti o ovladači“, „Aktualizovat ovladač“, „Vrátit zpět ovladač“, „Zakázat“ nebo „Odinstalovat“Tyto akce umožňují zobrazit soubory ovladače, vyhledat nové verze, vrátit se k předchozí verzi, deaktivovat zařízení bez jeho odebrání nebo ovladač ze systému zcela odebrat.

Kromě těchto nástrojů obsahuje systém Windows také příkaz driverquery použít z příkazový řádek (CMD). Běh driverquery Zobrazí se seznam všech nainstalovaných ovladačů a také driverquery /v Zobrazí se podrobnější informace, jako je využití paměti, datum sestavení nebo stav.

driverquery a jeho vztah k PowerShellu

Příkaz driverquery je velmi flexibilní a umožňuje Zobrazení různých zobrazení stavu řidičeNapříklad pokud chcete podrobněji zobrazit pouze podepsané ovladače, můžete spustit:

driverquery /si

Tento režim zobrazuje podepsané řidiče s dalšími užitečnými informacemi pro bezpečnostní audity nebo kontroly integrity. A vždy se můžete obrátit driverquery /? abyste viděli všechny dostupné parametry a upravil výstup podle svých potřeb.

Jednou z výhod driverquery je, že Můžete jej integrovat s PowerShellem pomocí ConvertFrom-CSV.Pokud vygenerujete výstup ve formátu CSV a propojíte ho přes kanál, získáte objekty, se kterými lze manipulovat v PowerShellu. Klasickým příkladem by bylo:

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

S tímhle kombinujete Síla driverquery s manipulací s daty v PowerShelluVýběr pouze sloupců, které vás zajímají: zobrazovaný název, režim spouštění, stránkovaná paměť a cesta k ovladači na disku. To je užitečné, když chcete filtrovat podle konkrétních typů, například grafické ovladače.

Je třeba poznamenat, že jak driverquery, tak i některé standardní dotazy WMI se zaměřují primárně na řidiči registrovaní v systému, mnoho z nich se naložilo do bota nebo spravované prostřednictvím registru v adresáři HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services. Některé ovladače, které jsou dynamicky vkládány za běhu, se v těchto seznamech nemusí zobrazit.

Výpis ovladačů z PowerShellu pomocí Get-WindowsDriver

Pro pokročilejší scénáře, zejména při práci s Offline obrazy systému Windows (například připojené WIMy), je cmdlet velmi užitečný Get-WindowsDriver, který je součástí nástrojů DISM dostupných z PowerShellu.

Tato rutina umožňuje zobrazit informace o balíčcích ovladačů jak pro spuštěnou instalaci systému Windows, tak pro obraz připojený ve složce. Hlavní syntaxe je rozdělena do dvou hlavních režimů použití: offline a online.

  Jak krok za krokem odstranit používané soubory ve Windows

Pro offline obrázek připojený ve složceObecný tvar by byl:

Get-WindowsDriver -Path "C:\offline"

A pro práci proti běžícímu systému byste použili parametr -online:

Get-WindowsDriver -Online

Bez dalších parametrů, Get-WindowsDriver vrátí seznam ovladačů třetích stran přítomný v obrázku. Pokud přidáte modifikátor -VšechnoTaké uvidíte výchozí ovladače, které jsou ve Windows standardně zahrnuty.

Klíčové parametry Get-WindowsDriver

Jedním z nejdůležitějších parametrů je -Řidičcož vám umožňuje specifikovat konkrétní soubor .inf nebo složka souborů .inf Chcete-li získat podrobné informace o těchto ovladačích. Pokud ukážete na složku, soubory .inf, které nejsou platnými balíčky ovladačů, budou automaticky ignorovány.

Pokud pracujete s offline obrázkem, parametr -path určuje kořenovou cestu připojeného obrazu. Pokud se složka Windows nenachází přímo v tomto kořenovém adresáři, můžete použít -Adresář Windows pro určení relativní podsložky, kde se nachází.

Parametr -SystemDrive Používá se ve specifičtějších scénářích, například při práci z prostředí Windows PE, kde se správce spouštění nachází na jiném oddílu. V těchto případech slouží k určení jednotky obsahující soubory BootMgr, které mají být obsluhovány.

Pokud jde o protokol aktivit, parametr -Cesta_protokolu Umožňuje definovat úplnou cestu k souboru protokolu. Pokud ji neupravíte, použije se výchozí cesta. %WINDIR%\Logs\Dism\dism.lognebo ve Windows PE, pomocný prostor v paměti RAM. Mezitím, -Úroveň protokolu určuje podrobnost protokolu s hodnotami od pouhých chyb až po informace o ladění.

Nakonec parametr -Adresář Scratch Toto je dočasná složka, kam se extrahují soubory během servisních operací. Musí se jednat o lokální cestu a po dokončení operace se dočasné soubory Jsou automaticky odstraněny, aby po nich nezůstaly žádné zbytky.

Praktické příklady s Get-WindowsDriver

Chcete-li rychle zobrazit všechny ovladače pro vaši aktuální instalaci systému Windows, můžete spustit:

Get-WindowsDriver -Online -All

Tento příkaz se zobrazí všechny ovladače (systémové i od třetích stran) přítomný v běžícím obrazu. Je to velmi přímý způsob, jak zjistit, které balíčky jsou nainstalovány, bez použití WMI nebo Správce zařízení.

Pokud pracujete s obraz připojený do C:\offline A pokud chcete zkontrolovat pouze ovladače třetích stran, můžete provést následující:

Get-WindowsDriver -Path "C:\offline"

Pokud chcete podrobnou zprávu o konkrétním ovladači OEM v daném obrazu, jednoduše zadejte soubor .inf:

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

Můžete dokonce přistupovat k souboru .inf umístěnému v cestě k určitému ovladači, například:

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

Ve všech těchto případech Get-WindowsDriver vrací objekty které můžete přesměrovat do Select-Object, Where-Object nebo Export-CSV pro filtrování, třídění nebo export informací do formátu, který vám nejlépe vyhovuje.

PowerShell a SCCM: Get-CMDriver pro katalogy ovladačů

Když spravujete firemní prostředí s Správce konfigurace (SCCM)Nezajímají vás jen ovladače na každém počítači, ale také centralizovaný katalog ovladačů, který SCCM udržuje pro nasazení obrazů a balíčků.

V této souvislosti přichází na řadu cmdlet. Get-CMDriver, To funguje Načtení informací z ovladačů zařízení spravovaných nástrojem Configuration ManagerTato rutina má několik signatur v závislosti na tom, co chcete dotazovat: podle názvu, podle číselného identifikátoru, podle balíčku ovladače nebo podle administrativní kategorie.

Základní syntaxe zahrnuje varianty jako například:

Get-CMDriver

Get-CMDriver -DriverPackageId <String>

Get-CMDriver -DriverPackageName <String>

Get-CMDriver -Id <Int32>

Get-CMDriver -InputObject <IResultObject>

Pomocí těchto parametrů můžete směrovat své dotazy do katalogu SCCM a filtrovat podle název ovladače, identifikátor, přidružené balíčky nebo administrativní kategorie které jste definovali pro organizaci vašich řadičů.

Příklady s Get-CMDriver

Pokud znáte název konkrétního ovladače, například „Ovladač sériového rozbočovače Surface“, můžete jeho podrobnosti získat pomocí:

Get-CMDriver -Name "Surface Serial Hub Driver"

Pokud potřebujete zkontrolovat několik ovladačů, které sdílejí stejnou předponu v názvu (například celá rodina ovladačů Surface) a chcete zobrazit pouze některé relevantní vlastnosti, můžete použít například:

  Získání se nezdařilo – Chyba nedostatečného oprávnění v prohlížeči Chrome

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

Modifikátor -Rychle Snižuje to množství načtených informací a zrychluje dotazování, což je u velkých katalogů docela patrné. Pak s Select-Object, Ponecháte si pouze sloupce, které jsou pro vás užitečné pro vaši analýzu.

Pokud spravujete administrativní kategorie (například kategorii „Povrch“, kde seskupujete všechny tyto řadiče), můžete řetězit vyhledávání kategorií a ovladačů takto:

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

V tomto případě nejprve uložíte kategorii do proměnné a poté požádáte Get-CMDriver, aby vám ji vrátil. všechny řídicí jednotky spojené s danou kategorií, což je velmi užitečné pro udržování logických zobrazení vašich řadičů v SCCM.

Omezení při výpisu dynamicky načítaných ovladačů

Ne všechny ovladače se chovají stejně. Existují nástroje, například některé v sadě. Sysinternals (například Process Explorer nebo handle.exe)které dynamicky vkládají ovladače do jádra při jejich spuštění, aniž by je registrovaly jako tradiční služby načítané při startu.

Typickým příkladem je řidič procexp152.sys (nebo starší verze, jako například procexp113.sys), spojené s Process Explorerem. Tento typ ovladače se nemusí zobrazovat ve standardních dotazech Get-WmiObject Win32_SystemDriverprotože tyto dotazy se spoléhají na informace z registrových služeb (CurrentControlSet\Services) a obvykle odrážejí hlavně ovladače, které jsou načteny se systémem.

Podobně, driverquery nemusí vypsat všechny dynamicky vložené ovladače.Pokud tedy ladíte BSODy nebo anomální chování způsobené nástroji třetích stran, které načítají vlastní ovladače, možná budete muset uchýlit se k jiným metodám.

Mezi tyto alternativy patří prozkoumat výpisy paměti jádro s nástroji jako WinDbg nebo použijte utility jako verifier.exeOvěřovač ovladačů umožňuje vybrat ovladače, které chcete monitorovat a detekovat nestabilní chování, ale grafické rozhraní nabízí více možností výčtu než verze z příkazového řádku, která se zaměřuje na dotazování a konfiguraci ověřování.

Stručně řečeno, pro obecnou inventuru a pro většinu administrativních potřeb, PowerShell, WMI a Get-WindowsDriver velmi dobře pokrývají základy.V extrémních případech ladění ovladačů načítaných za chodu však budete muset doplnit nástroje pro analýzu jádra.

Aktualizace ovladačů pomocí PowerShellu pomocí PSWindowsUpdate

Kromě výpisu ovladačů mnoho administrátorů používá PowerShell k… automatizovat aktualizace ovladačů pomocí Windows Update a také pro aktualizovat ovladače zvukuJednou běžně používanou metodou je modul PSWindowsUpdate, který rozšiřuje standardní rutiny aktualizace.

Obvyklý tok prochází dočasně povolit spouštění podepsaných skriptůNainstalujte modul a poté si vyžádejte aktualizace ovladačů přímo ze serverů společnosti Microsoft.

Typická sada příkazů by mohla být:

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

Tato sekvence povoluje spuštění skriptu pro aktuální relaci, instaluje a importuje modul PSWindowsUpdate, Zkontrolujete, jaké aktualizace jsou k dispozici. A nakonec požádáte o jejich instalaci z kategorie „Ovladač“ prostřednictvím služby Microsoft Update, což umožní systému v případě potřeby automatický restart.

Rozsah můžete také rozšířit pomocí příkazu, který nainstaluje všechny aktualizace zjištěné z Microsoft Update a restartuje systém bez zásahu, například:

Get-WindowsUpdate -MicrosoftUpdate -Install -AutoReboot

Tento způsob práce je obzvláště praktický v velké týmové parkyZde je důležité standardizovat verze ovladačů, aniž byste postupovali jednu po druhé. Vždy je však vhodné to zkombinovat s dobrou předchozí inventurou ovladačů a v kritických prostředích je před nasazením v celé organizaci otestovat v pilotní skupině.

Problémy s periferiemi a ovladači systému Windows
Související článek:
Kompletní průvodce odebráním zařízení Ghost a osiřelých ovladačů ve Windows