[Erledigt] Im Paket nach Computermodell unterscheiden

Post Reply
User avatar
llaprosper
Posts: 713
Joined: 07. May 2009, 18:27
Location: Burscheid
Contact:

[Erledigt] Im Paket nach Computermodell unterscheiden

Post by llaprosper » 18. Jan 2017, 08:21

Hallo Zusammen,
wir verteilen per Paket Bioseinstellungen. Jetzt muss ich leider ein zweites Paket erzeugen, für alle neuen Modelle mit Win10, die nur noch UEFI machen.
Ich würde gerne im Paket abfragen, um welches Computermodell es sich handelt und dann die entsprechende .exe Verteilen.
Wie könnte ich das anstellen? Ich würde es wohl über eine DMI - System Abfrage machen, wüsste aber überhaupt nicht, wie der Befehl dafür aussehen sollte.
Habt ihr eine Idee?

VG
Andreas
Last edited by llaprosper on 19. Jan 2017, 08:58, edited 1 time in total.

User avatar
tgrosch
Posts: 602
Joined: 14. Nov 2007, 16:34
Location: Fulda
Contact:

Re: Im Paket nach Computermodell unterscheiden

Post by tgrosch » 18. Jan 2017, 08:38

Hallo Andreas,

ch habe mal ein Paket gebaut, was ein Powershell-Script aufruft und damit den Hersteller ausliest:

Code: Select all

$hersteller = get-wmiobject win32_bios
$hersteller.Manufacturer > C:\EmpirumAgent\hersteller.txt
Mehr ist das als Powershell nicht. Das müsste auch mit dem Modellnamen geben.

Die Textdatei frage ich dann ab in der setup.inf:

Code: Select all

If DoesTextInFileExist ("Dell", "C:\EmpirumAgent\hersteller.txt") == "1" Then "Set:DellBIOS" EndIf
If DoesTextInFileExist ("Hewlett-Packard", "C:\EmpirumAgent\hersteller.txt") == "1" Then "Set:HPBIOS" EndIf
Viele Grüße

Tobias
---
Empirum Echtsystem: v19 - 19.0.1 - Win 2012 R2 mit EPE 4.7.3 und UEM Agent 1905.1
Empirum Testsystem: v19 - 19.0.1 - Win 2012 R2 mit EPE 4.7.5 und UEM Agent 1906.1
Workplace Management Echtsystem: ServiceStore 9.1.0.2532 - Win 2012 R2
Workplace Management Testsystem: ServiceStore 9.1.0.2532 - Win 2016
MDM: Silverback 18.0.3.27
DB-Server: Win 2012 R2 mit SQL 2014

User avatar
Hendrik_Ambrosius
Moderator
Moderator
Posts: 7965
Joined: 13. Dec 2004, 23:10
Location: Adendorf/Lüneburg

Re: Im Paket nach Computermodell unterscheiden

Post by Hendrik_Ambrosius » 18. Jan 2017, 08:39

Ich nehme für so etwas die EmpInventory.exe:
Per CALL aufrufen und das Ergebnis als XML oder INI nach %TEMP% schreiben lassen.
Dann über die üblichen Setup.inf Befehle den Wert auslesen.
Hendrik Ambrosius / Senior Presales Consultant
Mobile: +49 172 408 4447 | hendrik.ambrosius@matrix42.com
Matrix42 GmbH | Elbinger Straße 7 | 60487 Frankfurt am Main | Germany | www.matrix42.com

Disclaimer: I participate in this forum on a voluntary basis. Views expressed are not necessarily those of Matrix42 or of the support team.

User avatar
llaprosper
Posts: 713
Joined: 07. May 2009, 18:27
Location: Burscheid
Contact:

Re: Im Paket nach Computermodell unterscheiden

Post by llaprosper » 18. Jan 2017, 09:20

Beides werde ich mir anschauen. Muss man für die Inventory.exe noch Parameter mit geben?
Ich würde gerne in einer .txt alle Modelle schreiben, die .exe "B" nehmen sollen. Wie kann ich denn den Wert der Ausgabe mit dem Text in der .txt abgleichen?

If DoesTextInFileExist reicht da ja nicht.
Ich muss dann ja vergleichen, ob Txt in File da ist UND im .txt der Modellübersicht

User avatar
r.wiegel
Posts: 896
Joined: 05. Feb 2010, 13:45
Location: Regensburg
Contact:

Re: Im Paket nach Computermodell unterscheiden

Post by r.wiegel » 18. Jan 2017, 11:47

oder so:

Code: Select all

Set V_SystemProductName=%HKLM,"HARDWARE\DESCRIPTION\System\BIOS","SystemProductName"%
Echo %V_SystemProductName%

Set V_SystemManufacturer=%HKLM,"HARDWARE\DESCRIPTION\System\BIOS","SystemManufacturer"%
Echo %V_SystemManufacturer%
Viele Grüße
Roman Wiegel
IT-Consultant

MR Datentechnik - Vertriebs- und Service GmbH

User avatar
Hendrik_Ambrosius
Moderator
Moderator
Posts: 7965
Joined: 13. Dec 2004, 23:10
Location: Adendorf/Lüneburg

Re: Im Paket nach Computermodell unterscheiden

Post by Hendrik_Ambrosius » 18. Jan 2017, 14:13

