Einfache EXE-Datei installieren

Antworten
dslthomas
Beiträge: 86
Registriert: 26 Mär 2012, 15:49

Einfache EXE-Datei installieren

Beitrag von dslthomas »

Moin, Moin und Gruß aus Hamburg.

wir haben einige Lenovo-Notebooks. Hier werden nahezu alle Treiber schon sauber bei der BS-Installation mit installiert. Der Lenovo Power and Battery Driver für Windows 10 wird sich aber nicht. Installiert werden soll der Treiber einfach nur mit dem Parameter

dpinst_x64.exe -S

Rufe ich das ganze lokal auf, funktioniert das auch. Leider wird vom OPSI-Setup-Detektor kein installer erkannt.

Frage: Wie sieht ein OPSI-Script aus, welches nur diese eine Zeile ausführen soll?

Danke
mattiasmab
Beiträge: 90
Registriert: 29 Jan 2021, 12:17

Re: Einfache EXE-Datei installieren

Beitrag von mattiasmab »

Da du eh den Setup-Detector nutzt empfehle ich dir folgendes:
  • Erstelle ein Template/eine OPSI-Vorlage mit dem Setup Detector (geht auf der ersten Seite, wo auch ein/zwei Installer und "nur Analyse" als Auswahl zur Verfügung steht)
  • Trage deine Zeile in die Sekundäre Sektion WinBatch_... des Setup-Skripts ein
  • Lösche einfach die nicht genutzten Sektionen für Verknüpfungen, Dateien und Registry
  • Entferne optional die Deinstallationsskripte, den Aufruf im Setup-Skript und die Aktion aus der Control-Datei (bzw. mit dem opsiPackageBuilder)
Im Grunde wäre das aber auch mit einem vier Zeilen-Skript möglich, was aber keinerlei Feedback über Erfolg u.ä. ermöglichen würde (und ohne die neue Encoding-Anweisung, die empfohlen wird).
dslthomas
Beiträge: 86
Registriert: 26 Mär 2012, 15:49

Re: Einfache EXE-Datei installieren

Beitrag von dslthomas »

Danke für die Antwort.

das ganze schaut jetzt so aus:

Code: Alles auswählen

; ----------------------------------------------------------------
; Copyright (c) uib gmbh (www.uib.de)
; This sourcecode is owned by uib
; and published under the Terms of the Affero General Public License v3.
; ----------------------------------------------------------------
encoding=utf8

[Actions]
requiredWinstVersion >= "4.12.0.28"
ScriptErrorMessages = false

; All variables are defined here:
include_insert "define_vars_multi.opsiscript"

; import complete file !
importlib "uib_exitcode.opsiscript"
importlib "osd-lib.opsiscript"


; ----------------------------------------------------------------
; $ProductId$ is the name of the product in opsi, only lower letters, no umlauts, no white spaces, use '-' as a seperator
Set $ProductId$		= "l460-power-manager"
; the path where we find the product after the installation
Set $InstallDir$	= ""
Set $LicenseRequired$ = "False"
Set $LicensePool$	  = "" 
Set $MinimumSpace$	 = "6 MB"
; ----------------------------------------------------------------

set $OS$ = GetOS

if not(($OS$ = "Windows_NT"))
	logError "Installation aborted: wrong OS version: only Windows"
	isFatalError "wrong OS"
endif

if not(HasMinimumSpace ("%SystemDrive%", $MinimumSpace$))
	LogError "Not enough space on %SystemDrive%, " + $MinimumSpace$ + " on drive %SystemDrive% needed for " + $ProductId$
	isFatalError "No Space"
	; Stop process and set installation status to failed
endif

comment "Show product picture"
ShowBitmap "%ScriptPath%\" + $ProductId$ + ".png" $ProductId$


Message "Installing " + $ProductId$ + " ..."

if $LicenseRequired$ = "true"
	comment "Licensing required, reserve license and get license key"
	set $LicenseKey$ = get_licensekey_byPoolOrKey($LicensePool$)
endif


comment "Start setup program"
ChangeDirectory "%SCRIPTPATH%\files1"
;----------------------------------------------
Winbatch_install	
;----------------------------------------------




[Winbatch_install]
"%scriptpath%\files1\dpinst_x64.exe" -S





; ----------------------------------------------------------------
; ----------------------------------------------------------------

Leider führt er die Datei nicht aus. Ich habe die Datei händisch mal am Gerät mit dem Schalter "-S" ausgeführt. Da tut er das was er soll.
NorbertKoch
Beiträge: 133
Registriert: 26 Aug 2021, 08:37

