Paano ilista at pamahalaan ang mga driver mula sa PowerShell sa Windows

Huling pag-update: 04/12/2025
May-akda: Isaac
  • PowerShell Pinapayagan ka nitong ilista, i-filter, at i-export driver na may mga cmdlet tulad ng Get-WmiObject at Get-WindowsDriver.
  • driverquery, ang Device Manager at SCCM (Get-CMDriver) ay umakma sa imbentaryo ng controller.
  • Ang ilang mga driver na may dynamic na load ay nangangailangan ng mga karagdagang tool gaya ng WinDbg o verifier.
  • Pinapadali ng mga module tulad ng PSWindowsUpdate at mga panlabas na utility ang pag-update at panatilihing napapanahon ang mga driver.

Ilista ang mga driver mula sa PowerShell

Sa mga kapaligiran ng Windows, kontrolin kung aling mga driver ang naka-install at kung anong bersyon ang mayroon ang bawat isa Ito ay susi sa pagpapanatili ng katatagan ng system, pag-troubleshoot ng mga asul na screen, o paghahanda para sa mga paglilipat. Ang PowerShell ay naging isang hindi kapani-paniwalang maginhawang tool para sa pagsasagawa ng ganitong uri ng imbentaryo nang hindi kinakailangang dumaan sa Device Manager nang paisa-isa.

Sa mga sumusunod na linya makikita mo Paano maglista ng mga controller mula sa PowerShell sa iba't ibang paraan, at kung paano i-export ang mga ito sa mga file upang pag-aralan ang mga ito nang mahinahon, kung anong mga pagkakaiba ang mayroon sa iba comandos bilang tanong ng driver o mga graphical na tool, at maging kung paano pangasiwaan ang mga mas advanced na sitwasyon gaya ng mga offline na larawan o mga driver na dynamic na na-load.

Ano ang driver at bakit mo ito gustong ilista mula sa PowerShell?

Mga driver ng device sa Windows

Sa Windows, ang isang controller o driver ay isang maliit na bloke ng software na nagsisilbing tagapamagitan sa pagitan ng operating system at isang bahagi ng hardware (graphics card, chipset, imbakanmga peripheral USBatbp.). Kahit na ang code na kanilang sinasakop ay hindi napakalaki, ang kanilang epekto sa katatagan ng system ay napakalaki.

Kapag ang isang kritikal na driver (halimbawa, storage, network, graphics o chipset) malfunctions, maaaring magdulot ng mga pag-crash, pagkawala ng performance at maging mga asul na screen (BSOD)Kaya naman ang pagkakaroon ng malinaw na listahan ng mga naka-install na driver at ang kanilang bersyon ay lubhang kapaki-pakinabang kapag nagde-debug ka ng mga bug o naghahanda para sa isang malaking update.

Bago ka magmadaling magpalit, mag-uninstall, o mag-roll back ng mga driver, magandang ideya ito bawasan ang mga panganib gamit ang isang system restore pointSa ganitong paraan maaari kang bumalik kung ang isang pag-update ng driver ay nagkamali at ang computer ay nagsimulang kumilos nang kakaiba o hindi man lang nag-boot nang tama.

Bilang karagdagan sa restaurant, ito ay ipinapayong i-back up ang mahalagang data (mga dokumento, larawan, proyekto sa trabaho, atbp.), lalo na kung hahawakan mo ang mga driver ng storage, dahil ang isang pagkakamali ay maaaring maging sanhi ng hindi pag-mount ng system ng mga drive nang tama o sira ang impormasyon.

Pangunahing utos sa PowerShell upang ilista ang mga naka-install na driver

Ang pinakadirektang paraan upang makakuha ng imbentaryo ng controller mula sa PowerShell ay umasa sa WMIAng isa sa mga karaniwang ginagamit na utos ay:

Get-WmiObject Win32_PnPSignedDriver | Select DeviceName, DriverVersion

