Windows権限の一括登録(cacls/icacls)

新しいWindowsServerのフォルダにアクセス権を一括登録したい。
caclsコマンドを使う。

C:\>cacls C:\test /t /e /c /g user:r

オプションの意味は次の通り。
/t:フォルダ以下に適用
/e:アクセス権の追記(これがないと既存アクセス権が消えてしまう!)
/c:エラー無視
/g:userにアクセス権を付与
r:読み取り

その他にもあります。

Q2-16 アクセス権を一括で設定する方法はありますか。
http://www.edu-ctr.pref.okayama.jp/jyose/knowledge/lanqa/w2k/sec2/Q2-16.htm

複数行でバッチ処理もできます。

caclsコマンドをバッチ・ファイルで利用する − @IT
http://www.atmarkit.co.jp/fwin2k/win2ktips/731caclsy/caclsy.html

単独で使えばフォルダのアクセス権リストの抽出が可能

C:\>cacls > cacls.txt

これでいける!と思ったのもつかの間、「読み取り」ではなく「読み取りと実行」が付与される。

Windows Server World Online - アクセス権完全掌握マニュアルPart5
http://www.windows-world.jp/special/-/25886-4.html

Webサーバなので読み取りだけに絞りたいんだけど・・・。

調べるとWindowsServer2003(とVista)にはicalsコマンドが実装されていた。

Icacls
http://www.microsoft.com/japan/technet/windowsserver/2008/library/403edfcc-328a-479d-b641-80c290ccf73e.mspx

その他にあまりにも情報がなさすぎて泣く。
試行錯誤の末、下記で成功。

C:\>icacls C:\test /grant user:(OI)(CI)R

(OI)(CI)がポイント。
そのディレクトリ自身とそれ以下のディレクトリ、ファイルに適用。

caclsコマンドの出力の見方 − @IT
http://www.atmarkit.co.jp/fwin2k/win2ktips/704cacls/cacls.html

あとは手持ちのユーザーリストとフォルダを関係付けたCSVファイルを作成するだけだ・・・。

3月8日
ブログにまとめた

Windowsサーバでアカウント・権限の一括登録
http://umakoya.com/blog/log/eid458.html