Re: Einfache EXE-Datei installieren

Beitrag von NorbertKoch »

Hallo Thomas,

was steht denn im Logfile?

Das Abgleichen mit dem File des jeweiligen Clients (/var/log/opsi/instlog/) hilft Dir evtl. weiter. Manchmal sind es nur Kleinigkeiten...
Liebe Grüße

Norbert
dslthomas
Beiträge: 86
Registriert: 26 Mär 2012, 15:49

Re: Einfache EXE-Datei installieren

Beitrag von dslthomas »

NorbertKoch hat geschrieben: 27 Sep 2021, 15:54 was steht denn im Logfile?
Na ja, dadurch, dass ja der Exitcode raus konfiguriert ist, steht da nichts:

Code: Alles auswählen

(81)      [1] [2021-09-28 06:51:08.057] [l460-power-manager] 
(82)      [1] [2021-09-28 06:51:08.057] [l460-power-manager] ============ Version 4.12.4.27 script "p:\l460-power-manager\setup.opsiscript"
(83)      [1] [2021-09-28 06:51:08.057] [l460-power-manager]              used script encoding: utf8
(84)      [1] [2021-09-28 06:51:08.057] [l460-power-manager]              used system encoding: cp1252
(85)      [1] [2021-09-28 06:51:08.057] [l460-power-manager]              start: 2021-09-28  06:51:08
(86)      [1] [2021-09-28 06:51:08.057] [l460-power-manager]              installing product: l460-power-manager_1.67.16.42-1
(87)      [1] [2021-09-28 06:51:08.057] [l460-power-manager]              on client named    "test-1.hamburgerarbeit.sc"
(88)      [1] [2021-09-28 06:51:08.057] [l460-power-manager]              loggedin user    ""
(89)      [1] [2021-09-28 06:51:08.059] [l460-power-manager]              opsi-script running as    "SYSTEM"
(90)      [1] [2021-09-28 06:51:08.059] [l460-power-manager]              opsi-script running with admin privileges
(91)      [1] [2021-09-28 06:51:08.059] [l460-power-manager]              opsi-script running in standard script mode
(92)      [1] [2021-09-28 06:51:08.059] [l460-power-manager] executing: "C:\Program Files (x86)\opsi.org\opsi-client-agent\opsi-winst\winst32.exe"
(93)      [1] [2021-09-28 06:51:08.059] [l460-power-manager] system infos:
(94)      [1] [2021-09-28 06:51:08.061] [l460-power-manager] F0-D5-BF-FB-2B-78  -  PC hardware address
(95)      [1] [2021-09-28 06:51:08.062] [l460-power-manager] test-1  -  IP name
(96)      [1] [2021-09-28 06:51:08.062] [l460-power-manager] 192.168.250.101  -  IP address
(97)      [1] [2021-09-28 06:51:08.062] [l460-power-manager] DEU  -  System default locale
(103)     [1] [2021-09-28 06:51:08.062] [l460-power-manager] MS Windows 10.0 64 Bit, Release: 2009, Edition: PRODUCT_PROFESSIONAL
(104)     [1] [2021-09-28 06:51:08.062] [l460-power-manager] opsi service version : 4
(105)     [1] [2021-09-28 06:51:08.062] [l460-power-manager] 
(181)     [1] [2021-09-28 06:51:09.380] [l460-power-manager] ___________________
(182)     [1] [2021-09-28 06:51:09.380] [l460-power-manager] script finished: success
(183)     [1] [2021-09-28 06:51:09.380] [l460-power-manager] 0 errors
(184)     [1] [2021-09-28 06:51:09.380] [l460-power-manager] 0 warnings
(185)     [1] [2021-09-28 06:51:09.380] [l460-power-manager] 
(186)     [1] [2021-09-28 06:51:09.380] [l460-power-manager] installed product: l460-power-manager Version: 1.67.16.42-1
(187)     [1] [2021-09-28 06:51:09.380] [l460-power-manager] 
(190)     [1] [2021-09-28 06:51:09.451] [l460-power-manager] product l460-power-manager set to update
(191)     [1] [2021-09-28 06:51:09.451] [l460-power-manager] Update script name:
(192)     [1] [2021-09-28 06:51:09.451] [l460-power-manager] we have no update script
Medard
Beiträge: 29
Registriert: 22 Jan 2020, 08:42

Re: Einfache EXE-Datei installieren

Beitrag von Medard »

Hi,
nur ne Vermutung, ändere mal

ChangeDirectory "%SCRIPTPATH%\files1"

zu

ChangeDirectory "%SCRIPTPATH%"

