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

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

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

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

見逃した KB 修正や見落とした問題はありますか? 通常、スケジュールの実行が停止したとユーザーから報告されたときにのみ問題が発見されるため、これは実際の信頼性の問題です。

より信頼性の高い代替スケジューラを提案する回答もいただければ幸いです。

ありがとう

答え1

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

スケジュールするタスクのオプションのチェックがRun only if logged in外されていることを確認してください。

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

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

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

答え2

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

答え3

ユーザーがログインしているときにのみ正しく実行されるタスクは、権限の問題のように思えます。タスクは具体的に何を行うのでしょうか?

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

編集

これを検証したいのですが、あなたの質問とコメントの事実が矛盾しているようです。

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

システムの起動時にタスクが正しく実行されません (結果が望ましくない場合でも 0x0 が返されます)。

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

しかし、あなたはこう言います。

通常は0x0(成功)と表示されます。実際、その他のアカウント使用すると、実行されていないにもかかわらず、実行されたと表示され、0x0 が返されます。

その他のアカウント矛盾しているようです。ローカル管理者権限を持つアカウントは2つしか言及されていません。まず、質問ではタスクについて述べています動作する他のアカウントでリモートログインすると、コメントでそれを言う動作しません混乱しそうです。

関連情報