- PowerShell Omogućava vam da navedete, filtrirate i izvozite vozači pomoću cmdleta kao što su Get-WmiObject i Get-WindowsDriver.
- upit za vozača, the Upravitelj uređaja i SCCM (Get-CMDriver) dopunjuju inventar kontrolera.
- Neki dinamički učitani drajveri zahtijevaju dodatne alate kao što su WinDbg ili verifier.
- Moduli poput PSWindowsUpdate i vanjski uslužni programi olakšavaju ažuriranje i održavanje upravljačkih programa ažurnim.
U Windows okruženjima, kontroliše koji su drajveri instalirani i koju verziju svaki od njih ima Ključno je za održavanje stabilnosti sistema, rješavanje problema s plavim ekranima ili pripremu za migracije. PowerShell je postao nevjerovatno praktičan alat za izvođenje ove vrste inventara bez potrebe za prolaskom kroz Upravitelj uređaja jedan po jedan.
U sljedećim redovima vidjet ćete Kako na različite načine izlistati kontrolere iz PowerShella i kako ih eksportovati do datoteka kako bi ih mirno analizirali, koje su razlike u odnosu na druge naredbe como driverquery ili grafičke alate, pa čak i kako rukovati naprednijim scenarijima kao što su slike van mreže ili dinamički učitani upravljački programi.
Šta je drajver i zašto biste ga željeli navesti iz PowerShella?

