battledroid
Goto Top

Frage zum Start einer Silentinstallation von Kaspersky über eine cmd

Moin zusammen.

Ich bastel mir schon seit einiger Zeit eine nette kleine Batch zusammen, mit der ich auf neu installierten Systemen fix etliche Tools wie Adobe Reader, Java und auch Office im Silentmodus installiert werden.

Das Ganze klappt im Produktiveinsatz auch recht gut, nun habe ich aber beschlossen, dassich auch gern Kaspersky IS und AV mit installieren lassen will.

Der Silentistall geht aus einer Batch, ich der ich nur den blanken Pfad zur Installationsdatei angebe auch tadellos,, nur aus meiner Batch mit einer vorgesetzten Variablen , um die jeweilige Version anzufragen, klappt noch nicht, sprich, die Datei wird nciht aufgerufen und abgearbeitet.

Vielleicht hat da ja jemand ne Idee oder sieht nen Fehler?
Für Verbesserungsvorschläge bin ich natürlich auch immer offen. face-wink

Besten Dank schon mal vorab.

Hier der Code:
@echo off
echo *************************************************
echo                                                 *
echo Unbeaufsichtigte Installation von Adobe Reader, *
echo Flash Player, Java, Office und Kaspersky        *
echo                                                 *
echo *************************************************
echo.
echo.
echo -------------------------------------------------
echo Welche Office Version soll preinstalled werden? -
echo -------------------------------------------------
echo.
echo -------------------------------------------------
echo                                                 -
echo Druecke Taste 1 um Office 2010 zu installieren  -
echo Druecke Taste 2 um Office 2013 zu installieren  -
echo                                                 -
echo Druecke Taste 3 um kein Office zu installieren  -
echo                                                 -
echo -------------------------------------------------
 
set /P in=
cls
echo -------------------------------------------------
echo Welches Kaspersky soll installiert werden?      -
echo -------------------------------------------------
echo.
echo -------------------------------------------------
echo                                                 -
echo Druecke 1 um Kasp. AV 2012 zu installieren      -
echo Druecke 2 um Kasp. AV 2013 zu installieren      -
echo                                                 -
echo Druecke 3 um Kasp. IS 2012 zu installieren      -
echo Druecke 4 um Kasp. IS 2013 zu installieren      -
echo                                                 -
echo Druecke 5 um kein Kaspersky zu installieren     -
echo -------------------------------------------------

set /p kasp=
cls
:AdobeReader 11.0.0
if exist C:\Windows\CheckFiles\AdbeRdr11003 goto Java
echo Installation Adobe Reader
\\storage-nas\Updates\install_tools\AdbeRdr11003_de_DE.exe /sAll /rs
mkdir %windir%\CheckFiles\AdbeRdr11003

{{comment_single_line_double_colon:1}}
if exist %windir%\SysWOW64 goto Java64
if exist C:\Windows\CheckFiles\Java_7.025 goto Flash
echo Installation Java 32 bit
\\storage-nas\Updates\install_tools\jre-7u25-windows-i586.exe /s
mkdir %windir%\CheckFiles\Java_7.025

{{comment_single_line_double_colon:1}}64
if exist C:\Windows\CheckFiles\Java_7.025 goto Flash
echo Installation Java 32 und 64 bit
\\storage-nas\Updates\install_tools\jre-7u25-windows-i586.exe /s
\\storage-nas\Updates\install_tools\jre-7u25-windows-x64.exe /s
mkdir %windir%\CheckFiles\Java_7.025

:Flash
if exist C:\Windows\CheckFiles\Flash_11.8.800.94 goto IconCache
echo Installation Adobe Flashplayer IE und Firefox
\\storage-nas\Updates\install_tools\install_flash_player_11_active_x.exe -install
\\storage-nas\updates\install_tools\install_flash_player_11_plugin.exe -install
mkdir %windir%\CheckFiles\Flash_11.8.800.94

:IconCache
if exist C:\Windows\Checkfiles\IconCache goto kaspersky
CD /d C:\Users\
DEL IconCache.db /a /s
mkdir %windir%\CheckFiles\IconCache

:kaspersky
if exists c:\Windows\Checkfiles\Kaspersky goto office
if /i "%kasp%"=="1" goto kasp1  
if /i "%kasp%"=="2" goto kasp2  
if /i "%kasp%"=="3" goto kasp3  
if /i "%kasp%"=="4" goto kasp4  
if /i "%kasp%"=="5" goto office  