Gamit ang cmdlet na ito, Kinu-query ng PowerShell ang Win32_PnPSignedDriver WMI na klase at nagbabalik ng listahan ng mga naka-sign na driver ng PnP, kasama ang pangalan ng device at ang bersyon ng driver na kasalukuyang nauugnay dito ng system.

Kung gusto mo ng kaunti pang konteksto tungkol sa bawat driver, maaari kang magdagdag ng mga field tulad ng magiliw na pangalan, petsa ng publikasyon, o tagagawa. Halimbawa:

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

Sa konsultasyon na ito, makakakuha ka Mas kumpletong impormasyon para sa bawat entryNagbibigay-daan ito sa iyong makita ang mga mas lumang bersyon, partikular na manufacturer, o driver na hindi na-update sa loob ng maraming taon.

Paano i-export ang listahan ng driver sa isang file (TXT o CSV)

Sa real-world na mga setting, ang pagtingin lang sa listahan sa screen ay bihirang sapat. Ang pinaka maginhawang diskarte ay... i-save ang resulta sa isang file upang suriin ito sa Excel, ibahagi ito sa koponan, o panatilihin ito bilang isang snapshot ng estado ng system bago gumawa ng anumang mga pagbabago, halimbawa, bago tanggalin ang mga lumang driver.

Kung kailangan mo lang ng mabilis na listahan ng plain text, maaari mong i-redirect ang output sa isang file:

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

Ang utos na iyon ay lumilikha ng isang file C:\drivers.txt na may simpleng listahan ng device at bersyon. Tamang-tama para sa mabilis na sanggunian o pag-attach sa isang ulat nang walang masyadong abala.

Kapag naghahanap ka ng mas madaling pamahalaan para sa pag-filter at pag-uuri, ang pinakamagandang opsyon ay ang gamitin CSV at ang Export-CSV cmdletAng isang napaka-karaniwang halimbawa ay:

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

Gamit ang command na ito, isang file na pinangalanan MyDrivers.csv na maaari mong buksan sa Excel o anumang spreadsheet program pagbukud-bukurin ayon sa bersyon, salain ayon sa petsa ng driver, maghanap ng mga partikular na tagagawa, Atbp

Kahit na minsan ay sinasabi na ang PowerShell ay "hindi pinapayagan ang pag-export" ng listahan ng driver, sa katotohanan Oo, maaari itong i-export nang perpekto. Gamit ang pag-redirect ng output o Export-CSV, tulad ng nakita mo lang. Pagkatapos ay maaari mong kopyahin, i-paste, o gamitin ang impormasyong iyon saan mo man gusto.

  25 Mga Kahanga-hangang Tool para Mag-extract ng Mga Audio File mula sa Mga Video

I-filter ang mga driver ayon sa manufacturer, pangalan, o partikular na text

Karaniwan, hindi mo nais na makita ang lahat ng mga driver nang sabay-sabay, ngunit sa halip ay tumuon sa isang partikular na tagagawa o uri ng device. Para diyan, kaya mo chaining filter na may Where-Object tungkol sa mga katangian ng bawat driver.

Halimbawa, kung interesado kang panatilihin lamang ang mga driver para sa IntelMaaari kang gumawa ng isang bagay na kasing simple ng:

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

Ang utos na ito ay umuulit sa lahat ng mga entry na ibinalik ng WMI at Pinapanatili lamang nito ang mga may pangalan ng device na naglalaman ng string na "Intel"Ang paggamit ng asterisk bilang wildcard ay nagbibigay-daan sa iyong maghanap ng mga bahagyang tugma saanman sa teksto.

Ang parehong ideya ay maaaring gamitin upang mahanap ang mga driver na nauugnay sa isang partikular na application o uri ng hardware, halimbawa para sa i-update ang mga USB driverKung alam mo ang bahagi ng pangalan, ang tagagawa, o ilang pattern ng ruta, maaari mo iakma ang filter sa pinakakumportableng pag-aari sa bawat kaso.

Tingnan ang mga driver mula sa Device Manager at iba pang mga tool sa Windows