U Windowsu, kontroler ili upravljački program je mali blok softvera koji djeluje kao posrednik između operativnog sistema i komponente hardver (grafička kartica, čipset, skladištenjeperiferni uređaji USBitd.). Iako kod koji zauzimaju nije ogroman, njihov uticaj na stabilnost sistema je ogroman.
Kada ključni pokretač (na primjer, pohrana, mreža, grafika ili čipset) kvarovi, mogu uzrokovati padove, gubitak performansi, pa čak i plavi ekrani (BSOD)Zato je imati jasnu listu instaliranih drajvera i njihovih verzija toliko korisno kada otklanjate greške ili se pripremate za veliko ažuriranje.
Prije nego što požurite s promjenom, deinstalacijom ili vraćanjem starih drajvera, dobra je ideja minimizirajte rizike pomoću tačke vraćanja sistemaNa ovaj način možete se vratiti na prethodnu fazu ako ažuriranje upravljačkog programa pođe po zlu i računar počne čudno da se ponaša ili se čak ni ne pokrene ispravno.
Pored restorana, preporučljivo je napravite sigurnosnu kopiju važnih podataka (dokumenti, fotografije, radni projekti itd.), posebno ako ćete dirati upravljačke programe za pohranu podataka, jer greška može uzrokovati da sistem ne montira ispravno diskove ili ošteti informacije.
Osnovna komanda u PowerShellu za listanje instaliranih drajvera
Najdirektniji način za dobijanje inventara kontrolera iz PowerShella je oslanjaju se na WMIJedna od najčešće korištenih naredbi je:
Get-WmiObject Win32_PnPSignedDriver | Select DeviceName, DriverVersion
Pomoću ove cmdleta, PowerShell šalje upite WMI klasi Win32_PnPSignedDriver i vraća listu potpisanih PnP drajvera, zajedno sa nazivom uređaja i verzijom drajvera koju sistem trenutno ima povezanu sa njim.
Ako želite malo više konteksta o svakom upravljačkom programu, možete dodati polja poput prijateljsko ime, datum objavljivanja ili proizvođač. Na primjer:
Get-WmiObject Win32_PnPSignedDriver | Select DeviceName, FriendlyName, Manufacturer, DriverVersion, DriverDate
Ovom konsultacijom ćete dobiti Mnogo potpunije informacije za svaki unosOvo vam omogućava da otkrijete starije verzije, određene proizvođače ili upravljačke programe koji nisu ažurirani godinama.
Kako izvesti listu drajvera u datoteku (TXT ili CSV)
U stvarnim okruženjima, samo gledanje liste na ekranu rijetko je dovoljno. Najpogodniji pristup je... sačuvajte rezultat u datoteku da ga analizirate u Excelu, podijelite ga s timom ili ga sačuvate kao snimak stanja sistema prije nego što napravite bilo kakve promjene, na primjer, prije obrišite stare drajvere.
Ako vam je potreban samo brzi ispis u običnom tekstu, možete preusmjeriti izlaz u datoteku:
Get-WmiObject Win32_PnPSignedDriver | Select DeviceName, DriverVersion > C:\drivers.txt
Ta naredba kreira datoteku C:\drivers.txt s jednostavnim popisom uređaja i verzija. Idealno za brzo pregledavanje ili prilaganje izvještaju bez previše muke.
Kada tražite nešto što je lakše za filtriranje i sortiranje, najbolja opcija je korištenje CSV i cmdlet Export-CSVVrlo uobičajen primjer bi bio:
Get-WmiObject Win32_PnPSignedDriver | Select DeviceName, FriendlyName, DriverVersion, DriverDate | Export-CSV -Path "./MisDrivers.csv" -NoTypeInformation
Pomoću ove naredbe, datoteka pod nazivom MojiVozači.csv koje možete otvoriti u Excelu ili bilo kojem programu za proračunske tablice sortiraj po verziji, filtriraj po datumu drajvera, pretraži određene proizvođače, Itd
Iako se ponekad kaže da PowerShell "ne dozvoljava izvoz" liste drajvera, u stvarnosti... Da, može se savršeno izvoziti. Korištenjem preusmjeravanja izlaza ili Export-CSV, kao što ste upravo vidjeli. Zatim možete kopirati, zalijepiti ili raditi s tim informacijama gdje god želite.
Filtrirajte drajvere po proizvođaču, nazivu ili određenom tekstu
Obično nećete htjeti vidjeti sve upravljačke programe odjednom, već se fokusirati na određenog proizvođača ili tip uređaja. Za to možete ulančavanje filtera sa Where-Object o svojstvima svakog upravljačkog programa.
Na primjer, ako ste zainteresirani da zadržite samo upravljačke programe za IntelMogli biste uraditi nešto jednostavno kao:
Get-WmiObject Win32_PnPSignedDriver | Select DeviceName, DriverVersion | Where-Object { $_.DeviceName -like "*Intel*" }
Ova naredba iterira kroz sve unose koje vraća WMI i Održava samo one uređaje čiji naziv sadrži niz znakova "Intel".Korištenje zvjezdice kao džoker znaka omogućava vam pretraživanje djelomičnih podudaranja bilo gdje u tekstu.
Ista ideja se može koristiti za lociranje drajvera povezanih s određenom aplikacijom ili tipom hardvera, na primjer za ažurirajte USB drajvereAko znate dio naziva, proizvođača ili neki obrazac rute, možete prilagodite filter najudobnijoj nekretnini u svakom slučaju.
Pregledajte upravljačke programe iz Upravitelja uređaja i drugih Windows alata
Iako je PowerShell vrlo moćan za automatizaciju i izvoz lista, Windows i dalje nudi klasični grafički alati za upravljanje kontrolerima koji bi trebao biti poznat i kombinovan sa putanjom komande.
Prva referentna tačka je Upravitelj uređajaOvome se može pristupiti desnim klikom miša na "Ovaj računar" i odabirom "Upravljanje" ili brže korištenjem kontekstnog menija dugmeta Start (Windows + X). Tamo ćete vidjeti stablo sa svim kategorijama hardvera instaliranim na sistemu.
Uređaji koji imaju problema s instalacijom ili radom često se pojavljuju sa žuta ikona upozorenjaAko dvaput kliknete na bilo koji od njih, otvorit će se prozor sa svojstvima, gdje možete provjeriti status uređaja i pristupiti kartici "Drajver".
Unutar te kartice naći ćete opcije kao što su "Detalji upravljačkog programa", "Ažuriranje upravljačkog programa", "Vraćanje upravljačkog programa na prethodnu verziju", "Onemogući" ili "Deinstaliraj"Ove radnje vam omogućavaju da pregledate datoteke upravljačkog programa, tražite nove verzije, vraćate se na prethodnu verziju, onemogućite uređaj bez njegovog uklanjanja ili potpuno uklonite upravljački program iz sistema.
Pored ovih alata, Windows uključuje i komandu driverquery koristiti od naredbeni redak (CMDTrčanje driverquery Dobićete listu svih instaliranih drajvera, i sa driverquery /v Vidjet ćete detaljnije informacije, kao što su korištenje memorije, datum izrade ili status.
driverquery i njegov odnos sa PowerShell-om
Komanda driverquery je veoma fleksibilna i omogućava Pogledajte različite prikaze statusa vozačaNa primjer, ako želite detaljnije izlistati samo potpisane upravljačke programe, možete pokrenuti:
driverquery /si
Ovaj način rada prikazuje potpisani vozači s dodatnim korisnim informacijama za sigurnosne revizije ili provjere integriteta. I uvijek se možete konsultovati driverquery /? da biste vidjeli sve dostupne parametre i prilagodili izlaz svojim potrebama.
Jedna od prednosti driverqueryja je ta što Možete ga integrirati sa PowerShell-om koristeći ConvertFrom-CSVAko generirate izlaz u CSV formatu i proslijedite ga putem pipe-a, dobit ćete objekte kojima se može manipulirati iz PowerShella. Klasičan primjer bi bio:
driverquery.exe /v /fo csv | ConvertFrom-CSV | Select-Object "Display Name", "Start Mode", "Paged Pool(bytes)", Path
S ovim kombinujete Moć driverqueryja s manipulacijom podacima u PowerShelluOdabir samo kolona koje vas zanimaju: prikazno ime, način pokretanja, straničena memorija i putanja upravljačkog programa na disku. Ovo je korisno kada želite filtrirati po određenim tipovima, kao što su grafički drajveri.
Treba napomenuti da se i driverquery i određeni standardni WMI upiti prvenstveno fokusiraju na vozači registrovani u sistemu, mnogi od njih su utovareni u boot ili se njima upravlja putem registra na HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services. Neki drajveri koji se dinamički ubrizgavaju tokom izvođenja programa možda se neće pojaviti na ovim listama.
Navedite drajvere iz PowerShella pomoću Get-WindowsDriver-a
Za naprednije scenarije, posebno pri radu sa Slike Windowsa van mreže (na primjer, montirani WIM-ovi), cmdlet je vrlo koristan Get-WindowsDriver, koji je dio DISM alata dostupnih iz PowerShella.
Ovaj cmdlet vam omogućava prikaz informacija o paketima upravljačkih programa i za pokrenutu Windows instalaciju i za sliku montiranu u mapu. Glavna sintaksa je podijeljena u dva glavna načina korištenja: van mreže i online.
Za a vanmrežna slika montirana u folderOpći oblik bi bio:
Get-WindowsDriver -Path "C:\offline"
A da biste radili protiv pokrenutog sistema, koristili biste parametar -On-line:
Get-WindowsDriver -Online
Bez dodatnih parametara, Get-WindowsDriver vraća listu drajvera trećih strana prisutan na slici. Ako dodate modifikator -SveTakođer ćete vidjeti zadane upravljačke programe koji su uključeni po zadanim postavkama u Windowsu.
Ključni parametri Get-WindowsDriver-a
Jedan od najvažnijih parametara je -Vozačšto vam omogućava da odredite određena .inf datoteka ili mapa .inf datoteka Da biste dobili detaljne informacije o tim upravljačkim programima. Ako pokažete na mapu, .inf datoteke koje nisu važeći paketi upravljačkih programa automatski se ignoriraju.
Kada radite sa slikom van mreže, parametar -Put određuje korijensku putanju montirane slike. Ako Windows folder nije na toj korijenskoj razini, možete koristiti -Windows direktorij da biste odredili relativnu podmapu u kojoj se nalazi.
Parametar -Sistemski pogon Koristi se u specifičnijim scenarijima, kao što je rad iz Windows PE okruženja, a upravitelj pokretanja se nalazi na drugoj particiji. U tim slučajevima, služi za određivanje diska koji sadrži BootMgr datoteke koje treba poslužiti.
Što se tiče dnevnika aktivnosti, parametar -PutanjaZapisnika Omogućava vam da definirate punu putanju do datoteke dnevnika. Ako je ne prilagodite, koristit će se zadana putanja. %WINDIR%\Logs\Dism\dism.logili u Windows PE-u, prazni prostor u RAM-u. U međuvremenu, -LogLevel određuje detaljnost zapisa, s vrijednostima u rasponu od samo grešaka do uključivanja informacija o otklanjanju grešaka.
Konačno, parametar -Scratch direktorij Ovo je privremena mapa u koju se datoteke izdvajaju tokom servisnih operacija. Mora biti lokalna putanja i, nakon što je operacija završena, privremene datoteke Automatski se uklanjaju kako ne bi ostajali ostaci.
Praktični primjeri s Get-WindowsDriver-om
Da biste brzo vidjeli sve upravljačke programe za vašu trenutnu instalaciju Windowsa, možete pokrenuti:
Get-WindowsDriver -Online -All
Ova komanda će se prikazati svi drajveri (i sistemski i od trećih strana) prisutan u pokrenutoj slici. To je vrlo direktan način da se vidi koji su paketi instalirani bez korištenja WMI-ja ili Upravitelja uređaja.
Ako radite sa a slika montirana u C:\offline A ako želite provjeriti samo upravljačke programe trećih strana, možete učiniti sljedeće:
Get-WindowsDriver -Path "C:\offline"
Ako želite detaljan izvještaj o određenom OEM drajveru unutar te slike, jednostavno navedite .inf datoteku:
Get-WindowsDriver -Path "C:\offline" -Driver "OEM1.inf"
Možete čak pristupiti i .inf datoteci koja se nalazi u određenoj putanji upravljačkog programa, na primjer:
Get-WindowsDriver -Path "C:\offline" -Driver "C:\drivers\Usb\Usb.inf"
U svim ovim slučajevima, Get-WindowsDriver vraća objekte koje možete proslijediti Select-Object, Where-Object ili Export-CSV kako biste filtrirali, sortirali ili izvezli informacije u format koji vam najbolje odgovara.
PowerShell i SCCM: Get-CMDriver za kataloge drajvera
Kada upravljate korporativnim okruženjem sa Upravitelj konfiguracije (SCCM)Niste zainteresovani samo za drajvere na svakom računaru, već i za centralizovani katalog drajvera koji SCCM održava za implementaciju slika i paketa.
U tom kontekstu, cmdlet dolazi do izražaja. Get-CMDriver, To djeluje za Preuzmite informacije iz upravljačkih programa uređaja kojima upravlja Configuration ManagerOvaj cmdlet ima nekoliko potpisa ovisno o tome što želite upitati: po imenu, po numeričkom identifikatoru, po paketu upravljačkih programa ili po administrativnoj kategoriji.
Osnovna sintaksa uključuje varijante kao što su:
Get-CMDriver
Get-CMDriver -DriverPackageId <String>
Get-CMDriver -DriverPackageName <String>
Get-CMDriver -Id <Int32>
Get-CMDriver -InputObject <IResultObject>
Pomoću ovih parametara možete usmjeriti svoje upite na SCCM katalog, filtrirajući po naziv upravljačkog programa, identifikator, povezani paketi ili administrativne kategorije koje ste definirali za organizaciju vaših kontrolera.
Primjeri sa Get-CMDriver
Ako znate naziv određenog upravljačkog programa, na primjer "Surface Serial Hub Driver", detalje o njemu možete dobiti pomoću:
Get-CMDriver -Name "Surface Serial Hub Driver"
Kada trebate provjeriti nekoliko drajvera koji dijele isti prefiks u svom nazivu (kao što je cijela porodica Surface drajvera) i želite vidjeti samo neka relevantna svojstva, možete koristiti nešto poput:
Get-CMDriver -Fast -Name "Surface*" | Select-Object LocalizedDisplayName, DriverVersion, DriverDate
Modifikator -Brzo Smanjuje količinu preuzetih informacija i ubrzava upit, što je prilično primjetno u velikim katalozima. Zatim, pomoću Select-Object, Zadržavate samo kolone koje su vam korisne za vašu analizu.
Ako upravljate administrativnim kategorijama (na primjer, kategorijom "Površina" gdje grupirate sve te kontrolere), možete povezati preuzimanje kategorija i upravljačkih programa na ovaj način:
$category = Get-CMCategory -Name "Surface"
Get-CMDriver -Fast -AdministrativeCategory $category
U ovom slučaju, prvo pohranjujete kategoriju u varijablu, a zatim tražite od Get-CMDriver da vam je vrati. svi kontroleri povezani s tom kategorijom, nešto vrlo korisno za održavanje logičkih prikaza vaših kontrolera u SCCM-u.
Ograničenja prilikom navođenja dinamički učitanih drajvera
Ne ponašaju se svi drajveri isto. Postoje alati, kao što su neki u paketu. Sysinternals (na primjer, Process Explorer ili handle.exe)koji dinamički ubrizgavaju drajvere u kernel kada se izvrše, bez njihovog registrovanja kao tradicionalnih servisa učitanih pri pokretanju.
Tipičan primjer je vozač procexp152.sys (ili ranije verzije kao što je procexp113.sys), povezane s Process Explorerom. Ova vrsta upravljačkog programa se možda neće pojaviti u standardnim upitima programa Get-WmiObject Win32_SystemDriverbudući da se ovi upiti oslanjaju na informacije iz servisa registra (CurrentControlSet\Services) i obično uglavnom odražavaju drajvere koji su učitani sa sistemom.
Isto tako driverquery možda ne prikazuje sve dinamički ubrizgane drajvereDakle, ako otklanjate greške u BSOD-ima ili anomalnom ponašanju uzrokovanom alatima trećih strana koji učitavaju vlastite upravljačke programe, možda ćete morati pribjeći drugim metodama.
Među tim alternativama su ispitati memorije kernel pomoću alata poput WinDbg-a ili koristite uslužne programe poput verifier.exeVerifikator drajvera vam omogućava da odaberete drajvere koje želite da pratite i otkrijete nestabilno ponašanje, ali grafički interfejs nudi više opcija nabrajanja nego verzija komandne linije, koja se fokusira na upite i konfigurisanje verifikacije.
Ukratko, za opći popis i za većinu administrativnih potreba, PowerShell, WMI i Get-WindowsDriver vrlo dobro pokrivaju osnove.Međutim, u ekstremnim slučajevima otklanjanja grešaka kod vruće učitanih drajvera, morat ćete koristiti alate za analizu kernela.
Ažurirajte drajvere pomoću PowerShella koristeći PSWindowsUpdate
Pored listanja drajvera, mnogi administratori koriste PowerShell za automatizirati ažuriranja upravljačkih programa putem Windows Update a i za ažurirajte upravljačke programe za zvukJedna često korištena metoda je putem modula PSWindowsUpdate, koji proširuje standardne cmdlete za ažuriranje.
Uobičajeni tok prolazi kroz privremeno omogući izvršavanje potpisanih skriptiInstalirajte modul, a zatim zatražite ažuriranja upravljačkih programa direktno sa Microsoft servera.
Tipičan skup naredbi može biti:
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
Install-Module PSWindowsUpdate
Import-Module PSWindowsUpdate
Get-WindowsUpdate
Get-WindowsUpdate -MicrosoftUpdate -Category Driver -Install -AutoReboot
Ovaj niz omogućava izvršavanje skripte za trenutnu sesiju, instalira i uvozi modul PSWindowsUpdate, Provjeravate koja su ažuriranja dostupna. I na kraju, tražite da se instaliraju iz kategorije "Drajver" putem Microsoft Update-a, što omogućava sistemu da se automatski ponovo pokrene ako je potrebno.
Također možete proširiti opseg korištenjem naredbe koja instalira sva ažuriranja otkrivena s Microsoft Update-a i ponovo pokreće sistem bez intervencije, na primjer:
Get-WindowsUpdate -MicrosoftUpdate -Install -AutoReboot
Ovaj način rada je posebno praktičan u veliki timski parkoviOvdje želite standardizirati verzije drajvera, a ne ići jednu po jednu. Međutim, uvijek je preporučljivo kombinirati ovo s dobrim prethodnim popisom drajvera i, u kritičnim okruženjima, testirati u pilot grupi prije implementacije u cijeloj organizaciji.
Strastveni pisac o svijetu bajtova i tehnologije općenito. Volim dijeliti svoje znanje kroz pisanje, a to je ono što ću raditi na ovom blogu, pokazivati vam sve najzanimljivije stvari o gadžetima, softveru, hardveru, tehnološkim trendovima i još mnogo toga. Moj cilj je pomoći vam da se krećete u digitalnom svijetu na jednostavan i zabavan način.
