
Я создал bat-файл, который перезапускает 2 службы, и запустил его в планировщике задач. Если я запускаю bat-файл обычным образом, я вижу, что он регистрируется в текущем каталоге как bat-файл. Но если я запускаю его через планировщик задач, я вижу, что bat запускается, как в окне служб, я вижу, что службы перезапускаются, но он ничего не регистрирует... Кто-нибудь знает, в чем проблема?
Это на Windows Server 2008 R2 64-бит.
Спасибо
@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%
решение1
При запуске задач в Планировщике задач рабочей папкой (по умолчанию) является %windri%\system32
. Поэтому любые файлы, созданные задачей, для которых не указан путь, будут записаны туда (или, по крайней мере, будет предпринята попытка записать их туда).
Чтобы избежать этого, укажите в строке абсолютный путь SET logfilename_sp_fix="SPSearchFix.log"
.
Например:SET logfilename_sp_fix="c:\temp\SPSearchFix.log
И убедитесь, что все пользователи (или, по крайней мере, пользователь, от имени которого выполняется задача) имеют право записи в выбранную папку.