O arquivo Bat não registra quando executado a partir do agendador de tarefas?

2

Eu fiz um arquivo bat que reinicia 2 serviços, e eu executo-o no agendador de tarefas. Se eu executar o arquivo bat normalmente, eu posso ver o log no diretório atual como o arquivo bat. Mas se eu executar através do agendador de tarefas, eu posso ver o morcego sendo executado, como na janela de serviços, eu posso ver os serviços sendo reiniciados, mas ele não registra nada .... Alguém sabe qual é o problema?

Isto está no servidor windows 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%
    
por omega 26.01.2016 / 18:07

1 resposta

2

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

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

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

E garanta que todos os usuários (ou pelo menos o usuário em que a tarefa é executada) tenham acesso de gravação a essa pasta escolhida.

    
por 26.01.2016 / 18:14