
Ich habe eine Bat-Datei erstellt, die zwei Dienste neu startet, und lasse sie im Taskplaner ausführen. Wenn ich die Bat-Datei normal ausführe, kann ich sehen, dass sie sich im aktuellen Verzeichnis als Bat-Datei anmeldet. Aber wenn ich sie über den Taskplaner ausführe, kann ich sehen, dass die Bat-Datei ausgeführt wird, wie im Dienstefenster. Ich kann sehen, wie die Dienste neu gestartet werden, aber es wird nichts protokolliert.... Kennt jemand das Problem?
Dies ist auf Windows Server 2008 R2 64-Bit.
Danke
@echo off
SET waittimeseconds_sp_fix=15
SET logfilename_sp_fix="SPSearchFix.log"
echo %date% %time% - Restart starting >> %logfilename_sp_fix%
net stop SPTimerV4 >> %logfilename_sp_fix% 2>&1
if ERRORLEVEL 0 (
echo %date% %time% - WORKED - Stopped timer service >> %logfilename_sp_fix%
) ELSE (
echo %date% %time% - FAILED - Stopped timer service >> %logfilename_sp_fix%
exit
)
timeout %waittimeseconds_sp_fix%
net stop osearch14 >> %logfilename_sp_fix% 2>&1
if ERRORLEVEL 0 (
echo %date% %time% - WORKED - Stopped search service >> %logfilename_sp_fix%
) ELSE (
echo %date% %time% - FAILED - Stopped search service >> %logfilename_sp_fix%
exit
)
timeout %waittimeseconds_sp_fix%
net start SPTimerV4 >> %logfilename_sp_fix% 2>&1
if ERRORLEVEL 0 (
echo %date% %time% - WORKED - Started timer service >> %logfilename_sp_fix%
) ELSE (
echo %date% %time% - FAILED - Started timer service >> %logfilename_sp_fix%
exit
)
timeout %waittimeseconds_sp_fix%
net start osearch14 >> %logfilename_sp_fix% 2>&1
if ERRORLEVEL 0 (
echo %date% %time% - WORKED - Started search service >> %logfilename_sp_fix%
) ELSE (
echo %date% %time% - FAILED - Started search service >> %logfilename_sp_fix%
exit
)
timeout %waittimeseconds_sp_fix%
echo %date% %time% - Restart completed >> %logfilename_sp_fix%
echo. >> %logfilename_sp_fix%
echo. >> %logfilename_sp_fix%
echo. >> %logfilename_sp_fix%
echo. >> %logfilename_sp_fix%
echo. >> %logfilename_sp_fix%
echo. >> %logfilename_sp_fix%
Antwort1
Wenn Sie Dinge im Taskplaner ausführen, ist der Arbeitsordner (standardmäßig) %windri%\system32
. Alle von der Aufgabe erstellten Dateien, für die kein Pfad angegeben ist, werden also dorthin geschrieben (oder es wird zumindest versucht, sie dorthin zu schreiben).
Um dies zu vermeiden, geben Sie in Ihrer Zeile einen absoluten Pfad an SET logfilename_sp_fix="SPSearchFix.log"
.
Z.B:SET logfilename_sp_fix="c:\temp\SPSearchFix.log
Und stellen Sie sicher, dass alle Benutzer (oder zumindest der Benutzer, unter dem die Aufgabe ausgeführt wird) Schreibzugriff auf den ausgewählten Ordner haben.