ACLister Windowsファイルサーバアクセス権 出力ツール



2018/8/04  Ver1.7
 ・ACLを設定するPowerShell生成機能を追加
 ・フォルダのアクセス権をより正確にわかりやすく表示
 ・除外フォルダ機能を追加
 ・表示バグの修正

紹介

ファイルサーバを長く運用していると、ユーザーによって勝手にNTFSアクセス権が設定されている場合があります。
ACListerはファイルサーバのアクセス権を調査し、出力するツールです。
ACListerは親フォルダとアクセス権が異なる場合のみピックアップします。

図のようなアクセス権のフォルダがある場合、ACLiseterは変更が加えられたACL部分のみピックアップします。



だからこのようにフォルダが多数ある場合でも


ごく限られた情報のみになって出力されます。

ACListerはアクセス権の設定を色で表現しています。
青は、追加された許可アクセス権。緑は継承を拒否し、独自に設定されたアクセス権、とわかります。

例えばこのような結果が得られたとします。
営業部プリンタフォルダについての情報が表示されています。

グレーで表示されているのは上位から継承しているACLです。プリンタドライバーフォルダは「Everyone:読み取り実行」であることがわかります。
営業部プリンタフォルダには「営業部グループ:フルコントロール」が青で表示されています。
ACListerは青色は追加されたACEを示します。
営業部プリンタフォルダの継承されているアクセス権を表示されないため、営業部プリンタフォルダの有効なアクセス権は
「Everyone:読み取り実行」と「営業部グループ:フルコントロール」であるとわかります。


次の場合は、営業部プリンタフォルダに緑色でフルコントロールが表示されています。

