WMI-Abfragen im Win7 postinst.d

Antworten
seteqsystems
Beiträge: 62
Registriert: 12 Sep 2012, 11:51
Wohnort: Hall in Tirol

WMI-Abfragen im Win7 postinst.d

Beitrag von seteqsystems »

Hi,

Ich wollte eigentlich im postinst.d ein Script zur Aktualisierung der BIOS-Einstellungen einbauen, was aber daran scheitert, dass WMIC einen kritischen Fehler ausspuckt.

Meine Fragen:
* Verwendet irgendwer erfolgreich WMI-Abfragen im postinst.d ?
* Gibt es im postinst andere verlässliche Möglichkeiten den Hardwaretyp herauszufinden?

Danke & lg

Hier mein Auszug aus dem postinst-log:

Code: Alles auswählen

C:\Windows\system32\oobe>FOR /F "tokens=2 delims==" %A IN ('WMIC csproduct GET Name /VALUE | FIND /I "Name="') DO SET machine=%A 
Knoten - NB00174

FEHLER:

Beschreibung = Kritischer Fehler
uncle_scrooge
Beiträge: 650
Registriert: 21 Feb 2012, 12:03
Wohnort: Mainz

Re: WMI-Abfragen im Win7 postinst.d

Beitrag von uncle_scrooge »

Zu 1. Ja. Allerdings bin ich nur mit Server 2008R2 unterwegs
Zu 2. Ad hoc fällt mir nichts ein.

Aber..
Wenn der String im Log wirklich Deine FOR-Schleife ist, kann das nicht funktionieren. (Zumindest tut es das nachweislich auf meinem T530 unter W7 nicht).
a. nutzt Du keine back quotations sondern forward quotations, b. wäre der Parameter usebackq eine gute Idee, c. erschließt sich mir der Sinn des pipings nach find nicht ganz.
Da Du eh schon nach 'Name' filterst, kommt auch nur 'name=irgendwas' aus der WMIC-Abfrage raus. Und da Du auf den zweiten token abhebst, hast Du doch das was Du brauchst?
seteqsystems
Beiträge: 62
Registriert: 12 Sep 2012, 11:51
Wohnort: Hall in Tirol

Re: WMI-Abfragen im Win7 postinst.d

Beitrag von seteqsystems »

Im Log hat er offensichtlich das ^ nicht sauber mitgenommen

Der Code schaut so aus und funktioniert auf meinen HP und Fujitsu-Rechnern prima :)

Code: Alles auswählen

FOR /F "tokens=2 delims==" %%A IN ('WMIC csproduct GET Name /VALUE ^| FIND /I "Name="') DO SET machine=%%A
Das Piping ist wirklich umsonst, da stimme ich dir zu - das hab ich mir ja eigentlich aus einem anderen Script, wo ich mehrere WMI-Values abgreife zusammengebastelt :)

Ich probiers mal in der Zwischenzeit mit:

Code: Alles auswählen

FOR /F "tokens=2 delims==" %%A IN ('WMIC csproduct GET Name /VALUE') DO SET machine=%%A
Danke :)
Antworten