2

Я сделал файл 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 ответ1

2

Когда вы запускаете вещи в планировщике заданий, рабочая папка (по умолчанию) - это %windri%\system32 . Таким образом, любые файлы, созданные задачей, для которых не указан путь, будут записаны туда (или, по крайней мере, он попытается записать их туда).

Чтобы избежать этого, укажите абсолютный путь в SET logfilename_sp_fix="SPSearchFix.log" .

Например: SET logfilename_sp_fix="c:\temp\SPSearchFix.log

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .