Montag, Juli 15, 2013

Powershell - Driverquery

Im Netz findet sich ein schönes Beispiel für die Verwendung eines command-shell Befehls zur Treiberanzeige mit Powershell:
http://powershell.com/cs/blogs/tips/archive/2011/12/20/finding-driver-information.aspx

driverquery.exe /v /FO CSV | ConvertFrom-CSV #| Select-Object 'Display Name', 'Start Mode', 'Paged Pool(bytes)', Path

Dummerweise wurden bei der deutschen Übersetzung beide Felder "State" und "Status" mit "Status" übersetzt, was ConvertFrom-CSV als Fehler interpretiert

Hier des Rätsels Lösung, Korrektur des Headers:
 
driverquery -v -fo csv|convertfrom-csv -header ((driverquery -v -fo csv)[0].replace('"','').replace('Status,Status','State,Status').split(','))|select Anzeigename,Startmodus,'Ausgelagerter Pool (Bytes)',Pfad|sort startmodus,anzeigename #|out-gridview

Kommentar:
1. ausführliche Ausgabe von driverquery im csv Format
2. Übernahme der CSV Daten in ein Powershellobjekt
3. dazu den Header aus der ersten Zeile der CSV Daten korrigieren
4. entferne zuerst die Gänsefüßchen
5. ersetze dann 'Status,Status' durch 'State,Status'
6. zeige dann die Felder aus dem Beispiel durch Angabe ihrer deutschen Feldnamen an
7. zusätzlich ist ein Sortieren nicht schlecht
8. Wer will, kann auch noch das GridView bemühen

Übrigens scheint es keine gute Idee zu sein, alles übersetzen zu wollen.

Keine Kommentare: