0

手動で実行すると完全に機能するバッチ ファイルを呼び出す vbs ファイルを作成しました。ただし、スケジュールされたタスクから同じvbsスクリプトを実行すると、vbsはエラーなしで完了しますが、担当するタスクが実行されていないため、バッチファイルが呼び出されないようです。

スケジュールされたタスクが自分の管理者アカウントで実行されることを確認しました。私はこれと同じタスクを古いサーバーで実行した経験がかなりありますが、最近、2003 から新しい 2008 R2 に移行しました。

実行されない行は次のとおりです。

wshell.run "%comspec% /c ""C:\My Scripts\ForAdministration\AddSitesScripts\AddSite.bat"" " & DomainName & " " & WebsiteID & " " & DomainName20 & " " & Path & " " & HasStats & " " & NewAppPool & " " & 1 & " " & 1 & " " & 1, 0, True

すべての変数をテキスト ファイルに記録しましたが、問題ありません。私が言ったように、これは手動でトリガーされたときにうまく動作します。

ご協力いただきありがとうございます!

4

2 に答える 2

0

スケジュールされたタスクで別のユーザーとして実行されている可能性があります。

ユーザーが必要な権限を持っていることを確認します。

問題が想定された現在のディレクトリによるものではないことを確認します。

次のステートメントをbatファイルの最初の行に入れ、両方の方法(手動とスケジュール)を実行してみてください:

echo.CD=%cd% & pause

「管理者として実行」すると、現在のディレクトリが変更されることに注意してください。プログラムの先頭に次の行を追加することで解決できます (ファイル/フォルダーを参照する前に目的の CD を設定するため)。

pushd %~dp0
于 2013-02-26T12:06:31.817 に答える
0

2008 R2 マシンは 64 ビット システムであり、%comspec% は CMD.exe の 64 ビット バージョンを指定します。ほとんどの場合、CMD.exe の 32 ビット バージョンを使用する必要があります (はい、2 つあります!)。%comspec% を次のように変更します

%SystemRoot%\sysWOW64\cmd.exe

はいそうです!sysWOW64 の CMD.exe は 32 ビット バージョンです。

于 2013-02-26T02:14:02.483 に答える