タスクスケジューラ設定編”ブログ投稿用画像 変換スクリプト(Xbox+Windows 11用)”
まずはお知らせです!
以前に公開したPowerShellのスクリプトについて、よりわかりやすくするため、リポジトリとスクリプト名を変更しました。
Convert-XboxScreenshotsForAmeblo⇒Convert-XboxScreenshotsForSNS
READMEも見やすく整理していますので、興味のある方はぜひご覧ください。
という事で、本日の本題です!
このスクリプトを実行するのに、タスクスケジューラというモノを利用しているのですが、これがまたわかりにくいw
なので、前回はさらっと説明した部分にスポットを当てて、Tips記事を書いてみることにしました。
まず、本体であるPowerShellスクリプト(ps1ファイル)を、どこかに保存します。
もちろん、みなさんの環境で変えなきゃいけないところは、きちんと編集してくださいね。
変更する箇所は、READMEを読んでくだされば、わかると思います!
次に、PC内のPowerShellのプログラムがある場所を探します。
タスクスケジューラの「プログラム/スクリプト」に指定する実行ファイルです。
PowerShellはデフォルトだと、
"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe"
"C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe"
辺りにあるのではないでしょうか?
ここにあるのが、基本的には 5.1以上のバージョンになっているかと思います。
最新のPowerShellを個別で入れている方は、もちろんそちらを使っても大丈夫です。
まあ、そういう方はこの記事なんて参考にならないと思いますが…w
私の場合は
"D:\Program Files\PowerShell\7\pwsh.exe"
にPowerShell 7を置いています。
そして、いよいよ今回の本丸…タスクスケジューラの登場ですね。
Windowsの検索窓に、“タスク”や“task”と打ち込めば、表示されます。
タスクマネージャーと間違わないでくださいねw

クリックすると、下記のようなアプリが起動してきたかと思います。

ここで、くじけないでいただきたいのですがw
タスクスケジューラを初めて開くと、急に難しそうな画面が出てきます。
ですが、今回使うのはごく一部の機能だけです。
次にメニューの「操作」をクリックして、「基本タスクの作成」または「タスクの作成」どちらでも構いません。
多分、タスクスケジューラの事がわからない人にとっては、「基本タスクの作成」の方が楽でしょうか。

なので、今回は「基本タスクの作成」の手順で説明していきます。
慣れてきたら「タスクの作成」の方が細かい設定もできますが、今回の用途なら基本タスクで十分です。
まず、最初の画面でタスクの名前と、説明を設定します。
ここは、ご自身がパッと見て、わかりやすい内容にする事が肝要ですw

今回は
Name:Convert-XboxScreenShots-Test
説明:Xboxのスクリーンショットフォルダを監視し、そこにあるPNG画像ファイルをJPG形式に変換/圧縮します。
としています。
「次へ」を押すと、下の画面になります。
トリガーの設定です。
トリガーというのは、今回のプログラムをどういうタイミングで実行するのか?という設定です。
最初は、「ログオン時」を選んで「次へ」を押します。
(最終的には、5分ごとに指定フォルダを監視して、自動変換させたいのですが「基本タスクの作成」ではスケジュールが作れないので、「ログオン時」を選んでいます。5分おきの設定は、後段で説明します!)

次に、実行したいタスクを選択します。
今回は、PowerShellスクリプトというプログラムを実行させたいので「プログラムの開始」を選択して「次へ」を押します。

すると、下の画面になります。
ここからが、いよいよプログラム実行設定の本番です。
もう少し着いてきてくださいねw
プログラム/スクリプトの欄に、先ほど探してもらったPowerShellの実行ファイルを指定します。
もちろん、右にある「参照」ボタンを押してエクスプローラからたどって指定しても良いですよ!


「プログラム/スクリプト」テキストボックスの中身は、私の場合は
"D:\Program Files\PowerShell\7\pwsh.exe"になります。
次に「引数の追加(オプション)」の欄です。
ここが実は、地味に重要で…プログラムを実行させるときのおまじないみたいなモノなんですけど
私の場合は、以下のように設定しています。
-NoProfile -WindowStyle Hidden -File "F:\Codes\Convert-XboxScreenshotsForSNS.ps1"
以下、順番に簡単に説明しますね。
-NoProfile
⇒ユーザー固有のPowerShell設定を読み込まない(これはそう言うものだって覚えてもらうのが良いかもしれないですw)
-WindowStyle Hidden
⇒ここが一番重要です。特にPC版でForza Horizon 6をプレイしている方にとっては…
画像変換処理を実行するときに、Hidden設定にしていないと、PowerShellの実行画面が表示されてしまいますのでw
-File "F:\Codes\Convert-XboxScreenshotsForSNS.ps1"
⇒最後に、Fileで今回実行するスクリプトファイルのパスを入れてやります。この項目は、ご自身がps1ファイルを設置した場所に変更してくださいねw
後は「開始(オプション)」の項目ですが、ここは正直入れなくても大丈夫です。
PowerShellを実行したときの、作業用フォルダをこのパス使ってね的なおまじないですw
完全に入力された状態が、以下の通りです。

これで「次へ」を押すと、最後の確認画面になります。

「完了」を押すと、タスクが登録されて動き始めます。
最後に、後で説明するとお話しした、5分おき実行のタスク化について、書いておきます。
タスクスケジューラの最初の画面に戻って、F5ボタンを押すと、タスクスケジュールライブラリの中に、先ほど登録したタスクが表示されたと思います。
が、今のままだとPCログオン時にしか実行されないため、これを5分ごとに自動実行されるように、変更します!
まず、今回作ったConvert-XboxScreenShots-Testをダブルクリックします。
そうしたら「トリガー」タブを選択し、先ほど設定した「ログオン時」のトリガーを選んだ状態で、編集ボタンを押します。

すると、下の画面が出てきます。
ここで、詳細な実行スケジュールを設定できます。

私が設定しているのは、詳細設定の「繰り返し間隔」のところですね。
ここを、5分間で無期限で実行し続けるようにしています。

これで、XboxスクリーンショットでOneDriveがあふれて困る!状態は、完全に解消されるかと思います!
途中、Windowsログオンのパスワードを聞かれるかも知れないですが、その場合は素直に入力しましょうw
それでは、本日はこの辺りにて…
皆様、よきXboxライフを!