
Creé un archivo bat que reinicia 2 servicios y lo ejecuto en el programador de tareas. Si ejecuto el archivo bat normalmente, puedo verlo iniciar sesión en el directorio actual como el archivo bat. Pero si lo ejecuto a través del programador de tareas, puedo ver que el bat se ejecuta, como en la ventana de servicios, puedo ver que los servicios se reinician, pero no registra nada... ¿Alguien sabe cuál es el problema?
Esto está en Windows Server 2008 r2 de 64 bits.
Gracias
@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%
Respuesta1
Cuando ejecuta cosas en el Programador de tareas, la carpeta de trabajo (de forma predeterminada) es %windri%\system32
. Por lo tanto, cualquier archivo creado por la tarea que no tenga una ruta especificada se escribirá allí (o al menos intentará escribirlos allí).
Para evitar esto, especifique una ruta absoluta en su SET logfilename_sp_fix="SPSearchFix.log"
línea.
P.ej:SET logfilename_sp_fix="c:\temp\SPSearchFix.log
Y asegúrese de que todos los usuarios (o al menos el usuario con el que se ejecuta la tarea) tengan acceso de escritura a la carpeta elegida.