:kasp1
echo Installation der gewaehlten Kaspersky Version
\\storage-nas\Updates\kaspersky\kav12.0.0.374de_de.exe /s
mkdir %windir%\CheckFiles\Kaspersky
goto office

:kasp2
echo Installation der gewaehlten Kaspersky Installation
\\storage-nas\updates\kaspersky\kav13.0.1.4190de-de.exe /s
mkdir %windir%\CheckFiles\Kaspersky
goto office

:kasp3
echo Installation der gewaehlten Kaspersky Installation
\\storage-nas\updates\kaspersky\kis12.0.0.374de_de.exe /s
mkdir %windir%\CheckFiles\Kaspersky
goto office

:kasp4
echo Installation der gewaehlten Kaspersky Installation
\\storage-nas\updates\kaspersky\kis13.0.1.4190de-de.exe /s
mkdir %windir%\CheckFiles\Kaspersky


{{comment_single_line_double_colon:10}}
if /i "%in%"=="1" goto 1  
if /i "%in%"=={{comment_strings:23422782532}} goto 2  
if /i {{comment_strings:12891904368}}=="3" goto end  

:1
if exist C:\Windows\Checkfiles\office2010_preinstall goto end
echo Installation der gewaehlten Office Version
call \\storage-nas\Updates\install_tools\office_2010_preinstall\oemsetup.de-de.bat
mkdir %windir%\CheckFiles\office2010_preinstall
goto end

:2
if exist C:\Windows\Checkfiles\office2013_preinstall goto end
echo Installation der gewaehlten Office Version
call \\storage-nas\updates\install_tools\office_2013_preinstall\oemsetup.de-de.cmd
mkdir %windir%\CheckFiles\office2013_preinstall
goto end

:Dummy
REM nothing here!
:end

Content-ID: 213628

Url: https://administrator.de/contentid/213628

Ausgedruckt am: 17.11.2024 um 15:11 Uhr

bastla
bastla 07.08.2013 aktualisiert um 16:24:19 Uhr
Goto Top
Hallo battledroid!

Vorweg: Benutze bitte "Code"-Formatierung - damit lässt sich auch leichter (per Zeilennummer) auf eine Zeile Deines Batches Bezug nehmen.
klappt noch nicht
ist als Fehlerbeschreibung etwas dürftig ...
sieht nen Fehler?
Abgesehen vom überzähligen "s" in
if exists c:\Windows\Checkfiles\Kaspersky goto office
ist mir beim kurzen Überfliegen noch nix ins Auge gefallen (vielleicht seh' ich's ja besser, wenn Du die Formatierung nachgeholt hast face-wink) ...

Grüße
bastla
Bitboy
Bitboy 07.08.2013 um 16:24:46 Uhr
Goto Top
Hi,

Funktioniert denn keine der 4 Varianten oder geht eine nicht. Auf Anhieb seh ich so keinen Fehler, allerdings ist mir de-de bzw de_de aufgefallen. heissen die Dateien wirklich so?
Endoro
Endoro 07.08.2013 um 21:37:57 Uhr
Goto Top
Hallo,
es wäre gut, hier nicht eine Wand an unformatiertem Code reinzustellen, sondern speziell die Codeteile, die Probleme machen :/
Ich jedenfalls hab's mir abgewöhnt, Sachen zu lesen, die länger sind als mein Display hoch face-smile
lg.
clSchak
clSchak 07.08.2013 aktualisiert um 22:26:36 Uhr
Goto Top
Hi

was ich mich jetzt noch frage: was sollen die "if exist" Anweisungen und dann die Erstellung des Ordners? Warum fragst du nicht den Installationspfad oder die Dateiversion ab?

z.B.
if exist "%PROGRAMFILES(X86)%\Microsoft Office\Office14" goto step2  
setup.exe /adminfile xyz.msp
:step2
if exist "%PROGRAMFILES%\Java\jre7" goto step3  
java_xyz.exe /silent (oder wie auch immer)
:step3
...

Was du auch noch einbauen kannst, ist ein Versionscheck (anbei ein Auszug aus "unserem" NAV Installation Script - das Dateiversioncheck Batch File habe ich hier im Forum gefunden) - das prüft auf alle bei uns im System noch vorhandenen Versionen von NAV und deinstalliert die alten nicht benötigten Versionen

