Windows のタスク スケジューラで動画や音楽を自動再生しようとすると、実行のたびに「このファイルを開くには、どのアプリを使いますか?」と聞かれて止まってしまうことがあります。本記事では、その原因と仕組みを分かりやすく解説しつつ、VLC や Windows メディア プレーヤーなどの具体的な設定例を交えながら、ダイアログを出さずに安定して自動再生させる方法を詳しく紹介します。
タスク スケジューラで毎回アプリ選択ダイアログが出る現象とは
まずは、どのような状況で問題が発生するのか、整理しておきます。
- タスク スケジューラで .mp4 や .mp3 などのメディアファイルを自動再生するタスクを作成した。
- 「プログラム/スクリプト」にメディアファイルそのもの(例:
C:\Media\sample.mp4)を指定している。 - タスクを実行すると、次のようなダイアログが表示されて止まってしまう。
「このファイルを開くには、どのアプリを使いますか?」 / 「使用するアプリを選んでください」 - 手動で再生するときは問題なく既定のアプリ(VLC や 映画 & テレビ など)で開ける。
つまり「エクスプローラーからダブルクリックすると普通に再生できるのに、タスク スケジューラ経由だと毎回アプリの選択を要求される」という状態です。
| 操作方法 | 結果 |
|---|---|
| エクスプローラーで mp4 をダブルクリック | 既定のアプリでそのまま再生される |
| タスク スケジューラのタスクを実行 | 「使用するアプリを選んでください」ダイアログが表示される |
この違いの原因は、「どのユーザーアカウントの、どのファイル関連付け設定を使っているか」という点にあります。
原因:ファイル関連付け(既定のアプリ)と実行ユーザーのギャップ
Windows 10 / Windows 11 には「既定のアプリ」という仕組みがあります。.mp4、.mp3、.jpg など、拡張子ごとにどのアプリで開くかを、ユーザーごとに設定できる仕組みです。
ポイントはここです。
- 既定のアプリの設定は「ユーザー単位」で管理される
- タスク スケジューラのタスクも、設定されたユーザーアカウントで実行される
つまり、次のような食い違いが起こると、毎回アプリ選択ダイアログが表示されてしまいます。
| 条件 | 結果 |
|---|---|
| エクスプローラーで操作しているユーザーには、.mp4 → VLC という既定のアプリが設定されている | ダブルクリックで VLC が起動し、問題なく再生される |
| タスク スケジューラのタスクは SYSTEM や別ユーザーで実行されている | そのユーザーには .mp4 の関連付けが無く、アプリ選択ダイアログが表示される |
さらに、タスク スケジューラの「プログラム/スクリプト」にメディアファイルを直接指定してしまうと、Windows は「この拡張子はどのアプリに関連付けられているかな?」と探しにいきます。そのユーザーの関連付け情報が不十分だと、結果として「どのアプリで開きますか?」と確認せざるを得なくなるわけです。
この仕組みを踏まえると、「既定のアプリに頼らず、明示的にプレーヤーの EXE を指定する」というのが最も確実な対策であることが見えてきます。
解決策の基本方針:プレーヤーの EXE + 引数でメディアファイルを渡す
問題を回避する王道パターンは、次のような設定に変えることです。
| 設定項目 | 指定内容 |
|---|---|
| プログラム/スクリプト | 再生したいメディアプレーヤーの .exe(例:vlc.exe) |
| 引数の追加(オプション) | 再生したいメディアファイルの フルパス(必要に応じてオプション) |
| 開始(オプション) | メディアファイルがあるフォルダー(必要に応じて) |
この方法では、「どのアプリで開くのか」をファイル関連付けに任せず、「この EXE で、このファイルを開いて」とタスク スケジューラにハッキリ指示するため、ユーザーアカウントや既定のアプリ設定に左右されずに動作します。
- メリット1:毎回「使用するアプリを選んでください」が出なくなる
- メリット2:タスクが別ユーザーや SYSTEM アカウントで実行されても安定して動く
- メリット3:VLC などのコマンドラインオプションで、全画面再生・終了動作などを細かく制御できる
具体的な設定手順(Windows 10 / 11 共通)
ここからは、実際にタスクを作る手順を詳しく説明します。例として、VLC メディアプレーヤーで動画を自動再生するケースを想定します。
タスクの基本情報を設定する
- スタートメニューまたは検索から 「タスク スケジューラ」 を開きます。
- 右側の「操作」から 「タスクの作成…」 をクリックします。
- [全般] タブで、以下を設定します。
- 名前:分かりやすい名前(例:
朝のBGM自動再生) - 説明:何のタスクかメモ(例:
ログオン時にBGMを再生) - ユーザーまたはグループ:動画を再生させたいユーザーを指定
- セキュリティ オプション:
- 画面にプレーヤーを表示したい → 「ユーザーがログオンしているときのみ実行する」
- バックグラウンド再生(音だけ)でもよい、またはサーバー用途 → 必要に応じて 「ユーザーがログオンしているかどうかにかかわらず実行する」
- 名前:分かりやすい名前(例:
動画を画面に表示させたい場合は、ほとんどのケースで「ユーザーがログオンしているときのみ実行する」を選ぶのが安全です。
トリガー(いつ再生するか)を設定する
- [トリガー] タブを開き、「新規」 をクリックします。
- 例えば、次のように設定できます。
- ログオン時に再生したい → 「タスクの開始」=「ログオン時」
- 毎朝決まった時間に再生したい → 「タスクの開始」=「スケジュールに従う」 で時間を指定
- 必要に応じて「繰り返し間隔」や「有効」チェックなどを設定し、OK を押します。
トリガーは本題ではありませんが、「いつ再生したいか」のイメージが固まっていると、後のテストがやりやすくなります。
最重要:操作(プログラム/スクリプト)を設定する
- [操作] タブを開き、「新規」 をクリックします。
- 「操作」 が 「プログラムの開始」 になっていることを確認します。
- 「プログラム/スクリプト」 に、再生したいプレーヤーの EXE ファイルを指定します。例:
- VLC メディアプレーヤー:
C:\Program Files\VideoLAN\VLC\vlc.exe - Windows メディア プレーヤー:
C:\Program Files\Windows Media Player\wmplayer.exe
- VLC メディアプレーヤー:
- 「引数の追加(オプション)」 に、再生したいメディアファイルのフルパスを指定します。
- 例:
"C:\Media\sample.mp4" - ファイル名やフォルダー名に 空白 が含まれる場合は、必ず 二重引用符(
")で全体を囲む ことが重要です。
- 例:
- 必要に応じて、プレーヤーのコマンドラインオプション(全画面や自動終了など)もこの「引数」に追加します。
- 「開始(オプション)」 には、メディアファイルが置かれているフォルダーを指定するとトラブルが減ります。例:
C:\Media
- OK をクリックして操作を保存します。
| 設定項目 | VLC の例 | Windows メディア プレーヤーの例 |
|---|---|---|
| プログラム/スクリプト | C:\Program Files\VideoLAN\VLC\vlc.exe | C:\Program Files\Windows Media Player\wmplayer.exe |
| 引数の追加 | "C:\Media\sample.mp4" --play-and-exit --fullscreen | /play /close "C:\Media\sample.mp4" |
| 開始 | C:\Media | C:\Media |
ここまで設定できたら、[OK] でタスクを保存し、右クリックの 「実行」 から動作確認してみましょう。
VLC メディアプレーヤーでの具体例と便利なオプション
VLC はコマンドラインオプションが非常に豊富で、タスク スケジューラとの相性も良いプレーヤーです。代表的な使い方をいくつか紹介します。
標準的な自動再生+自動終了
よく使われるパターンは次のようなものです。
プログラム/スクリプト:
C:\Program Files\VideoLAN\VLC\vlc.exe
引数の追加:
"C:\Media\sample.mp4" --play-and-exit
--play-and-exit:再生完了後に VLC 自体を自動終了
全画面で動画を再生する
デジタルサイネージや店頭モニター用途では、ログオンしたら自動で全画面再生させたいケースも多いでしょう。その場合は次のようにします。
引数の追加:
"C:\Media\sample.mp4" --play-and-exit --fullscreen
--fullscreen:全画面表示で再生
ループ再生やプレイリストの再生
複数の動画を繰り返し再生したい場合は、プレイリストファイル(m3u 等)を作成しておき、それを指定するのが楽です。
引数の追加:
"C:\Media\playlist.m3u" --loop
--loop:プレイリストをループ再生
このように、VLC の EXE を直接指定して引数で制御する流れにしておけば、「使用するアプリを選んでください」ダイアログから完全に解放されるだけでなく、再生方法も柔軟にカスタマイズできます。
Windows メディア プレーヤーでの設定例
標準アプリである Windows メディア プレーヤーを使いたい場合も、考え方は同じです。EXE を指定し、ファイルパスとオプションを引数に渡します。
プログラム/スクリプト:
C:\Program Files\Windows Media Player\wmplayer.exe
引数の追加:
/play /close "C:\Media\sample.mp4"
/play:再生を開始/close:再生完了後にプレーヤーを閉じる
Windows メディア プレーヤーは VLC ほど細かい制御はできませんが、「再生して終わったら閉じる」といったシンプルな自動再生なら十分対応できます。
実行ユーザーと「ユーザーがログオンしているときのみ実行」の重要性
タスク スケジューラの設定でもう一つ重要なのが、「タスクをどのユーザーとして実行するか」です。ここを理解していないと、次のようなハマり方をします。
- タスクは成功している(結果が「完了」になっている)のに、画面には何も表示されない
- 音だけ鳴る/まったく何も起こらないように見える
- あるユーザーでログオン中は正常に見えるが、別ユーザーに切り替えると動かなくなる
画面にプレーヤーを表示したいなら
動画や音楽プレーヤーのウィンドウを実際に表示させたい場合は、次の条件を満たすようにします。
- タスクの実行ユーザーを 現在ログオンしている自分のアカウント にする
- [全般] タブで 「ユーザーがログオンしているときのみ実行する」 を選ぶ
| 目的 | 推奨設定 |
|---|---|
| ログオン中のユーザー画面で動画を表示したい | 実行ユーザー:そのユーザー/ログオン時のみ実行 |
| バックグラウンドで音を鳴らすだけ・サーバー用途 | 状況に応じて SYSTEM やサービス用ユーザーで「ログオンしているかどうかにかかわらず実行」も検討 |
UI を伴うアプリを SYSTEM アカウントなどで実行すると、「動いてはいるがユーザー画面には見えない」という状態になりがちなので注意が必要です。
よくあるハマりどころと対策
ファイルパスに空白があるのに引用符で囲んでいない
最も多いミスはこれです。
| NG例 | OK例 |
|---|---|
C:\Media\my video.mp4 | "C:\Media\my video.mp4" |
空白があるパスを引用符で囲まないと、Windows は次のように勘違いしてしまいます。
C:\Media\my→ 第1引数video.mp4→ 第2引数
その結果、「ファイルが見つかりません」エラーになったり、プレーヤーが起動しても何も再生されない状態になったりします。迷ったら、フルパスは全部 "…" で囲むと思っておけば安全です。
ネットワーク共有(UNC パス)の動画を再生したい
ファイルサーバーや NAS 上の動画を再生したい場合も、基本的には同じですが、次の点に注意します。
- パスは UNC パス(
\\Server\Share\video.mp4)で指定する - タスクを実行するユーザーに、その共有フォルダーへのアクセス権が付与されていること
- ログオンスクリプトなどでネットワークドライブをマップしている場合でも、タスク スケジューラからはドライブレターが見えない場合がある
例えば、エクスプローラー上では Z:\video\movie.mp4 として見えていても、タスク実行時には Z: ドライブが存在しない、ということがよくあります。この場合は、タスクの引数には次のように UNC パスで直接指定するのが無難です。
"\\Server\Share\video\movie.mp4"
UWP アプリ(フォト、映画 & テレビ)での起動は難しい
Windows 10/11 の「フォト」や「映画 & テレビ」は UWP アプリ(ストアアプリ)のため、単純に EXE を指定することができません。特別なコマンドで呼び出したり、プロトコルを使ったりする必要がありますが、タスク スケジューラからの利用は不安定になりがちです。
安定した運用を優先するなら、次のような方針をおすすめします。
- VLC、MPC-HC などの デスクトップアプリ(.exe 型) のプレーヤーを利用する
- どうしても UWP アプリを使いたい場合は、動作が保証されない前提で検証環境で十分テストする
既定のアプリ側で解決したい場合の注意点
「タスク スケジューラの設定はなるべくシンプルにしたいから、既定のアプリ側でなんとかしたい」という考え方もあります。その場合は、タスクを実行するユーザーアカウントごとに、拡張子とアプリの関連付けをしっかり設定しておく必要があります。
既定のアプリを変更する手順(ユーザーごと)
- 対象ユーザーで Windows にログオンします。
- [設定] → [アプリ] → [既定のアプリ] を開きます。
- 下部の 「ファイルの種類ごとに既定のアプリを選ぶ」 をクリックします。
- 一覧から
.mp4や.mp3を探し、目的のプレーヤー(VLC など)を選択します。
ただし、この方式には次の弱点があります。
- タスクを実行するユーザーアカウントが複数ある場合、それぞれで設定が必要
- SYSTEM アカウントなど、UI のないアカウントでは設定が困難
- 将来、既定のアプリを変更したときに、タスクの挙動も変わってしまう可能性がある
そのため、安定性と再現性を重視するなら「EXE + 引数」方式がベストです。既定のアプリ方式は、「どうしてもファイルを直接開く設定にしたい場合のサブプラン」として考えておくとよいでしょう。
上級者向け:PowerShell やバッチファイルからメディアを起動する
もう少し柔軟な制御をしたい場合は、タスク スケジューラから直接プレーヤーを起動するのではなく、PowerShell スクリプトやバッチファイルを間に挟む方法もあります。
PowerShell から VLC を起動する例
$player = "C:\Program Files\VideoLAN\VLC\vlc.exe"
$media = "C:\Media\sample.mp4"
Start-Process -FilePath $player -ArgumentList "`"$media`" --play-and-exit --fullscreen"
このスクリプトを C:\Scripts\PlayVideo.ps1 などとして保存し、タスク スケジューラの設定を次のようにします。
プログラム/スクリプト:
powershell.exe
引数の追加:
-ExecutionPolicy Bypass -File "C:\Scripts\PlayVideo.ps1"
この方法のメリットは、スクリプト側で細かいエラーハンドリングやログ出力、再生前後の処理(ログ記録、音量調整など)を自由に書ける点です。
バッチファイル(.bat)から起動する例
@echo off
set PLAYER="C:\Program Files\VideoLAN\VLC\vlc.exe"
set MEDIA="C:\Media\sample.mp4"
%PLAYER% %MEDIA% --play-and-exit --fullscreen
これを PlayVideo.bat として保存し、タスク スケジューラの 「プログラム/スクリプト」 にそのバッチファイルを指定するやり方もあります。バッチファイルの場合、コマンドプロンプトが一瞬表示されることがありますが、シンプルに組めるという利点があります。
トラブルシューティング用チェックリスト
ここまでの内容を踏まえ、「まだうまく動かない」というときに確認してほしいポイントをチェックリスト形式でまとめます。
| 症状 | 確認ポイント |
|---|---|
| 「使用するアプリを選んでください」が表示される | プログラム/スクリプトに メディアファイルを直接指定していないか プレーヤーの EXE + 引数の形式になっているか |
| タスクは成功しているのに何も表示されない | 実行ユーザーがログオン中のユーザーになっているか 「ユーザーがログオンしているときのみ実行する」を選んでいるか |
| プレーヤーは起動するがファイルが再生されない | ファイルパスが正しいか(コピー & ペーストで再確認) パスを "…" で囲んでいるか ネットワークパスの場合、UNC パスで指定しているか |
| ネットワーク上のファイルが見つからないと言われる | 実行ユーザーに共有フォルダーの権限があるか マップドドライブではなく UNC パスを使っているか |
実用アイデア:タスク スケジューラ+メディア自動再生の活用例
最後に、今回紹介したテクニックの具体的な活用アイデアをいくつか紹介します。
- 毎朝のBGMを自動で流す
ログオン時トリガー+VLC を使い、オフィスの PC で朝だけ軽い音楽を自動再生。 - 閉店後に店舗内のモニターでプロモーション動画を自動再生
時刻トリガー+全画面再生オプションで、決まった時間帯だけ広告動画をループ再生。 - 定期的な案内動画の再生
学校や社内の案内用モニターで、始業時間やイベント開始前に自動で動画を流す。
いずれのケースでも、「タスク スケジューラで EXE を直接指定し、メディアファイルを引数で渡す」というパターンを守れば、安定した自動再生環境を構築できます。
まとめ:EXE と引数で設定すればアプリ選択ダイアログとは無縁になる
本記事で解説してきたポイントを簡単に整理します。
- 「使用するアプリを選んでください」ダイアログの原因は、タスク実行ユーザーのファイル関連付けがあいまいなことにある。
- タスク スケジューラの 「プログラム/スクリプト」にメディアファイルそのものを指定するのは避ける。
- プレーヤーの EXE を指定し、メディアファイルのパスを引数で渡すことで、既定のアプリ設定に依存しない安定動作が期待できる。
- 実行ユーザーと「ユーザーがログオンしているときのみ実行」の設定を合わせることで、画面表示の有無も思い通りに制御できる。
- VLC や Windows メディア プレーヤーなど、EXE ベースのプレーヤーを使うと設定・運用がしやすい。
タスク スケジューラとメディアプレーヤーの組み合わせは、一度正しいパターンを作ってしまえば、さまざまな自動再生シナリオに応用できます。ぜひ、EXE + 引数方式で「アプリ選択ダイアログに邪魔されない」快適な自動再生環境を構築してみてください。

コメント