Die neueren EmpInventory.exe können anscheinend keine INI Ausgabe mehr generieren, nur noch XML.
Und dafür finde ich kein Beispiel in meiner Ablage.
Daher wären die anderen Ansätze einfacher.

Und dann kann man ja mit DoesTextInFileExist zum Abgleich mit der Liste arbeiten sobald man den Modell-String in einer Variablen hat.
Hendrik Ambrosius / Senior Presales Consultant
Mobile: +49 172 408 4447 | hendrik.ambrosius@matrix42.com
Matrix42 GmbH | Elbinger Straße 7 | 60487 Frankfurt am Main | Germany | www.matrix42.com

Disclaimer: I participate in this forum on a voluntary basis. Views expressed are not necessarily those of Matrix42 or of the support team.

User avatar
r.wiegel
Posts: 896
Joined: 05. Feb 2010, 13:45
Location: Regensburg
Contact:

Re: Im Paket nach Computermodell unterscheiden

Post by r.wiegel » 18. Jan 2017, 14:54

Wenn zu jedem Modell eine *.exe vorliegt, würde ich jeweils den Dateinamen nach einem Wert "SystemProductName" umbenennen. D.h. im Paket sollten sich z.B. die Dateien befinden:
HP EliteBook 850 G3.exe
HP EliteBook 8570p.exe
...
Der Aufruf dann:
Call %SRC%\%V_SystemProductName%.exe
Es bleibt also nur davor die Variable zu setzen. Eine Auswertung entfällt.
Viele Grüße
Roman Wiegel
IT-Consultant

MR Datentechnik - Vertriebs- und Service GmbH

User avatar
llaprosper
Posts: 713
Joined: 07. May 2009, 18:27
Location: Burscheid
Contact:

Re: Im Paket nach Computermodell unterscheiden

Post by llaprosper » 19. Jan 2017, 07:16

Hallo Herr Wiegel,

mit "Set V_SystemProductName=%HKLM,"HARDWARE\DESCRIPTION\System\BIOS","SystemProductName"%
Echo %V_SystemProductName%"
habe ich dann das Modell....ok...aber wie frage ich denn ab, ob dieses Modell z.B. in einer, von mir befüllten Textdatei, vorhanden ist?

Edit:
Ach so, ich frage die Variable ab
If DoesTextInFileExist ("%V_SystemProductName%", "C:\EmpirumAgent\hersteller.txt") == "1" Then Set:Exe1, Else Set:Exe2
So , oder?

User avatar
r.wiegel
Posts: 896
Joined: 05. Feb 2010, 13:45
Location: Regensburg
Contact:

Re: Im Paket nach Computermodell unterscheiden

Post by r.wiegel » 19. Jan 2017, 08:49

Die Echo-Ausgabe war nur zur Kontrolle.
Ja so geht es auch. Mit der Abfrage kann man leider nur zwei Abschnitte berücksichtigen. Wenn es nur zwei Modelle gibt, dann passt alles.

Code: Select all

If DoesTextInFileExist ("%V_SystemProductName%", "C:\EmpirumAgent\hersteller.txt") == "1" Then "Set:Exe1" Else "Set:Exe2" EndIf
alternativ könnte man das so umsetzen, wenn mehr als ein paar Modelle berücksichtigt werden müssen:

Code: Select all

;HW-Modell wird ermittelt:
Set V_SystemProductName=%HKLM,"HARDWARE\DESCRIPTION\System\BIOS","SystemProductName"%

;Es wird geprüft, ob für das Modell Bios-Einstellungen geändert werden müssen:
If DoesTextInFileExist ("%V_SystemProductName%", "C:\EmpirumAgent\hersteller.txt") == "1" Then "Set:Bios" EndIf

;Set Bios-Einstellungen:
[Set:Bios]
Call %SRC%\%V_SystemProductName%.exe 
Viele Grüße
Roman Wiegel
IT-Consultant

MR Datentechnik - Vertriebs- und Service GmbH

User avatar
llaprosper
Posts: 713
Joined: 07. May 2009, 18:27
Location: Burscheid
Contact:

Re: Im Paket nach Computermodell unterscheiden

Post by llaprosper » 19. Jan 2017, 08:58

Perfekt! Vielen Dank!

User avatar
llaprosper
Posts: 713
Joined: 07. May 2009, 18:27
Location: Burscheid
Contact:

Re: Im Paket nach Computermodell unterscheiden

Post by llaprosper » 19. Jan 2017, 09:14

Die Echo-Ausgabe war nur zur Kontrolle.
Ja so geht es auch. Mit der Abfrage kann man leider nur zwei Abschnitte berücksichtigen. Wenn es nur zwei Modelle gibt, dann passt alles.

Code: Select all

If DoesTextInFileExist ("%V_SystemProductName%", "C:\EmpirumAgent\hersteller.txt") == "1" Then "Set:Exe1" Else "Set:Exe2" EndIf
Es gibt mehr als 2 Modelle, aber ich werde die Liste mit allen neuen Modellen befüllen, die jetzt mit UEFI aufgesetzt werden.
Wenn also If DoesTextInFileExist einen Treffer hat, handelt es sich um einen UEFI Rechner und er nimmt die andere .exe

Post Reply

Return to “Paketierung”

Who is online

Users browsing this forum: No registered users and 5 guests