2016年4月5日火曜日

Windowsサーバでアクセス制限をバッチファイルで一括処理 Part2

 echo y | cacls d:\test /t /e /g username:f
といった感じのコマンドをエクセルで編集し、txt保存し、拡張子をbatに変えることで
たくさんの処理を一括でやってみた。

いろいろ調べると、さまざまなことができるようだ。
http://www.atmarkit.co.jp/ait/articles/0603/04/news013.html
などを参考にさせていただく。

①/g アクセス権(RやWなど)のみの追加(すべて置換は/p F指定なら/pでもOKか?)
②/e 既存のACLの内容はそのままで、ACLの追加、編集(つけないと、すべて破棄され、それまで設定されたユーザーの設定が消える。/gや/pで指定したACLのみとなる)

③/t フォルダ階層を再帰的にスキャンする
④アクセス制限を削除するには/r usernameと/eを使用する(/eがないとエラーらしい)。
echo y | cacls * /t /e /r username
これで、usernameeへのACLエントリをすべて削除

たとえば、一番上の階層のみ勝手にフォルダやファイルを作成できないようにするためには
たぶん /tをはずし /gでなく /pとして
 echo y | cacls d:\test /e /p username:r
となる。ただ、削除はできるようだ。

******************
 削除とファイルやフォルダの作成禁止にするにはどうするか、Windowsの場合、いろいろ調べたもののこれはという方法が見つからない。意外に簡単な方法があるのかもしれないが。(実際、Linuxなどはchmodを使えばすぐできるのだが、、、)
 苦し紛れに以下のような方法でやってみた。

 testフォルダ以下の全員のフォルダやファイル削除禁止
  icacls e:\test\* /deny everyone:(DE)

  testフォルダ以下への全員のフォルダやファイル作成禁止
 icacls e:\test /deny everyone:(WD)
 icacls e:\test /deny everyone:(AD)

なお、解除するには
 icacls e:\test /remove everyone
 icacls e:\test\* /remove everyone


0 件のコメント:

コメントを投稿