Pakete nach Herstellern definieren

Post Reply
Taz
Posts: 12
Joined: 07. Jun 2017, 10:16
Contact:

Pakete nach Herstellern definieren

Post by Taz » 16. Feb 2018, 11:05

Hallo Zusammen,

Wir haben bei uns momentan zwei Hersteller Clients Lenovo und Fujitsu. Wir haben aber in der Management Console die Clients nach Abteilungen Gruppiert somit sind die Lenovo wie auch die Fujitsu Clients in einer Gruppe.

Wir möchten nun die Treiber Tools der Hersteller (Lenovo SystemUpdater / Fujitsu SystemUpdater) in die Gruppen pushen, so dass jeder Client nur seinen SystemUpdater installiert. Das am Ende des Tages die Lenovo Clients nur ihren Lenovo SystemUpdater erhalten und die Fujitsu Clients ihren SystemUpdater.

Leider habe ich noch nicht die Erfahrung dies umzusetzen und wäre euch dankbar für ein paar Ideen!


Der aktuelle Code sieht so aus (sehr simple)

Code: Select all

[Setup]
Version=14.2
ShowCaption=1
BlockInput=0
Platform=x64

[Requirements]

[Application]
ProductName=DeskUpdate
DeveloperName=Fujitsu
Version=1.0
Revision=0
SetupName=%ProductName% %Version% %SetupWizard%
Text1="%ProductName% %Version%",         Arial,           30, , E3E2E2, 4,    , LEFT BOLD ITALIC
Text2="%DeveloperName%",                 Arial,           24, , E3E2E2, 4,    , LEFT BOLD ITALIC
Text8="%Company%",                       Arial,           18, , E3E2E2, 4,  10, RIGHT BOLD ITALIC
Text9="%InstallationFor% %WindowsUser%", Arial,           16, , E3E2E2, 4, -18, BOTTOM ITALIC LEFT
BackgroundColor=552B00, 949392
CopyDialogRect=0%, 0%, 100%, 100%, HCENTER VCENTER

; Register all installations in common registry key
UserKeyName=$Matrix42Packages$\%DeveloperName%\%ProductName%
MachineKeyName=$Matrix42Packages$\%DeveloperName%\%ProductName%\%Version%
UninstallKeyName=ova - %DeveloperName% %ProductName% %Version%
UninstallDisplayName=ova - %DeveloperName% %ProductName% %Version%
UninstallString=%ReinstallString% /U
ReinstallString="%CommonSetupDir%\Setup.exe" "%App%\%SetupInfDir%\Setup.inf"
UninstallDisplayIcon="%ApplicationDir%\%SetupInfDir%\Setup.ico",0
UninstallOptions=NOREMOVE NOREPAIR NOMODIFY
ReinstallMode=1
SrcDir=..

; Matrix42 Scripts are copied in a common scripts directory
ApplicationDir=%CommonAppData%\$Matrix42Scripts$\%DeveloperName%\%ProductName%\%Version%

SetupInfDir=Install
DataDir=%Personal%
AskUninstallOld=1
ShellLinks=1
CommonShellLinks=1
CreateUnresolvableShellLinks=1
UseStringSection=Strings:09
UseSysStringSection=SysStrings:09
DateWarning=1
SizeWarning=0
Reboot=0
PreventExternalReboot=1
StartServicesOnReboot=0
CallTimeOut=3600
AbortAfterCallTimeOut=1
DisableCancelButton=1
ShowEndMessage=1
EndMessage=%EndMessageDesc%

[Strings:07]
Disk1=Installationsmedium 1
EndMessageDesc=Die Installation wurde erfolgreich abgeschlossen!
ErrorLogMessage=Die Installation/Deinstallation wurde mit einer Fehlermeldung abgebrochen!
InstallationFor=Installation für:
InstallerDesc=Dienstprogramm zum Installieren einzelner Komponenten.
InstallerName=Installationsprogramm
SetupWizard=Installations-Assistent
Uninstallation=deinstallieren
CallingText=Fehler beim Aufruf von

