△ 図をクリックすると拡大されます
図1●アクセス権を変更すると新しいタスクが作成できなくなる場合がある
Q

Windows 2000のファイル・システムを保護しようと,NTFSのアクセス権を変更しました。どこを変更したタイミングなのか不明なのですが,スタート・メニューの[設定]-[コントロールパネル]-[タスク]から[スケジュールされたタスクの追加]を行うと図1のエラーが表示され,新しいタスクを作成できません。タスクを設定しようとしているユーザーによるアプリケーションの実行は可能なので,その部分に関するアクセス権変更が原因ではありません。どこのアクセス権を修正すればよいのでしょうか?

A

作成したタスクの設定は,%SystemRoot%\Tasksフォルダ中にjob拡張子のファイルとして保存されます。Task Schedulerサービスは,各*.jobファイルに保存された内容を定期的に実行しています。[スケジュールされたタスクの追加]を行うと,それを実行したユーザーの権限で%SystemRoot%\Tasks\*.jobファイルが作成されます。トラブルはこのファイル作成に必要なアクセス権が足りないことが原因です。

 ただし,エクスプローラで%SystemRoot%\Tasksフォルダのアクセス権を変更しようとしても,通常のフォルダのプロパティであれば表示されるはずの[セキュリティ]タブがなく,設定できません(図2)。


図2●Tasksフォルダには[セキュリティ]タブがない
%SystemRoot%\Tasksフォルダのアクセス権を変更しようとしても,[セキュリティ]タブが表示されず,設定できない。

 これは,%SystemRoot%\Tasksフォルダ内のdesktop.iniファイルにより,エクスプローラの表示がカスタマイズされているためです。フォルダ内にdesktop.iniファイルが存在する場合,エクスプローラはその記述内容に従い,カスタマイズされたビューによってファイルなどを表示します。

 desktop.iniファイルはユーザーが明示的に作成することができますが,一部フォルダにはあらかじめ存在しており,特別なビューや操作を可能にしています。

%SystemRoot%\Tasksフォルダの
アクセス権を変更すれば対応できる

 よって,エクスプローラでのビューが異なるだけなので,直接コマンド・プロンプトからcacls.exeを実行して%SystemRoot%\Tasksフォルダのアクセス権を修正できます。また,カスタマイズを解除すればエクスプローラからアクセス権を変更できます。


図3●%SystemRoot%\Tasksフォルダに[セキュリティ]タブを出したところ
%SystemRoot%\Tasks\desktop.iniファイルをリネームすれば,エクスプローラ上で%SystemRoot%\Tasksフォルダのプロパティに[セキュリティ]タブが表示されるようになる。

 ここでは後者の方法を紹介しましょう。%SystemRoot%\Tasks\desktop.iniファイルが存在しなければエクスプローラは通常のフォルダと同様に[セキュリティ]タブを表示するので,このファイルをリネームします。操作は以下のようになります。
(1)コマンド・プロンプトを起動し,「chdir %SystemRoot%\Tasks」を実行して%SystemRoot%\Tasksへ現在のフォルダを変更します。
(2)このままではリネームできないので,「attrib -H -R desktop.ini」コマンドの実行などでdesktop.iniファイルの[読み取り専用]属性と[隠しファイル]属性を外します。
(4)エクスプローラ上で%SystemRoot%\Tasksフォルダのプロパティに[セキュリティ]タブが表示されるようになります(図3)。必要なユーザーあるいはグループに対して[変更]以上(タスクを削除する場合に必要)のアクセス権を設定してください。
(5)desktop.iniファイルを元の状態に戻します。「rename desktop.ini.org desktop.ini」を実行してファイル名を元に戻し,「attrib +H +R desktop.ini」を実行して属性を元に戻します。

小森博司