it-swarm-ja.com

タスクスケジューラから実行すると、Batファイルがログに記録されませんか?

2つのサービスを再起動するbatファイルを作成し、タスクスケジューラで実行しました。 batファイルを正常に実行すると、現在のディレクトリにbatファイルとして記録されていることがわかります。しかし、タスクスケジューラを介して実行すると、サービスウィンドウのように、バットの実行を確認できます。サービスの再起動を確認できますが、何もログに記録されません。問題が何であるかを誰かが知っていますか?

これは、Windows Server 2008 R264ビット上にあります。

ありがとう

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

タスクスケジューラで実行する場合、作業フォルダ(デフォルト)は%windri%\system32です。したがって、タスクによって作成された、パスが指定されていないファイルはすべてそこに書き込まれます(または、少なくともそこに書き込もうとします)。

これを回避するには、SET logfilename_sp_fix="SPSearchFix.log"行に絶対パスを指定します。

例:SET logfilename_sp_fix="c:\temp\SPSearchFix.log

また、すべてのユーザー(または少なくともタスクを実行するユーザー)が、選択したフォルダーへの書き込みアクセス権を持っていることを確認してください。

2