2008年3月22日土曜日

VistaのI/O Priority

備忘録。Vista。

 Vistaのタスクスケジューラで(ログオン時に)起動させたアプリケーションのI/O PriorityはLowに設定される。これをNormalにするには、以下の方法を行う。

1.タスクスケジューラで実行させたいタスクを設定する(タスク名はAAAとする)。
2.管理者でログインし直し、コマンドプロンプトを起動。
3.1で作成したタスクの定義をXMLファイルとして取得する。下記のコマンドを実行。
 > schtasks /query /tn "AAA" /xml > output.xml
4.output.xmlの内容を編集する。
 要素で指定されている値を6にする(6より小さい値にすればOKの模様)。
5.1で作成したタスクを一度削除する。
 > schtasks /delete /tn "AAA"
6.4で編集したXMLファイルを利用してタスクを再作成する
 > schtasks /create /tn "AAA" /xml output.xml

 以上で完了。Process Exploreで確認すれば、I/O PriorityがNormalになっていることが確認できるはず。

 余談だが、上記XMLファイルでRun Levelを指定できるがHighの設定(値は忘れた)にすると、何故かCPUの優先度が通常よりも下がる。不思議。また、I/O Priorityの設定とRun Levelの設定は同時に指定できない模様。

 設定する場合は、自己責任で。

--- 追記 ---
 コメントが付いたので、更新を忘れていたのでもう少し簡単な方法を追記。

 1.タスクスケジューラでタスクを設定して、タスクのエクスポートを行う。
 2.エクスポートしたXMLファイルを上記で記載したように編集。
 3.タスクスケジューラで設定したタスクを一度、削除する。
 4.2で編集したXMLファイルをインポートする。

 もっと早く更新しておけばよかったですね・・・。

1 件のコメント:

匿名 さんのコメント...

優先度を通常で実行させる方法を検索していたら、こちらのブログが出てきたので試したところ解決しました。
助かりました。
他の Property はこちらでわかります。
http://msdn.microsoft.com/en-us/library/aa383512.aspx