web-dev-qa-db-ja.com

Windowsスケジューラ-ユーザーがログインしていないときにタスクが実行されない

私はWindowsServer 2003を使用しており、1つのアカウントでリモートデスクトップを介してスケジュールを設定しています。そのアカウントは「作成者」列にも表示されます。 「ログオンした場合にのみ実行」のチェックを外しました。

そのアカウントでログインし、セッションを存続させたまま「切断」すると、スケジュールが実行されます。しかし、サーバーが再起動されるたびに、再度ログインして切断するまで、タスクは再び実行に失敗します。

見逃したKB修正や見落とした問題はありますか?通常、私はユーザーがスケジュールの実行を停止したと言ったときにのみ問題を発見するので、それは本当の信頼性の問題です。

また、信頼性の高い代替スケジューラーを提案する回答も喜ばしく思います。

ありがとう

3
Glinkot

確認すべき点がいくつかあります。

スケジュールしているタスクのRun only if logged inオプションがオフになっていることを確認してください。

タスクスケジューラがデスクトップと対話するように設定されていることを確認します

  1. [スタート]、[コントロールパネル]、[管理ツール]の順にクリックします。
  2. [コンピューターの管理]をクリックします。
  3. [サービスとアプリケーション]を展開し、[サービス]をクリックします。
  4. タスクスケジューラサービスを右クリックし、[プロパティ]をクリックします。
  5. [全般]タブで、スタートアップの種類が[自動]に設定されていること、およびサービスのステータスが[開始済み]になっていることを確認します。サービスが実行されていない場合は、[開始]をクリックします。
  6. [ログオン]タブで、ローカルシステムアカウントが選択されていること、および[サービスによるデスクトップとの対話を許可する]チェックボックスがオンになっていることを確認します。
  7. [OK]をクリックして、[コンピューターの管理]を終了します

ユーザーアカウントの代わりにローカルシステムアカウントを使用してスケジュールされたタスクを実行する場合は、SCHTASKSツールを使用する必要があります(たとえば、サーバー上でローカルに実行され、ネットワークリソースを使用する必要がないタスクなど)

2
Enigman

タスクを実行しているユーザーに「バッチジョブとして実行」権限を付与する必要があります。ローカルセキュリティポリシーに含まれています

1
Nick

ユーザーがログインしている場合にのみ正しく実行されるタスクは、権限の問題のように聞こえます。タスクは正確に何をしますか?

ユーザーアカウントがコンソールまたはリモートセッションでログインしたままになっていて、タスクが別のリモートセッションでリモートで開始された場合、タスクは正しく実行されますか?

編集

これを確認したい。あなたの質問とあなたのコメントの事実は矛盾しているようです。

したがって、状況を正しく理解していれば、タスクは「Admin2」の下に作成されました。そのアカウントにログインすると、リモートであろうとコンソールであろうと、ログイン中にタスクが開始されます。

タスクは、システムの起動時に正しく実行することを拒否します(結果が望ましくない場合でも、0x0を返します)。

また、「Admin1」でログインした場合も正しく実行されません。

しかし、あなたは言う:

通常は0x0(成功)と表示されます。実際、私が使用しているother accountから実行しようとすると、実行されたと表示され、実行されていなくても0x0が返されます。

他のアカウントは矛盾しているようです。ローカル管理者権限を持つアカウントは2つだけです。最初に、リモートでログインする場合、質問でタスク機能します他のアカウントで述べます。それからコメントであなたはそれを言います動作しません。これは紛らわしいようです。

0
surfasb