Jump to content
Sign in to follow this  
simonsayz

Unattended installation von verschiedener Software

Recommended Posts

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?

Share this post


Link to post
Share on other sites

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 .....

Edited by lefg

Share this post


Link to post
Share on other sites

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...

Share this post


Link to post
Share on other sites

Man könnte natürlich mit der reg.exe das Vorhandensein von Keys prüfen, man könnte aber auch auf das Installationverzeichnis und bestimmte Dateien darin oder Dateiinhalte testen, davon die Installation abhängig machen.

 

IF EXIST .....

 

FOR, FOR /F

 

FIND, FINDSTR

Share this post


Link to post
Share on other sites

ja das hab ich auch schon herausgefunden nur finde ich den reg schlüssel nicht von zb java.... HKLM/ Software ist er nicht aber in der systemsteuerung unter software wird er aufgeführt.

 

gleiches bei mysql

 

Danke für deine Hilfe :)

Share this post


Link to post
Share on other sites

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?

Share this post


Link to post
Share on other sites

Alles was in der Systemsteuerung deinstallierbar ist liegt unter HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Uninstall

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites

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 :)

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

 

Was machst Du, wenn das Verzeichnis C:\Programme heißt? Verwende die vorhandenen Systemvariablen. Start > Ausführen > cmd [ENTER] > SET [ENTER].

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte überlege Dir, ob es nicht sinnvoller ist ein neues Thema zu erstellen.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

Werbepartner:



×
×
  • Create New...