エクスプローラーからACLのようなものを見る
エクスプローラーで適当なディレクトリ(フォルダー)を選択し、右クリックでプロパティを開く。その「セキュリティ」タブは、ACLからの情報を表している。
ただし、これはACLそのものではなく、ユーザーにわかりやすいようにとMicrosoftが“配慮”したものだ。上のリストの「グループ名またはユーザー名」がプリンシパル、下のリストはプリンシパルが持つアクセス許可である。
ここに詳細設定ボタンがあるので押すと、別のダイアログボックス「~のセキュリティの詳細設定」が表示される。

詳細設定のボタンを押すと別のダイアログが表示される。ここでは、プリンシパルごとに要約したアクセス権を表示できる。このリストの各行がACLに含まれるACEに相当する。細かなアクセス権を調べるには、リストの項目を選択して「表示」ボタンを押す
ここでようやく「プリンシパル」の表記が出る。同じリストにある「アクセス」は、ACEによるアクセス権を要約して表示したもの。ファイル用のACEには多数のアクセス項目があり、そのうち、よく使われるパターンに名前がついていて、それがここに表示される。名前のないパターンは「特別なアクセス許可」と表示される。
ここでプリンシパルを選んで、下の「表示」(または編集)ボタンを押すと、さらに別のダイアログ「~のアクセス許可エントリ」が表示される。

「アクセスの許可エントリ」で最初に表示されるのは「基本のアクセス許可」で、プロパティのアクセス許可として表示されていたものと同じ簡約情報である。ウィンドウ右上の「高度なアクセス許可を表示する」をクリックすることで、さらに詳細な情報が得られる
最初に見えるのは、プロパティのセキュリティダイアログと同じ設定項目だが、右側の「高度なアクセス許可を表示する」をクリックすると多数の項目が現れる。
これは、GUI側からアクセスできるACEに含まれるアクセス権の一部だ。ここでACLを構成するACEの一部を見ることができるが、実際には、ここに表示されないアクセス権がACEにはある。
コマンドラインでさらに追求する
今度は同じディレクトリでコマンドプロンプトウィンドウ(Windows Terminalでも可)を開く。自分のファイルを見るなら、管理者権限で開く必要はないし、cmd.exeでもPowerShellでもいい。ただ、面倒なことも多いので、cmd.exeを使うほうがよい(一部のコマンドライン引数がPowerShellで解釈されてしまうことがある)。ここでWindows組み込みのコマンドicacls.exeを使う。
icacls.exe 〈ファイル/ディレクトリ名〉
とすることで、対象のアクセス権とプリンシパルを表示できる。

ACLに関してもう少し詳細な情報を得るなら、icacls.exeコマンドを使う。引数としてファイル名やディレクトリ名を指定すると、対象のACL情報(ただし、まだ簡約化されている)を表示できる。詳しい使い方は、引数を指定せずにicacls.exeを実行すれば表示される。MSのサイトにあるicacls.exeのヘルプページは古いバージョンのものなので、コマンドが表示するオンラインヘルプが現状最も正確である
細かな使い方は、icacls.exeを引数なしで起動すれば表示される。このコマンドはACLを表示するものだが、対応しているのはDACLのみ。また、ファイルシステムのACL専用である。なお、このicacls.exeは、XPまで使われていたcacls.exeの後継版であり、cacls.exeの利用は推奨されなくなった(ただし、Windows 11にもまだ残っている)。
このコマンドでは、アクセス権の表示・指定がエクスプローラーのプロパティとは異なっている。そもそも、エクスプローラーもこのコマンドもACEに含まれるアクセス権そのものを直接表示しているのではなく、理解しやすい形式に変換しているのだ。ある意味、ACLのコマンドといいながら、ACLそのものを表示しているわけではない。
icaclsコマンドは、ディレクトリを対象にすると、子オブジェクトに継承されるアクセス権などを表示することができる。この部分では、エクスプローラーよりも詳細な情報が得られる。
このほかには、PowerShellのget-aclコマンドでもACLからの情報を得ることができるが、一部のアクセス権の表示が数値表示になってしまうなど、不完全な部分がある。そういうわけで、ファイルシステムのACLに関する情報を得るなら、icacls.exeを使うのがいまのところもっともACLに近づくことができる方法だ。
ざっと駆け足で、ACL関連のGUI機能やコマンドの使い方を解説した。icacls.exeを使うとファイルやディレクトリのACLを表示できるだけでなく、削除や追加、置き換えも可能だ。しかし、その操作をするには、もう少しACLを理解する必要がある。というわけで、次回はACLそのものの解説に入る。

この連載の記事
-
第469回
PC
Windows Updateの27年 悪役だった頃から改良が進んで、徐々に目立たない存在に -
第468回
PC
2025年のWindowsどうなる!? Windows Insider Programの状況をあらためて見る -
第467回
PC
Copilot+ PCのNPUでカメラを処理する「Windows Studio Effects」 その内容や効果は? -
第466回
PC
PowerToysの最近の新機能には、複数アプリを指定位置に起動する「ワークスペース」や新規作成のカスタマイズがある -
第465回
PC
WindowsのPowerShellからBluetoothデバイスを調べる -
第464回
PC
Windows 10のサポート切れまで1年を切った さてWindows 10マシンをどうする? -
第463回
PC
Windows Terminal Preview版でSixelグラフィックスを実際に表示させてみる -
第462回
PC
Windows Terminal Preview版でSixelグラフィックスを扱う -
第461回
PC
Copilot+ PCを買ってみたが、「今焦って買う必要はない」のかもしれない -
第460回
PC
Windowsでsftpを使う -
第459回
PC
WSL 2.4.4ではtar形式でのディストリビューションが配布でき、企業での利用が容易になってきた - この連載の一覧へ