Jump to content

Unattended installation von verschiedener Software


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo,

 

ich möchte per batch-script mehrere Programme vollautomatisch und ohne userinteraktion installieren. (Java, MySQL Community Server sowie eine Softwarelösung der Firma Prodress).

 

Ich kann euch zwar eine MS Domäne hochziehen aber vom programmieren habe ich wenig Ahnung. Deshalb habe ich das Meiste aus diversen Internetquellen zusammengesammelt.

Die entsprechenden Installationsdateien liegen zusammen mit dem Script in einem Ordner.

 


echo off 
fsutil fsinfo drives %2>NuL
if %errorlevel%==1 ( 
echo Please run this program as administrator! 
echo Right click on Install.bat and choose "run as administrator".
echo Press any key to abort! 
pause > nul
exit
) else ( 
goto START 
)

:START

cd /d "%~f0\.."

start /wait "" jre1.7.0_09.msi /passive > nul

start /wait "" Prodress@Net_Server.exe /silent /sp- /DIR=C:\progra~1\Prodress@Net_Server > nul

start /wait "" mysql-5.5.28-win32.msi /passive >nul

xcopy "%cd%\my.ini" "C:\Program Files (x86)\MySQL\MySQL Server 5.5" /r /y /q >nul

xcopy "%cd%\my.ini" "C:\Program Files\MySQL\MySQL Server 5.5" /r /y /q >nul

pause

exit

 

Als zusätzliche Aufgabenstellung soll Java und MySQL nur installiert werden wenn es noch nicht installiert wurde. Dabei ist es auch egal ob es sich um eine "veraltete" version handelt die bereits drauf ist, wir wollen nicht riskieren das der Kunde eine Software auf dem Rechner hat die genau die Javaversion braucht und wir sie einfach mit der aktuellen "überbügeln"

 

Ich habe in der Registry geschaut aber dort undter HKLM / Software keine einträge gefunden, in der Systemsteuerung unter Software sind die Programme aber aufgeführtund können deinstalliert werden.

 

Auch die entsprechende my.ini file soll natürlich nur bei neuinstallation kopiert werden (der Part mit xcopy)

 

Habt ihr eine Idee wie man das machen kann?

Link zu diesem Kommentar

Hallo und Willkommen am Board :)

 

Einige "grundlegende" Möglichkeiten sind:

 

- MSI-Pakete erstellen und diese per Gruppenrichtlinie installieren

- WSUS und Local Update Publisher verwenden

- Setups per .ini, .xml so konfigurieren, dass sie ohne Benutzerinteraktion und Anzeige ablaufen, quasi /qn.

. AutoIt verwenden

 

Für bedingte Installation per Batch müsste wohl vorgeschaltet werden: IF EXIST .....

bearbeitet von lefg
Link zu diesem Kommentar

wsus geht leider nicht ... die software soll für den "otto normal" kunden sein der oft eher "weniger" technisches verständnis hat... der hängt garnicht in unserem netz ;)

 

wir möchten dem kunden deshalb eine "klick and go" lösung empfehlen - klick, geh kaffeetrinken und fertig ;)

aus diesem grunde wird auch die my.ini nachher einfach überschrieben und nicht der Kunde durch den configwizard geleitet.

 

Msi Packete brauchen, wenn sie nicht mit Parametern aufgerufen werden, immernoch userinteraktion. Das ist aber nicht gewollt ;)

Im Script werden ja auch 2 .msi ś aufgerufen (Java und MySQL)

 

 

Es geht mir jetzt primär darum die Registrierungsschlüssel zu finden und falls vorhanden die Installation der entsprechenden Software zu überspringen. Ich weiss das das nicht ganz sauber ist (da ja ein vorhandener RegSchlüssel nicht zwangsläufig bedeutet das das Programm auch installiert ist) aber das ist egal.

 

Autoit ist zwar klasse aber zum lernen der Scriptsprache ist zu wenig zeit...

Link zu diesem Kommentar

Ich würde wohl nicht auf Registry-Einträge reflektieren, ich würde wohl erst mal den Installationspfad prüfen.

 

IF EXIST c:\Programme\.....

 

oder

 

IF NOT EXIST .....

 

