Batch ausführen per ClientCommand

Alle Fragen rund um die ACMP Client Commands
Antworten
mgrobe
Beiträge: 8
Registriert: Di Sep 22, 2009 10:24 am

Hallo zusammen,

ich habe eine Batch, die ich gern zeitgesteuert per CC ausführen möchte. Das Batch führt LogParser (Ereignisprotokolle auslesen), meldet auch Erfolg, scheint aber dennoch nicht zu laufen, da keine Dateien abgelegt werden.

Ich führe das Batchfile per "Shell Execute Command" aus. Wenn ich dies "als Dienst" ausführe, erhalte ich zwar Erfolg aber eben keine Dateien, führe ich es als Benutzer aus, dann scheitert die Ausführung. In der Batch führe ich mit "CALL" andere Batchfiles aus.. Ist das problematisch via CC oder sollte das normalerweise gehen?

Meine Fragen:
a) für mich zum Verständnis: wann wähle ich "als Dienst ausführen" und wann "als Benutzer ausführen"?

b) was muss ich tun, damit mein Batch ausgeführt wird? Wenn ich das CC manuell ausführe, funktioniert's wunderbar!

Danke für Eure Hilfe und beste Grüße
Matthias Grobe.

P.S.: anbei der Code meiner Batchfiles.

Dieses Batchfile möchte ich ausführen:

Code: Alles auswählen

setlocal enabledelayedexpansion

set inipath="C:\Programme\Log Parser 2.2\inifile"
set executepath="C:\Programme\Log Parser 2.2"
set datenpfad="W:\EDV_Support\EventLogs_Server"


"datetime\datetime.exe" -T
set tag=%errorlevel%
"datetime\datetime.exe" -M
set monat=%errorlevel%
"datetime\datetime.exe" -J
set jahr=%errorlevel%
"datetime\datetime.exe" -S
set stunde=%errorlevel%
"datetime\datetime.exe" -I
set minute=%errorlevel%

set aktuelle_zeit=%jahr%_%monat%_%tag%

call %inipath%\executeLogParser.bat Application
call %inipath%\executeLogParser.bat System
REM call %inipath%\executeLogParser.bat Security

echo "Die Daten wurden im Verzeichnis %datenpfad% mit der Bezeichnung '%aktuelle_zeit%*' abgelegt"
copy %datenpfad%\%aktuelle_zeit%_Application.xml %datenpfad%\Application.xml /Y
copy %datenpfad%\%aktuelle_zeit%_System.xml %datenpfad%\System.xml /Y
"executeLogParser.bat" sieht wie folgt aus:

Code: Alles auswählen

set eventlog=%1
set string=
cd %inipath%
inifile.exe ereignisprotokolle.ini [%eventlog%] > temporaer.bat
call temporaer.bat
FOR /F "tokens=2* delims=_=" %%A IN ('SET server_') DO ( 
		set string=!string!,\\%%B\%eventlog%
	@ECHO %%A  :  %%B
)
set server=%string:~1,10000%
cd %executepath%
"LogParser.exe" "SELECT ComputerName,TimeGenerated,EventID,RESOLVE_SID(SID),EventTypeName,EventCategoryName,Strings,Message INTO '%datenpfad%\%aktuelle_zeit%_%eventlog%.xml' FROM %server% WHERE EventTypeName <> 'Information event' ORDER BY ComputerName,TimeGenerated desc" -i:EVT -direction:BW -o:xml -iCheckpoint:C:\Temp\%eventlog%.lpc
Und die "temporaer.bat" so:

Code: Alles auswählen

set server_01=<Server1>
set server_02=<Server2>
set server_03=<Server3>
.... http://www.imd-oderland.de .... IT-Admin für Hardware, Netzwerk und Scripting .....
wfrenzel
Beiträge: 197
Registriert: Do Dez 22, 2005 11:51 am

Hallo,

kopieren Sie die Batch-Skripte bitte mal in den "Execute batch-file command" statt sie als Batch über ein "Shell execute command" starten zu wollen. Das sollte dann funktionieren.
Mit freundlichen Grüßen,

Wilko Frenzel
Aagon GmbH
Antworten