mc-doubleyou
Goto Top

Fehler bei Verarbeitung von Batch als SYSTEM bei Systemstart

Hallo zusammen,

ich versteh einfach nicht was ich falsch mache. An und für sich würde meine Batch super arbeiten (schon mit als Administrator ausführen... getestet) allerdings nicht in dem Kontext in dem ich es ausführen möchte.

Wir müssen unseren AntiVirus Updaten und uns wurde vom Sicherheitsverantwortlichen empfohlen wie folgt vor zu gehen.

  • Deinstallation
  • Restart
  • Installation
  • Restart

Wir haben allerdings weder eine Domain, noch ein Software Deployment sondern nur eine Batchlösung (Software Publishing) welche zu installierende Dateien zur Verfügung stellt.

Es wird also als Administratior durch Software Publishing der AV deinstalliert, und ein Task erstellt der als SYSTEM beim Systemstart die Software beim ersten Durchlauf installieren soll und im zweiten sich selbst unter anderem Löschen. Sonst hängt man in einer Schleife fest.

Anbei nun das Script:
@echo off

rem config
	set installdir=C:\temp\RTSoft

rem Tasks und RegKey löschen
	set DEL=0
	reg query "HKLM\SOFTWARE\SoftPub\McAfee Restart"  
	if %ERRORLEVEL% EQU 0 set DEL=1
	if %DEL%==1 schtasks /delete /TN "McAfee Install" /F  
	if %DEL%==1 schtasks /delete /TN "McAfee delay" /F  
	if %DEL%==1 reg delete "HKLM\SOFTWARE\SoftPub\McAfee Restart" /F  
	if %DEL%==1 goto:eof
	
rem Programm starten
echo Installing VirusScan 8.8

	start /wait %installdir%\Programme\McAfee\InstEnter88\RTM_VSE\FramePkg_UPD.exe /silent /update
	start /wait %installdir%\Programme\McAfee\InstEnter88\RTM_VSE\SetupVSE.Exe
	
	reg add "HKLM\SOFTWARE\SoftPub\McAfee Install" /F  
	reg add "HKLM\SOFTWARE\SoftPub\McAfee Restart" /F  

Die Installation scheint zu funktionieren, der Teil mit dem löschen der Tasks, etc. leider nicht.
Ursprünglich war ein 'if exist C:\temp\McAfee.install goto delete' verbaut ich hatte aber das Gefühl ein goto dieser Art funktioniert nicht richtig zu diesem Zeitpunkt.

Der "McAfee delay" Task macht im goßen und ganzen nur einen Restart als BENUTZER bei der Benutzeranmeldung und funktioniert super.
Hatte auch schon überlegt hier die Tasks löschen zu lassen, ist aber leider nicht erlaubt weil der Zugriff verweigert wird.

Ich hoffe ich konnte mich halbwegs verständlich ausdrücken ;)

Danke schon malund LG mcdy

Content-ID: 277492

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

Ausgedruckt am: 22.11.2024 um 04:11 Uhr

DerWoWusste
DerWoWusste 16.07.2015 um 10:07:16 Uhr
Goto Top
Hi.

Du kannst es kostengünstig sichtbar testen, indem Du eine Kommandozeile als System öffnest und es darin startest. Dazu lade Dir psexec runter und dann
psexec -s -i cmd
In der sich öffnenden Shell dann Dein Skript starten.
mc-doubleyou
mc-doubleyou 16.07.2015 um 11:23:28 Uhr
Goto Top
Hallo DerWoWusste,

Wie es scheint würde auch in diesem Kontext ein goto funktionieren, hätte mich auch gewundert wenn nicht.
Im Moment versuch ich den gefühlt 100sten Lösungsansatz.

@echo off

rem config
	set installdir=C:\temp\RTSoft

rem Programm starten
echo Installing VirusScan 8.8

	start /wait %installdir%\Programme\McAfee\InstEnter88\RTM_VSE\FramePkg_UPD.exe /silent /update
	start /wait %installdir%\Programme\McAfee\InstEnter88\RTM_VSE\SetupVSE.Exe
	
	echo > C:\Homebase\Flags\mcafee88.txt
	
	schtasks /delete /TN "McAfee Install" /F  

und mittels HKCU RunOnce shutdown -f -r -t 0 den Restart direkt nach dem Login.

Das scheint dann aber zu früh zu sein und die Installation ist fehlerhaft.
Wenn es aber zu lange dauert starten die Autostart Programme und dieses sucht nach C:\Homebase\Flags\mcafee88.txt findet es nicht und startet daher die Installation.

Alles zumiemlich komplex leider face-sad

Danke schon mal für eure Hilfe.
LG mcdy
DerWoWusste
DerWoWusste 16.07.2015 um 11:31:12 Uhr
Goto Top
Dein Problem ist mir nicht klar geworden.
Hast Du es schon mit psexec gemacht, was für ein Fehler ist dann sichtbar?
mc-doubleyou
mc-doubleyou 17.07.2015 um 16:48:14 Uhr
Goto Top
Hallo DerWoWusste,

der Fehler war einfach, dass bei der tatsächlichen Ausführung ein goto scheinbar ignoriert wurde.
Auch hab ich gelesen exit wird auch ignoriert in so einem Fall.

Da ich nun ohne goto etc. auskomme und das Skript anders aufgebaut ist funktioniert es wie scheint endlich.

Die Lösung besteht eigentlich aus mehreren Teilen

  • Deinstallation und setzen eines verzögerten Restarts mittels RunOnce und Taskerstellung (Systemstart als System)
  • Restart durch Deinstallationsskript
  • Installation durch den Task und selbst Löschung
  • Restart durch RunOnce mit Prüfung der Installation

Sollte also gelöst sein, Danke!

LG und schönes WE mcdy