私はhddをwin7マシンに接続し、ドライブ文字I:
をhddの唯一のパーティションに割り当てました。 hddは元々別のコンピューターからのものであり、「現在アクセス許可がありません...」というダイアログをすべて回避するために、icacls
を使用してすべてのACLをクリアすることにしました。
icacls I:\ /reset /t /c /l
を実行しました。しばらくすると、Chromeが機能しなくなりました。Safariがクラッシュしました。問題を追跡したところ、ホームフォルダ(C:\Users
内)のACLがすべて台無しになっていることがわかりました。ChromeとSafariはキャッシュフォルダに書き込めませんでした。ホームフォルダのACLを修正し、すべては問題ないように見えます。
I:
ドライブで動作するように具体的に指示したときにicacls
がホームフォルダを台無しにするのはなぜですか?解決しないように/L
スイッチを入れましたシンボリックリンク。スイッチを誤解しましたか?
参考までに、ヘルプ画面の関連部分を以下に示します。
ICACLS name /reset [/T] [/C] [/L] [/Q]
replaces ACLs with default inherited ACLs for all matching files.
/T indicates that this operation is performed on all matching
files/directories below the directories specified in the name.
/C indicates that this operation will continue on all file errors.
Error messages will still be displayed.
/L indicates that this operation is performed on a symbolic link
itself versus its target.
OK私は答えを見つけました...
Documents and Settings
の非表示のI:\
は、C:\Users
を指すジャンクションです。ジャンクションのターゲットは、(相対パスではなく)絶対パスです。 /L
はシンボリックリンクのみを処理するため、icacls
はI:\Documents and Settings
をC:\Users
に解決し、そこですべてのACLをリセットします。
したがって、icacls
で作業するフォルダ内のすべてのジャンクションを調べていない限り、icacls
を使用しないでください!これにより、icacls
は実質的に役に立たなくなります。再帰的なACL変更ツール...フォルダ構造の奥深くにC:\
を指すジャンクションがフォルダに含まれている場合は、理由がわからなくてもWindowsを強制終了できた可能性があります。