タスクスケジューラーのプログラムによる時間変更について

Anonymous
2024-11-20T01:59:55+00:00

バッチプログラム(.VBS/.BATの SCHTASKS)にてタスクの起動時間を変更すると、

時間の変更と共に(LogonType)「ユーザーがログオンしているときのみ実行する」のチェックが「ユーザーがログオンしているかどうにかかわらず実行する」に勝手に変わってしまいます。

「ユーザーがログオンしているかどうにかかわらず・・」がセットしていると、(Windows11では)指定した時間に BackGround で実行されてしまう為、Msg等表示がされません。ForGround で実行したい。

この「ログオンしているときのみ・・」を変化させずにプログラムで時間を変更する方法はないでしょうか?。(「時間の変更」時にLogonTypeが変化することがおかしいと思いますが・・) よろしくお願いいたします。

・SCHTASKSの オプション 「IT」 の有無はテスト済み → NG どちらの場合も 「ユーザーがログオンしているかどうかにかかわらず・・」に変わってしまう。

・時間を変更するプログラムはタスクから「最上位の特権で実行する」を指定して実行しています。

・Windows7 でもプログラムで時間を変更すると「ログオンしている・・」が変化してしまいますが、Windows7 ではいずれの状況でも、プログラムは指定時間に Forground で開始します。

・Windows11 Home バージョン 24H2 OSビルド 26100.2314 です。 インストールは 2024/09

以下の「トピック」については適当なものが見つからないので、<設定>としました。

*** Moved from Windows / Windows 11 / 設定 ***

ビジネス向け Windows | IT プロフェッショナル用 Windows クライアント | ユーザー エクスペリエンス | リモート デスクトップ サービスとターミナル サービス

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。 プライバシーを保護するために、移行された質問のユーザー プロファイルは匿名化されます。

0 件のコメント コメントはありません
{count} 件の投票

3 件の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2024-11-25T15:58:18+00:00

    この応答は自動的に翻訳されています。 その結果、文法上の誤りや奇妙な言い回しが生じる可能性があります。

    こんにちは

    マイクロソフト コミュニティ フォーラムに投稿していただき、ありがとうございます。

    必要に応じて、SCHTASKS コマンドを使用して直接時刻を変更してみることができます。

    SCHTASKS /Change /TN "Task name" /ST "New start time" 
    

    このコマンドは、タスクの開始時刻のみを変更します。その他の設定は変更されません。

    さらに、PowerShell スクリプトを使用して、他の設定を維持しながらタスクの開始時刻を変更できます。

    $taskName = "Task name" 
    
    $task = Get-ScheduledTask -TaskName $taskName 
    
    $task.Triggers[0].StartBoundary = (Get-Date).date. AddHours(new hours).AddMinutes(new minutes) 
    
    Set-ScheduledTask $task
    

    これがお役に立てば幸いです。

    よろしくお願いいたします

    ジェイセン

    0 件のコメント コメントはありません
  2. Anonymous
    2024-11-29T03:52:33+00:00

    返信ありがとうございます。

    ログオンタイプの変更(※)なしにタスクスケジューラー実行時間を変更する方法として、以下の二つを返信いただきました。

    1. SCHTASKS を使用してバッチで実行する方法

    2. PowerShell で変更する方法

    最初に 2. のPowerShell での実行結果をお知らせします。

    返信いただいたPowerShell の3行目の時間セットの一部を変更することで、ログオンタイプの変更なしに時間の変更ができました。$task.Triggers[0].StartBoundary = "2024-11-29T12:30:00"

    1. の方法でもログオンタイプの変更なしに、時間の変更ができましたが、 DOSコマンドの画面が開き、実行者のパスワードの入力が求められます。

    これではプログラムを自動実行する事はできません。

    そこで、SCHTASKS の後ろに時間の指定と共に /RP xxxxxxx をセットし実行したところ、DOSの画面は表示されずに時間の変更ができましたが、同時に最初に私が指摘した通り、

    ログオンタイプも変更されてしまいます。このログオンタイプが「ログオンしているかどうかにかかわらず実行する」に変更されてしまうと、指定の時間に実行されるプログラムにメッセージ出力するコーディングが含まれていると、そのメッセージが画面に表示されません。応答できません。

    できれば、バッチ(BAT)、またはVBS で実行したいと考えています。ログオンタイプを変更せずに、起動時間を変更する方法はないでしょうか?。

     

    ※上記で「ログオンタイプが変更する」という意味は、チェックが「ユーザーがログオンしてる時のみ実行する(R)から「ユーザーがログオンしているかどうかにかかわらず実行する(W)」に変更されるという意味です。

    0 件のコメント コメントはありません
  3. 削除済み

    この回答は当社の行動規範に違反したため削除されました。 アクションを実行する前にこの回答を手動で報告したか、自動検出機能により特定しました。 詳細については、当社の行動規範を参照してください。


    コメントはオフになっています。 詳細情報