みなさんこんにちは、テラド(@terashin1226)です!
Windowsのポチポチ業務(マウスを使った業務)を爆速化するために、PowerShellを使った効率化の方法をお伝えしています。
前回はコマンドレット:Rename-Itemで正規表現を使って複雑なファイル名変更をする方法をお伝えしました。
今回はタスクスケジューラというWindowsの標準機能を使ってPowerShellのスクリプトを決まった日時に起動する方法をお伝えします。
タスクスケジューラとPowerShellのスクリプトで定例的な業務を自動化して、コアな業務に集中して取り組める環境を作りましょう!
それではいってみましょう!
タスクスケジューラを起動する
Windowsには決まった日時にアプリケーションを実行するタスクスケジューラという機能が標準搭載されています。
タスクスケジューラを使うことでファイルのバックアップなど定期的に実施したい作業を忘れずに実行することができます。またPCをシャットダウンした状態でも処理は実行されます。
早速ですが、タスクスケジューラを起動しましょう!
Windowsを押してスタートメニューを開き、そのままの状態で「タスク」と入力すると検索結果にタスクスケジューラが表示されます。表示されたタスクスケジューラをクリックすると…
タスクスケジューラが起動しました!
検索することで素早く起動できますが、タスクスケジューラは「コントロールパネル」から起動できる機能の一つです。コントロールパネルはWindowsの設定変更の際などによく登場しますのでこちらもご紹介しておきます。
スタートボタンをクリックするか、Windowsを押してスタートメニューを開き、Windowsシステムツール内のコントロールパネルをクリックします。
コントロールパネルが開いたら「システムとセキュリティ」をクリックします。
下のほうにある「管理ツール」をクリックします。
管理ツールの中に「タスクスケジューラ」がありました。こちらをダブルクリックすると…
タスクスケジューラが起動しました!
タスクスケジューラでタスクを作成する
タスクスケジューラはアプリケーションと、時刻や周期など起動する際の条件をまとめてタスクという単位で管理しています。
さっそくタスクを作成していきましょう!
基本的な条件を設定する
左上の「タスクスケジューラライブラリ」をクリックした後に、右側の操作エリアで「基本タスクの作成」をクリックします。
基本タスクの作成ウィザードが表示されます。タスクの名前と説明を入力して「次へ」をクリックします。
タスクのトリガーを設定します。今回は毎週にして「次へ」をクリックします。
①タスクの起動時刻、②週の間隔、③曜日を設定します。今回は毎週火曜日の22:10に起動させます。
次に操作を選びます。PowerShellのスクリプトを起動する場合は「プログラムの開始」を選びます。
PowerShellのスクリプトを指定する
「プログラムの開始」というダイアログが表示されました。タスクで起動するPowerShellのスクリプトを指定していきます。
下図のように「プログラム/スクリプト」と「引数の追加」を設定し「次へ」をクリックします。
「プログラム/スクリプト」にはPowerShellの実行ファイル「powershell.exe」のフルパスを指定します。実行ファイルが入っているディレクトリはPowerShellで確認できます。「$PSHOME」と入力しエンターを押すと…
PS C:\Users\terad> $PSHOME
C:\Windows\System32\WindowsPowerShell\v1.0
このように「powershell.exe」が格納されているディレクトリが表示されますのでこちらと「powershell.exe」を「\」でつないで「プログラム/スクリプト」に設定しましょう。
$PSHOMEは自動変数の1つで、PowerShellが自動で実行ファイルのディレクトリを設定してくれます。本連載ではパイプラインで引き渡したオブジェクトが自動的に設定される「$_」を紹介してきましたが、PowerShell自体が自動的に値を生成してれる変数を総称して自動変数といいます。
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
「引数の追加」にはスクリプトのフルパスを指定します。
今回はデスクトップにあるsample.ps1というスクリプトファイルを実行します。「引数の追加」に「C:\Users\terad\Desktop\sample.ps1」とフルパスを設定します。
最後にこれまで設定した内容が表示されますので、誤りがなければ「完了」をクリックします。
これでタスクが設定できました!
スクリプト実行時に追加で設定しておくべき条件
タスクスケジューラに新たに「ファイルバックアップ」という名前のタスクが追加されていますね。
あと2つだけ追加でスクリプトを実行する際に設定しておくべき条件があります。
ログオン/ログオフの条件を設定する
バックアップのタスクはログオフ中、シャットダウン時にも実行しておいてほしいですよね?
新たに追加されたタスクをダブルクリックすると以下のようなダイアログが表示されます。
「全般」タブで「ユーザーがログインしているかどうかにかかわらず実行する」を選択するとログオフ中にもタスクが実行されるようになります。
「パスワードを保存しない」を設定するとスクリプトでユーザー情報などを渡していた場合もタスク終了後に破棄されます。今回ユーザー情報を設定することはありませんが、チェックを入れていても弊害はありませんのでそのまま設定しておきます。
電源の条件を設定する
次に「条件」タブを選択し、電源の状態に関する設定を確認します。
- 「コンピュータをAC電源で使用している場合のみタスクを開始する」
- 「コンピュータの電源をバッテリに切り替える場合は停止する」
の2つにチェックを入れておくとACアダプターにつないでいるときだけタスクが実行されます。
ノートPCの場合、バッテリー電源の時はスクリプトが動作途中に電源が落ちて処理が途中で終了してしまう可能性がありますのでチェックを入れておくと安心です。
これでタスクスケジューラの追加設定は完了です!
まとめ
いかがだったでしょうか。
今回はタスクスケジューラというWindowsの標準機能を使ってPowerShellのスクリプトを決まった日時に起動する設定方法をご紹介しました。
毎日、毎週、毎月など自分の好きな間隔で定期的にタスクを実行することができます。ログオフ時に実行可能になる、ノートPCの方はバッテリー電源の時にだけ実行される2つの追加条件も忘れずに設定してくださいね。
次回は実際にファイルバックアップをするPowerShellのスクリプトをタスクスケジューラで起動してみますよ!
最後までお読みいただきありがとうございました!
連載目次:Windowsのポチポチ業務を爆速化するPowerShell
Windowsのポチポチ業務(マウスを使った業務)を爆速化するために、PowerShellを使った効率化の方法をお伝えしています。- Windowsのポチポチ業務を爆速化するPowerShell、はじめのハードルぐーーんと下げてみます!
- Windowsのポチポチ業務を爆速化するPowerShell、キーボードを使わずササっと起動する方法
- Windowsのポチポチ操作を爆速化するPowerShellの絶対条件!ディレクトリとその移動をマスターしよう!
- Windowsのポチポチ業務を爆速化するPowerShell、コマンドレットを腹の底から理解する!
- Windowsのポチポチ業務を爆速化するPowerShell、オンラインヘルプでコマンドレットを使い倒す!
- Windowsのポチポチ業務を爆速化するPowerShell、統合開発環境ISEを紹介します!
- Windowsのポチポチ業務を爆速化するPowerShell、スクリプトを実行するための準備
- Windowsのポチポチ業務を爆速化するPowerShell、フォルダを作るスクリプトの作り方
- Windowsのポチポチ業務を爆速化するPowerShell、if文を使いフォルダの有無で処理を分岐させる方法
- Windowsのポチポチ業務を爆速化するPowerShell、ForEach-Objectで配列の全要素を処理する方法
- Windowsのポチポチ業務を爆速化するPowerShell、パイプラインを使いコマンドレット間で値を引き渡す方法
- Windowsのポチポチ業務を爆速化するPowerShell、ファイルを別フォルダにコピーし名称を変更する方法
- Windowsのポチポチ業務を爆速化するPowerShell、ファイル名を変更する方法
- Windowsのポチポチ業務を爆速化するPowerShell、正規表現で複雑なファイル名変更をする方法
- Windowsのポチポチ業務を爆速化するPowerShell、タスクスケジューラでスクリプトを決まった日時に起動する方法
- Windowsのポチポチ業務を爆速化するPowerShell、ファイルをバックアップするスクリプトの作り方
- Windowsのポチポチ業務を爆速化するPowerShell、関数を作ってスクリプトから呼び出す方法
- Windowsのポチポチ業務を爆速化するPowerShell、関数をコンソールで登録して呼び出す方法
- Windowsのポチポチ業務を爆速化するPowerShell、短いワードでサッと関数を呼び出すエイリアスの使い方
- Windowsのポチポチ業務を爆速化するPowerShell、関数やエイリアス保存場所のドライブを紹介します
- Windowsのポチポチ業務を爆速化するPowerShell、elseifで日付の元号を判定する方法
- Windowsのポチポチ業務を爆速化するPowerShell、日付を操るDatetime型