Grüsse,
Robert
mattiasmab
Beiträge: 90
Registriert: 29 Jan 2021, 12:17

Re: Einfache EXE-Datei installieren

Beitrag von mattiasmab »

dslthomas hat geschrieben: 28 Sep 2021, 06:52 Na ja, dadurch, dass ja der Exitcode raus konfiguriert ist, steht da nichts:
Da stehen nur Loglevel 1 Einträge und bringt so leider gar nichts. Entweder das vollständige Logfile schicken (im opsiConfEd unten rechts den hebel auf z.B. 7) oder das Loglevel in der Datei fest eintragen (setloglevel=7) oder den Default anpassen (der normalerweise auf 5 ist und schon mehr hätte anzeigen müssen).
dslthomas hat geschrieben: 27 Sep 2021, 15:36 comment "Start setup program"
Es wird schließlich nicht einmal der Kommentar angezeigt und einen Exitcode würde man dennoch sehen und das hilft oftmals.
dslthomas
Beiträge: 86
Registriert: 26 Mär 2012, 15:49

Re: Einfache EXE-Datei installieren

Beitrag von dslthomas »

So,- das hier funktioniert:

Code: Alles auswählen

encoding=utf8

[Actions]
requiredWinstVersion >= "4.12.0.28"
ScriptErrorMessages = false
Files_copy_install /64
DosBatch_install winst /RunElevated
Files_delete_install
;DosBatch_install
; All variables are defined here:
include_insert "define_vars_multi.opsiscript"

; import complete file !
importlib "uib_exitcode.opsiscript"
importlib "osd-lib.opsiscript"


; ----------------------------------------------------------------
Set $ProductId$		= "l460-power-manager"
Set $InstallDir$	= ""
Set $LicenseRequired$ = "False"
Set $LicensePool$	  = "" 
Set $MinimumSpace$	 = "6 MB"
; ----------------------------------------------------------------

set $OS$ = GetOS

if not(($OS$ = "Windows_NT"))
	logError "Installation aborted: wrong OS version: only Windows"
	isFatalError "wrong OS"
endif

if not(HasMinimumSpace ("%SystemDrive%", $MinimumSpace$))
	LogError "Not enough space on %SystemDrive%, " + $MinimumSpace$ + " on drive %SystemDrive% needed for " + $ProductId$
	isFatalError "No Space"
	; Stop process and set installation status to failed
endif

comment "Show product picture"
ShowBitmap "%ScriptPath%\" + $ProductId$ + ".png" $ProductId$


Message "Installing " + $ProductId$ + " ..."

if $LicenseRequired$ = "true"
	comment "Licensing required, reserve license and get license key"
	set $LicenseKey$ = get_licensekey_byPoolOrKey($LicensePool$)
endif


comment "Start setup program"
ChangeDirectory "%SCRIPTPATH%\files1"


[Files_copy_install]
copy -s "%scriptpath%\files1\*.*" "C:\tmp"

[DosBatch_install]
c:\tmp\dpinst_x64.exe -S

[Files_delete_install]
del -s -f c:\tmp\*.*
Aber ist das auch "sauber"? Wie geht e besser?
mattiasmab
Beiträge: 90
Registriert: 29 Jan 2021, 12:17

Re: Einfache EXE-Datei installieren

Beitrag von mattiasmab »

dslthomas hat geschrieben: 28 Sep 2021, 10:42 Aber ist das auch "sauber"? Wie geht e besser?
Sauber eher nicht, da alle Prüfungen erst nach der eigentlich Installation erfolgen. Die Zeilen:
dslthomas hat geschrieben: 28 Sep 2021, 10:42 Files_copy_install /64
DosBatch_install winst /RunElevated
Files_delete_install
gehören eigentlich nach unten - direkt nach "ChangeDirectory "%SCRIPTPATH%\files1"" und vor deinen Sektionen.

Wenn es dann nicht (mehr) geht, dann ist dazwischen etwas kaputt und das wird üblicherweise in den Logs sehr schnell klar. Z.B. weil man eine der importierten Dateien gelöscht hat, ein Ordner nicht existiert, eine Klammer fehlt (das würde jedoch einen Abbruch bedeuten...), oder oder oder...

Ansonsten scheint es ja eh lediglich ein Problem gewesen zu sein, dass irgendeine Policy das Ausführen von dem Netzlaufwerk unterbindet (sonst würdest du sicher nicht die temporäre lokale Kopie erzeugen). Und das hätte nichts mit der Reihenfolge im Skript zu tun.

Bis denne
Antworten