Puppeteers Blog

Windows-ajurien tietojen näyttäminen Powershellillä

July 27, 2018 

Windowsissa on useita komentorivityökaluja asennettujen ajurien tietojen selvittämiseen. Usein törmää seuraavaan komentoon:

PS> Get-WmiObject Win32_PnPSignedDriver

Luokka Win32_PnpSignedDriver sisältää tiedot ajurien digitaalisista allekirjoituksista sekä lisätietoja, kuten ajurin version. Useimmissa tapauksissa tämä komento riittää, sillä Windows ei ole Windows Vistan jälkeen suostunut lataamaan kuin kaupallisin varmentein allekirjoitettuja ajureita ilman, että se on test-signing -tilassa. Windows 10:n mukana tuli vaatimus siitä, että ajuri sisältää Microsoftin digitaalisen allekirjoituksen. Windows Server 2016 vaatii myöskin Microsoftin allekirjoituksen, mutta sen saaminen ajurille vaatii lisäksi, että Windows Hardware Lab Kit -testit on läpäisty. Käytännössä kehitys- ja testikoneita lukuun ottamatta kaikkien ajurien voidaan siis olettaa olevan kaupallisin varmentein allekirjoitettuja.

Ajurien kehitysvaiheessa drivers allekirjoitetetaan kuitenkin testivarmentein. Näistä ajureista ei luoka Win32_PnPSignedDriver -luokan instansseja, joten tutkimiseen tarvitaan muita komentoja. Eräs tapa on on käyttää ensin driverquery.exe -komentoa ajurin Inf-tiedoston nimen selvittämiseen:

PS> driverquery.exe /si
 
 DeviceName InfName IsSigned Manufacturer
 ============ ======= ========= ============
 --- snip ---
 TAP-Windows Adapter V9 oem10.inf FALSE TAP-Windows Provider V9
 --- snip ---

Tuloksia voi suodattaa Select-String -Cmdletillä tai selata more-komennolle putkittamalla. Kun Inf-tiedoston nimi on tiedossa, voidaan ajurin tiedot selvittää Get-WindowsDriver -CmdLetillä:

PS> Get-WindowsDriver -online -driver "oem10.inf"
 
 Driver : oem10.inf
 OriginalFileName : C:WindowsSystem32DriverStoreFileRepositoryoemvista.inf_amd64_d6d1390c54a88be5oemvista.inf
 Inbox : False
 ClassName : Net
 ClassDescription : Network adapters
 ClassGuid : {4D36E972-E325-11CE-BFC1-08002BE10318}
 BootCritical : False
 ProviderName : TAP-Windows Provider V9
 Date : 7/26/2018 12:00:00 AM
 Version : 15.14.22.364
 ManufacturerName : TAP-Windows Provider V9
 HardwareDescription : TAP-Windows Adapter V9
 Architecture : x64
 HardwareId : roottap0901
 ServiceName : tap0901
 CompatibleIds :
 ExcludeIds :
 
 Driver : oem10.inf
 OriginalFileName : C:WindowsSystem32DriverStoreFileRepositoryoemvista.inf_amd64_d6d1390c54a88be5oemvista.inf
 Inbox : False
 ClassName : Net
 ClassDescription : Network adapters
 ClassGuid : {4D36E972-E325-11CE-BFC1-08002BE10318}
 BootCritical : False
 ProviderName : TAP-Windows Provider V9
 Date : 7/26/2018 12:00:00 AM
 Version : 15.14.22.364
 ManufacturerName : TAP-Windows Provider V9
 HardwareDescription : TAP-Windows Adapter V9
 Architecture : x64
 HardwareId : tap0901
 ServiceName : tap0901
 CompatibleIds :
 ExcludeIds :

Jos ajurin nimi tai sen osa on tiedossa, voidaan myös käyttää Get-WindowsDriver -CmdLetiä putkitettuna Where-Object -CmdLetille:

PS> Get-WindowsDriver -Online |Where-Object { $_.ProviderName -like "TAP*" }
 
 Driver : oem10.inf
 OriginalFileName : C:WindowsSystem32DriverStoreFileRepositoryoemvista.inf_amd64_d6d1390c54a88be5oemvista.inf
 Inbox : False
 ClassName : Net
 BootCritical : False
 ProviderName : TAP-Windows Provider V9
 Date : 7/26/2018 12:00:00 AM
 Version : 15.14.22.364
 
 Driver : oem3.inf
 OriginalFileName : C:WindowsSystem32DriverStoreFileRepositoryoemvista.inf_amd64_0e2d432c2a230e0boemvista.inf
 Inbox : False
 ClassName : Net
 BootCritical : False
 ProviderName : TAP-Windows Provider V9
 Date : 6/22/2018 12:00:00 AM
 Version : 14.58.4.896
 
 Driver : oem9.inf
 OriginalFileName : C:WindowsSystem32DriverStoreFileRepositoryoemvista.inf_amd64_a572b7f20c402d28oemvista.inf
 Inbox : False
 ClassName : Net
 BootCritical : False
 ProviderName : TAP-Windows Provider V9
 Date : 4/21/2016 12:00:00 AM
 Version : 9.0.0.21

Kuten yllä näkyy, komento näyttää myös vanhat (Driver Storessa olevat) ajuriversiot, ellei tulostetta filtteröidä Inf-tiedoston perusteella.

Samuli Seppänen
Samuli Seppänen
Author archive
menucross-circle