Bagama't napakalakas ng PowerShell para sa pag-automate at pag-export ng mga listahan, nag-aalok pa rin ang Windows mga klasikong graphical na tool para sa pamamahala ng mga controller na dapat malaman at isama sa command path.

Ang unang reference point ay ang Device ManagerMaa-access ito sa pamamagitan ng pag-right-click sa "This PC" at pagpili sa "Manage," o mas mabilis gamit ang context menu ng Start button (Windows + X). Doon ay makikita mo ang isang puno na may lahat ng mga kategorya ng hardware na naka-install sa system.

Madalas na lumalabas ang mga device na may mga problema sa pag-install o pagpapatakbo isang dilaw na icon ng babalaKung nag-double click ka sa alinman sa mga ito, bubukas ang window ng mga property, kung saan maaari mong suriin ang status ng device at i-access ang tab na "Driver".

Sa loob ng tab na iyon ay makikita mo ang mga opsyon tulad ng "Mga detalye ng driver", "I-update ang driver", "I-roll back ang driver", "I-disable" o "I-uninstall"Nagbibigay-daan sa iyo ang mga pagkilos na ito na tingnan ang mga file ng driver, maghanap ng mga bagong bersyon, bumalik sa nakaraang bersyon, huwag paganahin ang device nang hindi ito inaalis, o ganap na alisin ang driver sa system.

Bilang karagdagan sa mga tool na ito, kasama sa Windows ang command tanong ng driver gamitin mula sa command prompt (CMD). Tumatakbo driverquery Makakakuha ka ng isang listahan ng lahat ng mga naka-install na driver, at may driverquery /v Makakakita ka ng mas detalyadong impormasyon, gaya ng paggamit ng memorya, petsa ng pagbuo, o status.

driverquery at ang kaugnayan nito sa PowerShell

Ang driverquery command ay napaka-flexible at nagbibigay-daan Tingnan ang iba't ibang view ng katayuan ng driverHalimbawa, kung gusto mong ilista lamang ang mga naka-sign na driver nang mas detalyado, maaari mong patakbuhin ang:

driverquery /si

Ipinapakita ang mode na ito pinirmahang mga driver na may karagdagang kapaki-pakinabang na impormasyon para sa mga pag-audit sa seguridad o mga pagsusuri sa integridad. At maaari kang palaging kumunsulta driverquery /? upang makita ang lahat ng magagamit na mga parameter at ayusin ang output sa iyong mga pangangailangan.

Isa sa mga pakinabang ng driverquery ay iyon Maaari mo itong isama sa PowerShell gamit ang ConvertFrom-CSVKung bubuo ka ng output sa CSV na format at i-pipe ito, makakakuha ka ng mga bagay na maaaring manipulahin mula sa PowerShell. Ang isang klasikong halimbawa ay:

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

Sa ito pagsamahin mo Ang lakas ng driverquery sa pagmamanipula ng data ng PowerShellPinipili lang ang mga column kung saan ka interesado: display name, startup mode, paged memory, at driver path sa disk. Ito ay kapaki-pakinabang kapag gusto mong mag-filter ayon sa mga partikular na uri, gaya ng mga graphic driver.

Dapat tandaan na ang parehong driverquery at ilang karaniwang mga query sa WMI ay pangunahing nakatuon sa mga driver na nakarehistro sa system, marami sa kanila ang nag-load sa boot o pinamamahalaan sa pamamagitan ng pagpapatala sa HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services. Ang ilang mga driver na dynamic na na-inject sa runtime ay maaaring hindi lumabas sa mga listahang ito.

Maglista ng mga driver mula sa PowerShell gamit ang Get-WindowsDriver

Para sa mas advanced na mga sitwasyon, lalo na kapag nagtatrabaho kasama Windows offline na mga imahe (halimbawa, mga naka-mount na WIM), ang cmdlet ay lubhang kapaki-pakinabang Kumuha-WindowsDriver, na bahagi ng mga tool sa DISM na naa-access mula sa PowerShell.

