driverquery.exe returns all kinds of information about installed drivers, but the information seems a bit useless at first:
PS> driverquery.exe /V Module Name Display Name Description Driver Type Start Mode State Status Accept Stop Accept Pause Paged Pool Code(bytes BSS(byLink Date Path Init(bytes ============ ====================== ====================== ============= ========== ========== ========== =========== ============ ========== ========== ============================ ================================================ ========== 1394ohci OHCI-konformer 1394-Ho OHCI-konformer 1394-Ho Kernel Manual Stopped OK FALSE FALSE 4.096 200.704 0 20.11.2010 11:44:56 C:\Windows\system32\drivers\1394ohci.sys 4.096
This console application does support a parameter called /FO CSV. This formats the information as a comma-separated list:
PS> driverquery.exe /v /FO CSV "Module Name","Display Name","Description","Driver Type","Start Mode","State","S tatus","Accept Stop","Accept Pause","Paged Pool(bytes)","Code(bytes)","BSS(bytes )","Link Date","Path","Init(bytes)" "1394ohci","OHCI-konformer 1394-Hostcontroller","OHCI-konformer 1394-Hostcontrol ler","Kernel ","Manual","Stopped","OK","FALSE","FALSE","4.096","200.704","0","20 .11.2010 11:44:56","C:\Windows\system32\drivers\1394ohci.sys","4.096"
Now here’s the scoop: Powershell can not only read the results from console application. When the output is CSV, it can even convert the raw text automagically into objects. So, with just one line, you get tremendous information about drivers (thanks to Stephen Owen for pointing us to this):
PS> driverquery.exe /v /FO CSV | ConvertFrom-CSV | Select-Object 'Display Name', 'Start Mode', 'Paged Pool(bytes)', Path Display Name Start Mode Paged Pool(bytes) Path ------------ ---------- ----------------- ---- OHCI-konformer 1... Manual 4.096 C:\Windows\syste... Microsoft ACPI-T... Boot 90.112 C:\Windows\syste... ACPI-Energieanze... Manual 4.096 C:\Windows\syste... (...)