冒頭の [ (角カッコ)は上位からのACL継承を拒否している表現なので、営業部プリンタフォルダは 上位フォルダのアクセス許可を継承していません。
アクセス権は上書きされており、営業部プリンタフォルダの有効なアクセス許可は「営業部グループ:読み取りと実行」だけとわかります。


ACLの継承という感覚が分かりにくければ、緑・橙はアクセス権を上書きしていると思えば掴みやすいでしょう。

ACListerは継承されているアクセス権を非表示にすることで必要な情報に絞り、過去に設定された無駄なアクセス権や、
詳しくないユーザーによって設定された誤ったアクセス権を発見することができます。


ACListerはアクセス権の状況の出力と、アクセス権を設定するPowerShellの出力機能があります。
組み合わせることで、ファイルサーバを別ドメインへ移行するときのアクセス権の引継も可能です。
そちらの利用法については、別項「ファイルサーバを別ドメインへ移行」で使用例を解説します。


使用方法

起動したら、調査するフォルダをドラッグアンドドロップで選択します。

 選択フォルダごとにログファイルが出力されます。
 ファイルサーバなどのファイル数が膨大な場合、フォルダを小分けに処理するか、見切りをつけて調査する階層の深さを指定します。
 


開始をクリックします。
 


アクセス権が調査され、リストが表示されます。

ACEの冒頭に「[(角かっこ)」が表示されているものは、「継承されていないACLへ追加されたACE」です。
ACLの継承を遮断しているイメージです。

ACListerは継承されたアクセス権を無視するので、調査結果へ出力されるのは以下のアクセス権だけです。
 1.ルートフォルダだけ、上位から継承したアクセス権をグレーで表示します。(ACEの冒頭に>記号)
 2.継承したACLへ追加された許可ACEは、青
 3.継承したACLへ追加された拒否ACEは、
 4継承していないACLへ追加された許可ACEは、緑 (ACEの冒頭にかっこ記号)
 5.継承していないACLへ追加された拒否ACEは、橙 (ACEの冒頭にかっこ記号)
 6.ACLister実行したユーザの権限ではアクセスできないフォルダ


もし指定フォルダの下にアクセス権が表示されていなければ、そのフォルダ配下に変更されたアクセス権は無いことがわかります。
 


フォルダを調査すると、実行ファイルと同じ場所にログが残ります。
再度フォルダを調査しなくても、このログを読み込むとツリーを描画できます。テキストエディタで開くこともできます。



フォルダノードを右クリックして、「プロパティを開く」を選べば


簡単にアクセス権を確認することもできます。



検索階層を指定すると全てのフォルダを検索せず、指定した深さの階層までを検索対象とするので速度が向上します。
ファイルサーバのフォルダ階層が膨大で検索に時間がかかるのなら、検索階層を指定してフォルダ表層部のみ調査できます。




こんな問題を解決できます

業務フォルダの下に社員がアクセスできないSIDのアクセス権を発見

 →調べると退職した社員が作ったものだと判明。内部のデータは長らく使われていなかった

総務部にフルアクセスがあるフォルダの下になぜか「Everyoneフル」のアクセス権があるのを発見

 →詳しくない担当者が、総務部以外にもアクセスさせたいと思って誤った設定をしたことが判明

Administratorにもアクセス権のないフォルダが見つかった

 →アクセス権のない共通」フォルダと、継承を拒否して個人アクセス権のみを割り当てられている新商品」フォルダにはAdministratorのアクセス権が無いことが分かる。
  休日にファイルサーバを新サーバへ移行しようとしていたが、これではスムーズなコピーは難しいと思われる。

実際にアクセスしてみると、アクセス許可を求める画面が表示されました。


ファイルサーバコピー前には、こうしたフォルダは潰しておかなくてはなりません。



機能説明

各アクセス権は色分けされています。



青 許可ACE。継承したACLへ追加された許可ACE
赤 拒否ACE。継承したACLへ追加された拒否ACE、もしくはACListerがアクセスできなかったフォルダ
緑 許可ACE。継承していないACLへ追加された許可ACE
橙 拒否ACE。継承していないACLへ追加された追加された拒否ACE
灰 継承されたACL。ルートにのみ表示

フォルダがACLを継承していない場合、ACEの冒頭に、「[(角かっこ)」が表示されます。
これは上位からのアクセス権の伝播を遮断しているイメージです。

これらを図で示すと以下のようになります。
青 継承したACLへ追加された許可ACE 赤 継承したACLへ追加された拒否ACE
   ACListerがアクセスできなかったフォルダ
緑 継承していないACLへ追加された許可ACE 橙 継承していないACLへ追加された拒否ACE




ただし選択フォルダ(ツリーのルート)のみ、継承ACLを表示します。
継承ACLは灰色で表示され、冒頭に「>」記号が表示されます。



ACL英語表示
 デフォルトはアクセス権を日本語で分かりやすく表示します。
 生成したログファイルをスクリプトなどで再利用したい時のために、英語表示モードがあります。
 アクセス権が英語で出力できます。


アクセス権の継承情報の取得

 アクセス権だけではなく、アクセス権の継承情報を取得します。
 「このフォルダーのみ」「このフォルダーとサブフォルダー」などと表示されます。
 該当のアクセス権がどの範囲まで継承されるかを判断できます。
 

PowerShell生成機能

 ACLの結果ツリーから、アクセス権を設定するPowerShellを生成できます。
 指定したフォルダのスクリプトを出力する「単一」と、指定フォルダ以下全てのスクリプトを生成する「ツリー」があります。
 ※PowerShell生成を行うには、アクセス権の調査を「英語表示モード」で出力する必要があります。



 異なるサーバへ同じアクセス権で設定したい場合、別ドメインへファイルサーバを移行したい場合などに使用できます。
 WorkGroupのファイルサーバをドメインへ移行する、異なるドメインへファイルサーバを移行するときにも、異なるドメインでユーザー名を
 一致させておくことでACL設定スクリプトが役立ちます。

 スクリプト生成の仕様
 ・継承情報が含まれないログファイルからPowerShellを生成した場合、継承情報はデフォルトが補完されます。
 ・ユーザー名がSIDの場合はシェル生成からスキップします。
  SIDをスキップするのチェックを外すと、SIDからACLを設定するスクリプトを生成します。
  ファイルサーバの障害からの復旧、ファイルサーバを異なるドメインへ移行する際にSID置換で使用する場合に用いることができますが
  使うのは稀だと思います。









prev.gif