Binibigyang-daan ka ng cmdlet na ito na magpakita ng impormasyon tungkol sa mga pakete ng driver para sa parehong tumatakbong pag-install ng Windows at isang imaheng naka-mount sa isang folder. Ang pangunahing syntax ay nahahati sa dalawang pangunahing paraan ng paggamit: offline at online.

  Paano tanggalin ang mga file na ginagamit sa Windows hakbang-hakbang

Para sa isang offline na larawang naka-mount sa isang folderAng pangkalahatang anyo ay magiging:

Get-WindowsDriver -Path "C:\offline"

At upang gumana laban sa tumatakbong sistema, gagamitin mo ang parameter -On-line:

Get-WindowsDriver -Online

Nang walang karagdagang mga parameter, Get-WindowsDriver ibinabalik ang listahan ng mga third-party na driver naroroon sa larawan. Kung idadagdag mo ang modifier -LahatMakikita mo rin ang mga default na driver na kasama bilang default sa Windows.

Mga pangunahing parameter ng Get-WindowsDriver

Ang isa sa mga pinakamahalagang parameter ay -Driverna nagpapahintulot sa iyo na tukuyin isang partikular na .inf file o isang folder ng .inf file Upang makakuha ng detalyadong impormasyon tungkol sa mga driver na iyon. Kung itinuro mo ang isang folder, ang mga .inf file na hindi wastong driver package ay awtomatikong hindi papansinin.

Kapag nagtatrabaho ka sa isang offline na larawan, ang parameter -Daan tumutukoy sa root path ng naka-mount na imahe. Kung ang folder ng Windows ay hindi tama sa antas ng ugat na iyon, maaari mong gamitin - Direktoryo ng Windows upang tukuyin ang kamag-anak na subfolder kung saan ito matatagpuan.

Parameter -SystemDrive Ginagamit ito sa mas partikular na mga sitwasyon, tulad ng kapag nagtatrabaho mula sa Windows PE at ang boot manager ay nasa ibang partition. Sa mga kasong ito, nagsisilbi itong tukuyin ang drive na naglalaman ng mga BootMgr file na dapat ihatid.

Tungkol sa log ng aktibidad, ang parameter -LogPath Hinahayaan ka nitong tukuyin ang buong landas sa log file. Kung hindi mo ito aayusin, ginagamit ang default na landas. %WINDIR%\Logs\Dism\dism.logo sa Windows PE, ang scratch space sa RAM. Samantala, -LogLevel tinutukoy ang verbosity ng log, na may mga halaga mula sa mga error lamang hanggang sa pagsasama ng impormasyon sa pag-debug.

Sa wakas, ang parameter -Scratch Directory Ito ang pansamantalang folder kung saan kinukuha ang mga file sa mga operasyon ng serbisyo. Ito ay dapat na isang lokal na landas at, sa sandaling makumpleto ang operasyon, ang pansamantalang mga file Awtomatikong inaalis ang mga ito upang walang iwanan.

Mga praktikal na halimbawa sa Get-WindowsDriver

Upang mabilis na makita ang lahat ng mga driver para sa iyong kasalukuyang pag-install ng Windows, maaari mong patakbuhin ang:

Get-WindowsDriver -Online -All

Ipapakita ang utos na ito lahat ng mga driver (parehong system at third-party) naroroon sa tumatakbong larawan. Ito ay isang direktang paraan upang makita kung aling mga pakete ang naka-install nang hindi gumagamit ng WMI o Device Manager.

Kung ikaw ay nagtatrabaho sa isang larawang naka-mount sa C:\offline At kung gusto mo lang suriin ang mga driver ng third-party, magagawa mo ang sumusunod:

Get-WindowsDriver -Path "C:\offline"

Kung gusto mo ng detalyadong ulat ng isang partikular na driver ng OEM sa loob ng larawang iyon, tukuyin lang ang .inf file:

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

