ファイルサーバなどの構築などで大量のフォルダなどを作成することがあり、
昔少し触ってそのままで錆付いてしまったので改めて調べた情報を忘備録としてまとめました。
icaclsってなに
ファイル、またはディレクトリのアクセス制御の表示や適用、変更、バックアップ、リストアが行えるコマンド。
caclsコマンドの後継コマンド(らしい)
ACLの付与と変更
構文
icacls [File or Directry Path] /grant [Username or Groupname or SID]:<perm>
icacls [File or Directry Path] /grant:r [Username or Groupname or SID]:<perm>
/grantと/grant:rの違い
どちらもアクセス権の付与であるが、/grantのばあいは既存のアクセス権に追記される
-
/grant だとR(読込みのみ)追加後にW(書込みのみ)を行うとM(変更)と同等になる
逆に言うとMの状態からRに変更は不可?(未確認) -
/grant:rだと、以前のアクセス許可が置き換えられる
→読込みのみから変更、変更から読込みのみの両方ができる?(未確認)
例).
Sample
icacls C:\SampleDirectory /grant User1:(OI)(CI)(M) ※User1に変更権限を付与し、オブジェクトとコンテナーを継承する
icacls C:\SampleDirectory /grant Group1:(OI)(CI)(M) ※Group1に変更権限を付与し、オブジェクトとコンテナーを継承する
ドメインユーザなどの追記について
DomainUsersなどを追加する場合は、付与したいユーザやグループのところに[Domain/Group or User]を追記することで可能。
また日本語や空白が含まれたユーザやグループは"Domain/Group or User"で括ることで認識可能。
アクセス権のオプション
- 基本のアクセス許可
オプション | 内容 |
---|---|
F | フルコントロール |
RX | 読取りと実行 |
R | 読取り |
W | 書き込み |
- 特定の権限
下記画像の赤枠の設定に相当。

- 継承権限
オプション | 内容 |
---|---|
(I) | 継承。 アクセス制御エントリは親コンテナーから継承される。 |
(OI) | オブジェクト継承。 このコンテナー内のオブジェクトは、このアクセス制御エントリを継承します。 ディレクトリにのみ適用されます。 |
(CI) | コンテナー継承。 この親コンテナー内のコンテナーは、このアクセス制御エントリを継承します。 ディレクトリにのみ適用される。 |
(IO) | 継承のみ。アクセス制御エントリは親コンテナーから継承されますが、オブジェクト自体には適用されず、ディレクトリにのみ適用される。 |
(NP) | 継承を伝達しません。 アクセス制御エントリは親コンテナーからコンテナーとオブジェクトによって継承されますが、入れ子になったコンテナーには反映されない。 ディレクトリにのみ適用される。 |
下記画像の赤枠の設定に相当。

icaclsのバックアップとリストア
アクセス権はバックアップとリストアをすることが出来るみたいです。
icaclsのバックアップ
構文
icacls [File or Directry Path] /save [save path/ACLFile name.bin]
icaclsのリストア
構文
icacls [File or Directry Path] /restore [save path/ACLFile name.bin]