Schtasks /Query - DOS/コマンドプロンプト コマンド一覧
登録済みのタスクを表示します。Schtasksのコマンド(オプション)の1つです。
構文
schtasks[.exe] /Query [/S <remote-system> [/U <user-name> [/P [<password>]]]] [/FO <output-format> [/NH] [/V] | /XML [ONE]] [/TN <task-name>] [/HRESULT]
オプション一覧
※ 「/XML」を用いる場合は「/FO」「/NH」「/V」を指定することができません。
/S <remote-system> | タスクが登録されているコンピューター(ローカル/リモート)の名前を指定します。IPアドレスやホスト名を指定します。省略した場合はローカルコンピューターが対象になります。 | ||||||||
/U <user-name> [/P [<password>]] |
コンピューター名を指定した際のログイン名・パスワードを指定します。<user-name> にはドメイン名を指定することができます(「ドメイン名\ユーザー名」の形式です)。省略した場合はこのコマンドを実行したユーザーが使用されます。 パスワード指定は、「/P [<password>]」全体を省略した場合はパスワードなし、「/P」のみ指定して「<password>」を省略した場合はプロンプトを表示してユーザーにパスワード入力を促すようになります(このプロンプトでは入力されたパスワードが「*」で表示されます)。 |
||||||||
/FO <output-format> |
出力する形式を指定します。指定できる値は以下の3種類です。/FO を省略した場合は「TABLE」になります。
|
||||||||
/NH | TABLEやCSV形式で出力する際にヘッダーを出力しません。 | ||||||||
/V | 詳細出力を行います。タスクの詳細を確認することができますが、/TN を指定しない場合は非常に多い出力となる場合があります。 | ||||||||
/XML [ONE] |
タスクの情報をXML形式で出力します。/TN を指定しない場合は「<Tasks>」をルートとして複数の「<Task>」を持つXMLが出力されます。「/XML ONE」と指定するとXML宣言がTaskごとに出力されなくなり、単体のXMLとして成立する形になります。 /TN を指定した場合は「<Task>」をルートとしたXMLが出力されます。なお、このとき「/XML」と「/XML ONE」で出力される形式は変わりません。 |
||||||||
/TN <task-name> |
タスク名を指定します。タスク名にスペース文字が含まれている場合は「" "」で括ります。タスクがフォルダー階層内に存在する場合はそのパスも含めて指定します。(先頭に「\」を付けることもできますが、付けない場合と変化はありません。) なお、<task-name> に「*」を指定することはできません。すべてのタスクを出力する場合は「/TN」指定を省略します。 |
||||||||
/HRESULT | [Windows 10?以降] Schtasksコマンドの終了コードを HRESULT にします。エラー発生時に詳細なハンドリングを行いたい場合に使用します。 |
解説
「schtasks /query」で出力されるタスクは、「/TN」を指定した場合はそのタスクのみ、指定しなかった場合はすべてのタスクが出力されます。一部のタスクのみを出力させる方法はありません。すべてのタスクを出力する場合、システムによって登録されているタスクも出力されるため、量が多くなる場合があります。
「/TN」と「/XML」の両方のオプションを指定して出力される内容は、そのまま「schtasks /create」の「/XML」パラメーターとして指定できる形式になります。そのため、タスクの情報をバックアップしておきたい場合に有用です。
例
サンプル1
schtasks /query
すべてのタスクの名前・次回実行時刻・状態を出力します。
サンプル2 (バッチファイル)
@echo off
setlocal enabledelayedexpansion
for /f "tokens=1 delims=," %%A in ('schtasks /query /fo csv /nh') do (
set "FILE_NAME=%%~A"
set "FILE_NAME=!FILE_NAME:\=_!
schtasks /query /tn %%A /xml > "W:\TaskBackup\!FILE_NAME!.xml"
)
現在登録されているタスクを1つずつXMLファイルに(「W:\TaskBackup」ディレクトリに)出力します。「schtasks /query /fo csv /nh」の内容をForコマンドに解析させ、CSVの先頭に入るであろうタスク名を取り出してさらに「schtasks /query」に渡してXMLデータを得ています。
※ タスクをバックアップしたいのであれば、C:\Windows\System32\Tasks 以下にあるファイルをコピーする方法が簡単です。上記はあくまでも「schtasks /query」のサンプルとして書いているコードになります。
※ タスク名に「,」が使用できるため、「,」が含まれたタスク名が存在する場合上記のコードではうまくいきません。