[Strings:09]
Disk1=Installation media 1
EndMessageDesc=Installation was completed successfully!
ErrorLogMessage=The installation/uninstallation aborted with an error message!
InstallationFor=Installation for:
InstallerDesc=Service program to install single components.
InstallerName=Setup program
SetupWizard=Installation Wizard
Uninstallation=Uninstallation
CallingText=Error launching

[SysStrings:07]
Users=Benutzer

[SysStrings:09]
Users=Users

[Environment]
CommonSetupDir=%CommonFilesDir%\Setup%SetupBits%
V_MachineValuesPath=\\%EmpirumServer%\Values$\MachineValues\%DomainName%
V_UserValuesPath=%HKLM,"Software\matrix42\Software Depot","HomeServer"%\Values$\UserValues\%UserDomain%

; Maschinenabhängige Variablen
; machine dependent variables
;VM_<Variable>=%%%V_MachineValuesPath%\%ComputerName%.ini,%ComputerName%,<Variable>%%

; Userabhängige Variablen
; user dependent variables
;VU_<Variable>=%%%V_UserValuesPath%\%WindowsUser%.ini,%WindowsUser%,<Variable>%%

; !!! Setzen der entsprechenden ReplaceEnv Befehle für die Variablen im Abschnitt [Product] nicht vergessen!!!
; !!! Don't forget to set the appropriate ReplaceEnv instructions for the variables in the section [Product]!!!


;;; #####################################################################################################################

[Encryption]


[Disks]
1=%Disk1%

[Options]
Installer = %InstallerName%, COPYALWAYS, Installer, "%InstallerDesc%"
Product   = %ProductName%,   COPYALWAYS, Product,   "%ProductDesc%"

[Installer]
1:..\..\..\..\User\Setup.exe,          %CommonSetupDir%          ,   OPTIONAL USEFILENAME DIRECTORY NOSIZEWARNING SETUP, 0
1:..\..\..\..\User\SetupDeu.chm,       %CommonSetupDir%          ,   OPTIONAL USEFILENAME DIRECTORY NOSIZEWARNING SETUP, 0
1:..\..\..\..\User\SetupEnu.chm,       %CommonSetupDir%          ,   OPTIONAL USEFILENAME DIRECTORY NOSIZEWARNING SETUP, 0
1:%SetupInfDir%\Setup.inf,                                       ,   NORMAL,                                             0
1:%Temp%\Setup64.exe,                  %CommonSetupDir%\Setup.exe,   ALWAYS NOSIZEWARNING SETUP WINDOWS64,               0
1:%SetupInfDir%\Setup.ico,                                       ,   NORMAL,                                             0


[Processes]
;<label1>=<processname>, <text>, ABORT
;<label2>=<processname>, <text>, KILLPROCESS

[Product]
;#FileCheckMachine, MACHINE
;#FileCheckClient, CLIENT
;ReplaceEnv <Variable>



#Set:Product,

[Set:Product]
1:"%SRC%\FTS_DeskUpdate_4153859_1182252.exe","%CommonDesktop%\FTS_DeskUpdate_4153859_1182252.exe",NORMAL,0

[Set:Installation]

[Set:Uninstallation]





f48614
Posts: 224
Joined: 24. Apr 2007, 14:38
Contact:

Re: Pakete nach Herstellern definieren

Post by f48614 » 16. Feb 2018, 11:15

Hallo Taz,

ich bin ein Freund davon die Pakete dynamisch und mit ein wenig Intelligenz zu bauen.

Ich würde daher beide Pakete kombinieren und mittels eines Inventory das jeweils für das System passende installieren.

Hier ein Beispiel aus meinem universellem Treiber Paket.
call \\%EMPIRUMSERVER%\Configurator$\User\X64\EmpInventory.exe /C\\%EMPIRUMSERVER%\Configurator$\User\EmpInvDrivers.xml /O:c:\Temp\Computertype.xml /E /M
sleep 5000