Java? Ob man da mal nach Oracle sucht? Unter HKLM\Software ist es nicht eingetragen. Was ist Java denn, eine Software, ein Plug-In? In welchem Kontext, der Maschine oder der USERS?

Link zu diesem Kommentar
wsus geht leider nicht ... die software soll für den "otto normal" kunden sein der oft eher "weniger" technisches verständnis hat... der hängt garnicht in unserem netz ;)

 

wir möchten dem kunden deshalb eine "klick and go" lösung empfehlen - klick, geh kaffeetrinken und fertig ;)

 

Genau das hat er mit dem Local Update Publisher und dem WSUS zusammen. Du machst das Paket fertig, über den LUP kommt es in den WSUS. Schon wird es auf den Clients installiert.

 

aus diesem grunde wird auch die my.ini nachher einfach überschrieben und nicht der Kunde durch den configwizard geleitet.

 

Die kannst Du angepasst gleich mit ins Paket aufnehmen.

 

Msi Packete brauchen, wenn sie nicht mit Parametern aufgerufen werden, immernoch userinteraktion. Das ist aber nicht gewollt ;)

 

Mittels GPO wird das Paket automatisch silent aufgerufen, über den LUP/WSUS ebenfalls.

 

Es geht mir jetzt primär darum die Registrierungsschlüssel zu finden und falls vorhanden die Installation der entsprechenden Software zu überspringen. Ich weiss das das nicht ganz sauber ist (da ja ein vorhandener RegSchlüssel nicht zwangsläufig bedeutet das das Programm auch installiert ist) aber das ist egal.

 

Auch das kannst Du im LUP einstellen.

 

WSUS.DE - Local Update Publishing

Link zu diesem Kommentar

hey danke für die antworten :)

 

also , die kunden welche das installationspaket bekommen sind bekleidungs-vertreter.

die haben die software teils auf ihren privaten laptops, die hängen weder an unserem wsus noch zwangsläufig an irgendeinem firmen-wsus (auf den ich dann ja sowiso keinen zugriff hätte).

 

auch ist es nicht zwangsläufig so das der laptop in einer firmendomäne ist.

 

das testen auf den installationspfad ist glaube ich eine gute idee, da muss ich nur 2x testen für 32bit und 64bit systeme :)

Link zu diesem Kommentar

hier meine neuste version, könntet ihr mir bitte mal die syntax überprüfen ?

 

 

@echo off 
fsutil fsinfo drives %2>NuL
if %errorlevel%==1 ( 
echo Please run this program as administrator! 
echo Right click on Install.bat and choose "run as administrator".
echo Press any key to abort! 
pause > nul
exit
) else ( 
goto START 
)

:START

cd /d "%~f0\.."

if not exist "c:\Program Files (x86)\Java" 

(start /wait "" jre1.7.0_09.msi /passive > nul)

else if not exist "c:\program files\java"

(start /wait "" jre1.7.0_09.msi /passive > nul)

start /wait "" Prodress@Net_Server.exe /silent /sp- /DIR=C:\progra~1\Prodress@Net_Server > nul

if not exist "c:\Program Files (x86)\MySQL"

(start /wait "" mysql-5.5.28-win32.msi /passive >nul)

else if not exist "c:\program files\mysql"

(start /wait "" mysql-5.5.28-win32.msi /passive >nul)

if exist "C:\Program Files (x86)\MySQL\MySQL Server 5.5"
(xcopy "%cd%\myini\my.ini" "C:\Program Files (x86)\MySQL\MySQL Server 5.5" /r /y /q >nul)
else
(xcopy "%cd%\my.ini" "C:\Program Files\MySQL\MySQL Server 5.5" /r /y /q >nul)

pause

exit

Link zu diesem Kommentar

Hallo :)

 

Ja die Idee den Pfad zu prüfen hat sich eh erledigt, ich soll definitiv auf die Registryeinträge prüfen...

 

Allerdings hatte ich ja

 "if not exist "c:\Program Files (x86)\MySQL"

und

"else if not exist "c:\program files\mysql" 

drin um beide Situationen abzudecken.

 

Ich werde jetzt mal Java und MySQL deinstallieren und danach neu installieren.

Vielleicht finde ich ja so 2 Keys auf die ich prüfen kann.

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...