1

ASP.net と C# (Windows Server 2003) を使用してプログラムで Windows タスクを作成する必要があります。次のコードを使用する場合:

Process p = new Process();
p.StartInfo.FileName = "schtasks.exe";
p.StartInfo.Arguments = " /create /tn MyTask /tr notepad.exe /sc DAILY /st 10:00:00 /ru myUsername /rp myPassword ";
p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
p.Start();
p.WaitForExit();

タスクは正常に作成されますが、タスクは実行されず、「開始できませんでした」と表示されます</p>

また、ログ ファイルには、「MyTask.job」(notepad.exe) 10/9/2012 10:00 PM ** エラー ** 指定されたタスクのアカウント情報を取得しようとして失敗しました。したがって、タスクは実行されませんでした。エラーが発生したか、タスクのアカウント情報が存在しませんでした。具体的なエラー: 0x8004130f: 指定されたタスクのタスク スケジューラ セキュリティ データベースにアカウント情報が見つかりませんでした。

コントロールパネル/スケジュールされたタスクに移動し、タスクを右クリックしてパスワードを再度設定すると、タスクは次回に正常に実行されます。どのようにできるのか?また、コードを次のように変更すると:

    Process p = new Process();
    p.StartInfo.FileName = "schtasks.exe";
    p.StartInfo.Arguments = " /create /tn MyTask /tr notepad.exe /sc DAILY /st 10:00:00 /s system /u myUsername /p myPassword ";
    p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
    p.Start();
    p.WaitForExit();

次のエラーが発生します。

エラー: ローカル接続でユーザー資格情報を渡しています

4

1 に答える 1

0

私はむしろ管理されたTask Scheduler Wrapperを使用したいと思います.IMOは、ASP.NETアプリケーションの場合はさらに、別のプロセスを開始するよりもはるかにクリーンなアプローチです。

それでも schtasks.exe を使用したい場合は、この SO の回答を参照してください。

https://stackoverflow.com/a/702852/351383

于 2012-10-09T10:22:35.570 に答える