If DoesTextInFileExist ("Latitude E6420", "c:\Temp\Computertype.xml") == "1" Then "Latitude E6420 X64" EndIf
If DoesTextInFileExist ("Latitude E6220", "c:\Temp\Computertype.xml") == "1" Then "Latitude E6220 X64" EndIf
If DoesTextInFileExist ("Optiplex 390", "c:\Temp\Computertype.xml") == "1" Then "Optiplex 390 X64" EndIf
If DoesTextInFileExist ("HP EliteBook Folio 1040 G1", "c:\Temp\Computertype.xml") == "1" Then "Elitebook 1040G1" EndIf

Einziger Nachteil ist, dass das Paket Verzeichnis sehr groß werden kann und dies beim AdvancedAgent zuvor lokal gecached wird. Man könnte aber auch direkt auf einen UNC Pfad verweisen, da diese Pakete meinst bei der "Grundbetankung" installiert werden und daher eine direkte und schnelle Netzwerkverbindung bestehen sollte.

Gruß
Thomas
Empirum v18.0 + EPE 4.7.1
Testsystem Empirum v18.0

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

Re: Pakete nach Herstellern definieren

Post by r.wiegel » 16. Feb 2018, 11:26

alternativ kann man die Werte auslesen:

[HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\BIOS]
"SystemManufacturer"="Hewlett-Packard"
"SystemProductName"="HP EliteBook 850 G3"

Denkbar wäre auch via Filter (Filteraktion) Clients zu den beiden Zuweisungsgruppen verschieben "Fujitsu" und "Lenovo" und aktivieren.
Viele Grüße
Roman Wiegel
IT-Consultant

MR Datentechnik - Vertriebs- und Service GmbH

Taz
Posts: 12
Joined: 07. Jun 2017, 10:16
Contact:

Re: Pakete nach Herstellern definieren

Post by Taz » 16. Feb 2018, 14:50

Vielen Dank,
ich denke das mit dem EmpInventory ist ein große Hilfe!

aber wo genau setze ich das in meinem Code hin, es müsste ja dann vorher geprüft sein;

Code: Select all


call \\%EMPIRUMSERVER%\Configurator$\User\X64\EmpInventory.exe /C\\%EMPIRUMSERVER%\Configurator$\User\EmpInvDrivers.xml /O:c:\Temp\Computertype.xml /E /M
sleep 5000

If DoesTextInFileExist ("Fujitsu", "c:\Temp\Computertype.xml") == "1" Then "Fujitsu" EndIf
If DoesTextInFileExist ("Lenovo", "c:\Temp\Computertype.xml") == "1" Then "Lenovo" EndIf



#Set:Fujitsu,
#Set:Lenovo,


[Set:Fujitsu]
1:"%SRC%\FTS_DeskUpdate.exe","%CommonDesktop%\FTS_DeskUpdate.exe",NORMAL,0
[Set:Lenovo]
1:"%SRC%\Lenovo_DeskUpdate.exe","%CommonDesktop%\Lenovo_DeskUpdate.exe",NORMAL,0
[Set:Installation]

[Set:Uninstallation]



f48614
Posts: 224
Joined: 24. Apr 2007, 14:38
Contact:

Re: Pakete nach Herstellern definieren

Post by f48614 » 16. Feb 2018, 15:13

Entferne einfach die festen #Set Sprungmarken und füge diese in die DoesTextinFileExist bedingung korrekt ein

lösche:
#Set:Fujitsu,
#Set:Lenovo,

und korrigiere
If DoesTextInFileExist ("Fujitsu", "c:\Temp\Computertype.xml") == "1" Then "Set:Fujitsu" EndIf
If DoesTextInFileExist ("Lenovo", "c:\Temp\Computertype.xml") == "1" Then "Set:Lenovo" EndIf

Mir gefällt die Lösung von r.wiegel aber sogar etwas besser, auch wenn ich es jetzt jahrelang anders betrieben habe :D
Empirum v18.0 + EPE 4.7.1
Testsystem Empirum v18.0

Post Reply

Return to “Paketierung”

Who is online

Users browsing this forum: No registered users and 2 guests