O arquivo Bat não é registrado ao ser executado no agendador de tarefas?

O arquivo Bat não é registrado ao ser executado no agendador de tarefas?

Criei um arquivo bat que reinicia 2 serviços e executei-o no agendador de tarefas. Se eu executar o arquivo bat normalmente, posso vê-lo registrando-se no diretório atual como o arquivo bat. Mas se eu executá-lo através do agendador de tarefas, posso ver as execuções do morcego, como na janela de serviços, posso ver os serviços reiniciando, mas não registra nada... Alguém sabe qual é o problema?

Isso está no Windows Server 2008 r2 de 64 bits.

Obrigado

@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%

Responder1

Quando você executa coisas no Agendador de Tarefas, a pasta de trabalho (por padrão) é %windri%\system32. Portanto, quaisquer arquivos criados pela tarefa, que não tenham um caminho especificado, serão gravados lá (ou pelo menos tentarão gravá-los lá).

Para evitar isso, especifique um caminho absoluto na sua SET logfilename_sp_fix="SPSearchFix.log"linha.

Por exemplo:SET logfilename_sp_fix="c:\temp\SPSearchFix.log

E certifique-se de que todos os usuários (ou pelo menos o usuário com o qual a tarefa é executada) tenham acesso de gravação à pasta escolhida.

informação relacionada