Maaari mo ring i-access ang isang .inf file na matatagpuan sa isang partikular na landas ng driver, halimbawa:

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

Sa lahat ng kasong ito, Ang Get-WindowsDriver ay nagbabalik ng mga bagay na maaari mong i-pipe sa Select-Object, Where-Object o Export-CSV upang i-filter, ayusin o i-export ang impormasyon sa format na pinakaangkop sa iyo.

PowerShell at SCCM: Get-CMDriver para sa mga katalogo ng driver

Kapag pinamamahalaan mo ang isang corporate environment na may Configuration Manager (SCCM)Hindi ka lang interesado sa mga driver sa bawat computer, kundi pati na rin sa sentralisadong catalog ng mga driver na pinapanatili ng SCCM para sa pag-deploy ng mga larawan at package.

Sa kontekstong iyon, ang cmdlet ay naglalaro. Kumuha-CMDriver, Iyon ay gumagana para sa Kunin ang impormasyon mula sa mga driver ng device na pinamamahalaan ng Configuration ManagerAng cmdlet na ito ay may ilang mga lagda depende sa kung ano ang gusto mong i-query: sa pamamagitan ng pangalan, sa pamamagitan ng numeric identifier, sa pamamagitan ng driver package, o sa pamamagitan ng administratibong kategorya.

Kasama sa pangunahing syntax ang mga variant gaya ng:

Get-CMDriver

Get-CMDriver -DriverPackageId <String>

Get-CMDriver -DriverPackageName <String>

Get-CMDriver -Id <Int32>

Get-CMDriver -InputObject <IResultObject>

Gamit ang mga parameter na ito maaari mong idirekta ang iyong mga query sa SCCM catalog, pag-filter sa pamamagitan ng pangalan ng driver, identifier, nauugnay na mga pakete, o mga kategoryang pang-administratibo na iyong tinukoy upang ayusin ang iyong mga controller.

Mga halimbawa sa Get-CMDriver

Kung alam mo ang pangalan ng isang partikular na driver, halimbawa "Surface Serial Hub Driver", maaari mong makuha ang mga detalye nito gamit ang:

Get-CMDriver -Name "Surface Serial Hub Driver"

Kapag kailangan mong suriin ang ilang driver na may parehong prefix sa kanilang pangalan (tulad ng buong pamilya ng Surface driver) at gusto mo lang makakita ng ilang nauugnay na property, maaari kang gumamit ng isang bagay tulad ng:

  Nabigo ang Pagkuha – Error sa Hindi Sapat na Pahintulot sa Chrome

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

Ang modifier -Mabilis Binabawasan nito ang dami ng impormasyong nakuha at pinapabilis ang query, na medyo kapansin-pansin sa malalaking katalogo. Pagkatapos, sa Select-Object, Pinapanatili mo lang ang mga column na kapaki-pakinabang sa iyo para sa iyong pagsusuri.

Kung namamahala ka ng mga kategoryang pang-administratibo (halimbawa, isang kategoryang "Surface" kung saan mo igrupo ang lahat ng mga controller na iyon), maaari mong i-chain ang kategorya at pagkuha ng driver tulad nito:

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

Sa kasong ito, iimbak mo muna ang kategorya sa isang variable at pagkatapos ay hilingin sa Get-CMDriver na ibalik ito sa iyo lahat ng mga controller na nauugnay sa kategoryang iyon, isang bagay na lubhang kapaki-pakinabang para sa pagpapanatili ng mga lohikal na pananaw ng iyong mga controllers sa SCCM.

Mga limitasyon kapag naglilista ng mga driver na dynamic na na-load

Hindi lahat ng driver ay pare-pareho ang ugali. May mga tool, tulad ng ilan sa suite. Sysinternals (halimbawa, Process Explorer o handle.exe)na dynamic na nag-inject ng mga driver sa kernel kapag na-execute ang mga ito, nang hindi nirerehistro ang mga ito bilang mga tradisyunal na serbisyo na na-load sa startup.

Ang isang karaniwang halimbawa ay ang driver procexp152.sys (o mga naunang bersyon gaya ng procexp113.sys), na nauugnay sa Process Explorer. Maaaring hindi lumabas ang ganitong uri ng driver sa mga karaniwang query ng Get-WmiObject Win32_SystemDriverdahil ang mga query na ito ay umaasa sa impormasyon mula sa mga serbisyo sa pagpapatala (CurrentControlSet\Services) at kadalasang sumasalamin sa mga driver na puno ng system.

Katulad nito, maaaring hindi ilista ng driverquery ang lahat ng mga driver na na-injected nang pabago-bagoKaya kung nagde-debug ka ng mga BSOD o maanomalyang gawi na dulot ng mga tool ng third-party na naglo-load ng sarili nilang mga driver, maaaring kailanganin mong gumamit ng ibang mga pamamaraan.

Kabilang sa mga alternatibong iyon ay suriin memory dumps kernel gamit ang mga tool tulad ng WinDbg, o gumamit ng mga utility tulad ng verifier.exeBinibigyang-daan ka ng driver verifier na pumili ng mga driver na gusto mong subaybayan at makita ang hindi matatag na pag-uugali, ngunit ang graphical na interface ay nag-aalok ng higit pang mga opsyon sa enumeration kaysa sa command-line na bersyon, na nakatutok sa pag-query at pag-configure ng pag-verify.

Sa madaling salita, para sa isang pangkalahatang imbentaryo at para sa karamihan ng mga pangangailangang pang-administratibo, Sinasaklaw ng PowerShell, WMI, at Get-WindowsDriver ang mga base nang napakahusay.Gayunpaman, sa matinding kaso ng pag-debug ng mga hot-loaded na driver, kakailanganin mong magdagdag ng mga tool sa pagsusuri ng kernel.

I-update ang mga driver gamit ang PowerShell gamit ang PSWindowsUpdate

Bilang karagdagan sa listahan ng mga driver, maraming mga administrator ang gumagamit ng PowerShell upang i-automate ang mga update ng driver sa pamamagitan ng Windows Update at para din sa i-update ang mga sound driverAng isang karaniwang ginagamit na paraan ay sa pamamagitan ng PSWindowsUpdate module, na nagpapalawak ng mga karaniwang update cmdlet.

Dumadaan ang karaniwang daloy pansamantalang paganahin ang pagpapatupad ng mga nilagdaang scriptI-install ang module at pagkatapos ay humiling ng mga update sa driver nang direkta mula sa mga server ng Microsoft.

Ang isang karaniwang hanay ng mga utos ay maaaring:

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

Ang sequence na ito ay nagbibigay-daan sa pagpapatupad ng script para sa kasalukuyang session, pag-install at pag-import ng PSWindowsUpdate module, Tingnan mo kung anong mga update ang available. At sa wakas, hinihiling mo na mai-install ang mga ito mula sa kategoryang "Driver" sa pamamagitan ng Microsoft Update, na nagpapahintulot sa system na awtomatikong mag-restart kung kinakailangan.

Maaari mo ring palawakin ang saklaw sa pamamagitan ng paggamit ng command na nag-i-install ng lahat ng mga update na nakita mula sa Microsoft Update at magre-restart nang walang interbensyon, halimbawa:

Get-WindowsUpdate -MicrosoftUpdate -Install -AutoReboot

Ang ganitong paraan ng pagtatrabaho ay lalong praktikal sa malalaking parke ng koponanDito mo gustong i-standardize ang mga bersyon ng driver nang hindi isa-isa. Gayunpaman, palaging ipinapayong pagsamahin ito sa isang magandang naunang imbentaryo ng mga driver at, sa mga kritikal na kapaligiran, subukan sa isang pilot group bago i-deploy sa buong organisasyon.

Mga peripheral ng Windows, mga problema sa driver
Kaugnay na artikulo:
Kumpletong Gabay sa Pag-alis ng Mga Ghost Device at Orphaned Driver sa Windows