Файл bat не регистрируется при запуске из планировщика задач?

Файл bat не регистрируется при запуске из планировщика задач?

Я создал 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

И убедитесь, что все пользователи (или, по крайней мере, пользователь, от имени которого выполняется задача) имеют право записи в выбранную папку.

Связанный контент