if EXIST "%PROGRAMFILES(X86)%\Microsoft Dynamics NAV\70\RoleTailored Client" (  
		 goto checkVersion
		 ) else (
			 if EXIST "%PROGRAMFILES(X86)%\Microsoft Dynamics NAV\60\RoleTailored Client" (  
			 goto checkVersion
			 ) else (
			 goto installation_pre_inst_tasks
			)
		)
	:checkVersion
		set "Datei=%PROGRAMFILES(X86)%\Microsoft Dynamics NAV\70\RoleTailored Client\Microsoft.Dynamics.Nav.Client.exe"  
			(
			  echo Set objFSO = CreateObject^("Scripting.FileSystemObject"^)  
			  echo Set objShell = CreateObject^("Shell.Application"^)  
			  echo Set objFolder = objShell.NameSpace^(objFSO.GetParentFolderName^(WScript.Arguments^(0^)^)^)
			  echo WScript.Echo objFolder.ParseName^(objFSO.GetFileName^(WScript.Arguments^(0^)^)^).ExtendedProperty^("productversion"^)  
			)>"%temp%\getPV.vbs"  
		for /f %%i in ('cscript //nologo "%temp%\getPV.vbs" "%Datei%"') do set "ProdVersion=%%i"  
		del "%temp%\getPV.vbs"  
		
		if defined ProdVersion echo [%time:~0,8%] Installed %Datei% with ProduktVersion %ProdVersion% >>%systemdrive%\logs\%logfile%

		REM Check Version of NAV
		if %ProdVersion%==7.0.34346.0 goto deinstall_old7
		if %ProdVersion%==6.0.29626.0 goto deinstall_old6
		if %ProdVersion%==7.0.33781.0 goto deinstall_old7
		if %ProdVersion%==7.0.33583.0 goto deinstall_old7
		if %ProdVersion%==7.0.34688.0 goto endNoError
		goto installation_pre_inst_tasks

		:deinstall_old7
		echo [%time:~0,8%] Deinstall old Version of MS Dynamics NAV >>%systemdrive%\logs\%logfile%
		"%PROGRAMFILES(X86)%\Common Files\Microsoft Dynamics NAV\70\Setup\setup.exe" /uninstall /quiet  
		goto installation_pre_inst_tasks

		:deinstall_old6
		echo [%time:~0,8%] Deinstall old Version of MS Dynamics NAV >>%systemdrive%\logs\%logfile%
		"%PROGRAMFILES(X86)%)\Common Files\Microsoft Dynamics NAV\60\Setup\setup.exe" /uninstall /quiet  
		goto installation_pre_inst_tasks

Und noch ein kleiner Tipp am Rande: bei "größeren" Installationen würde ich auf jeden Fall ein Log-File mit erstellen, dass dir am Ende oder während das Script dann läuft ein Log mitschreiben, ob ein Programm korrekt installiert wurde bzw. ob der Installer sauber durchgelaufen ist kannst mit einem einfachen "if ERRORLEVEL 1..." abfragen, zumindestens bekommst dann eine grobe Übersicht dessen was alles lt. MSI Installer korrekt installiert wurde.
battledroid
battledroid 08.08.2013 um 07:10:42 Uhr
Goto Top
Danke schon mal für eure antworten.

Die if exist abfrage und erstellung der leeren ordner nutze ich eher in einem internen schlankeren script. Ich verteile über unser domäne die aktuellen java und adobe versionen auf die clients mittels gpo. Da läuft dann beim anmelden die kleine cmd durch und prüft anzand der ordner, ob schon die aktuelle version drauf ist. Wenn ordner da, alles ok, wenn nicht, installiert er die halt. Der vorteil ist dann, dass das script ja bei jeder anmeldung abläuft und so nicht jedesmal erst eine komplette installation durchläuft.
battledroid
battledroid 08.08.2013 um 08:43:03 Uhr
Goto Top
Hm, besten Dank noch an bastla, es scheint so, dass das script wirklich über das überschüssige s in exists gestolpert ist.

ich überlege immer noch, wie ich eine falscheingabe in den einzelnen punkten abfangen kann.
die errorlog ist natürlich auch interessant, gute idee. muss ich mir mal gedanken drüber machen.