本連載は、Windows PowerShellコマンドレットについて、基本書式からオプション、具体的な実行例までを紹介いていきます。今回は「New-ScheduledTaskAction」コマンドレットです。
本連載では、Windows PowerShellの基本的なコマンドレットについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、「タスクスケジューラ」で実行させるアクションを作成するための「New-ScheduledTaskAction」コマンドレットを解説します。
「New-ScheduledTaskAction」は、Windows PowerShellを利用して「タスクスケジューラ」の新しいタスクを作成する際、実行するアクションを定義するためのコマンドレットです。
前回(New-ScheduledTaskTriggerコマンドレット――タスクスケジューラの条件を設定する)も紹介しましたが、PowerShellで新しいタスクを作成する場合は、次の3つを指定する必要があります。
このとき、「実行するアクション(プログラム)を定義する」ために使用するのが、今回紹介するNew-ScheduledTaskActionコマンドレットです。
前回紹介したNew-ScheduledTaskTriggerコマンドレットと、New-ScheduledTaskActionコマンドレットを組み合わせると、「Register-ScheduledTask」コマンドレットを使って新しいタスクを作成できるようになります。Register-ScheduledTaskコマンドレットについては、次回紹介します。
New-ScheduledTaskActionコマンドレットの主なオプションは次の通りです。
オプション | 意味 |
---|---|
-Execute | 実行するプログラムを指定する |
-Argument | 実行するプログラムの引数を指定する。省略可能 |
-WorkingDirectory | プログラム実行時に一時ファイルなどを保存するフォルダを指定する。省略可能 |
タスクスケジューラを利用してPowerShellコマンドレットを実行する場合は、「-Execute」オプションで「PowerShell.exe」を実行するように呼び出し、「-Argument」オプションで実行するコマンドレットを指定します。
-Argumentオプションで指定するのは引数となるため、PowerShellのコマンドレットを実行するのであれば、PowerShell.exeの引数として「-Command」オプションを指定します。そして、-Commandに続けて実行するコマンドレットを指定することで、任意のコマンドレットを実行できるようになります。
以下の実行例では、本連載第4回で紹介した「Remove-Item」コマンドレットで、「C:\temp」フォルダ内の全てのファイルを削除しています。
New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "-Command Remove-Item c:\temp\*.*"
(Remove-Itemコマンドレットで「C:\temp」フォルダ内の全てのファイルを削除するアクションを定義する)(画面1)
-Executeオプションの後に「"cmd.exe"」と記述すれば、PowerShellの代わりにコマンドプロンプト(cmd.exe)を起動することができます。その場合、-Argumentの後にはコマンドプロンプトで実行可能なコマンドを記述してください。
また、New-ScheduledTaskActionコマンドレットを実行した結果は、この後で「Register-ScheduledTask」コマンドレットで利用します。Register-ScheduledTaskコマンドレットでNew-ScheduledTaskActionコマンドレットの実行結果が利用できるように、必ず変数(この例では変数「$task」)に格納してください。
例えば、Windowsコンピュータの各種情報を参照する際に使用する「システム情報(msinfo32.exe)」で表示される内容を、「C:\Report」フォルダに「msinfo.txt」という名前で保存するとします。「msinfo32.exe」は、「/Report」オプションを指定すると、表示される内容をファイルとして保存することができます。
以下の実行例では、「-Execute」で「msinfo32.exe」を実行するように呼び出し、「-Argument」で「/report」オプションと保存するファイルの名前、そして「-WorkingDirectory」でファイル作成時に使用するワーキングディレクトリとして「C:\Report」フォルダを指定しています。
New-ScheduledTaskAction -Execute "msinfo32.exe" -Argument "/report C:\Report\msinfo.txt" -WorkingDirectory "C:\Report"
(「システム情報」で表示される内容を「C:\Report」フォルダに「msinfo.txt」として保存する)(画面2)
株式会社ソフィアネットワーク取締役。1997年よりマイクロソフト認定トレーナーとして、Active DirectoryやActive Directoryフェデレーションサービス(AD FS)など、ID管理を中心としたトレーニングを提供している。2007年よりMicrosoft MVP for Directory Servicesを連続して受賞。なお、テストで作成するユーザーアカウントには必ずサッカー選手の名前が登場するほどのサッカー好き。
Copyright © ITmedia, Inc. All Rights Reserved.