コンソール版の使用方法

コンソール版は、以下のようにWindowsのコマンドプロンプトで動作します。

  1. Windowsのコマンドプロンプトを起動します。Windowsのコマンドプロンプトを起動する方法はいくつかあります。
    • スタートメニューから起動
      • スタートメニューをクリックします。
      • 「検索する」ボックスに「cmd」と入力します。
      • 検索結果の「コマンド プロンプト」または「cmd.exe」を実行します。
    • キーボードショートカット
      • 「Windowsキー + R」で「ファイル名を指定して実行」を開きます。
      • 「cmd」と入力して「Enter」キーを押すとコマンド プロンプトが開きます。
  1. コマンドプロンプトでACLDumpConsole.exeが保存されたフォルダに移動(cdコマンド)します。
    たとえばC:\ACLDumpフォルダにACLDumpConsole.exeが保存されている場合は次のように入力してEnterキーを実行します。
cd C:\ACLDump

以上で、ACLDumpConsole.exe(コンソール版ACLDump)を利用できる準備が整いました。後述のコマンドライン文法を参考に以下のようにACLDumpConsole.exeを実行します。

AclDumpConsole.exe $(コマンドラインオプションを指定)

コマンドライン文法

ACLDumpConsole [/r <階層数>] <対象フォルダ> 
   [/showfiles] 
   [/hideinherited] 
   [/hideinheritedace] 
   [/strictinheritcheck] 
   [/showtop] 
   [/ignoreownerace] 
   [/showdir] 
   [/outfilename <出力ファイル名>] [/outfilenameutf8 <出力ファイル名(UTF8)>] 
   [/progress <進捗ファイル名>] 
   [/targethost <ホスト名>] 
   [/rule <パーミッション名定義ファイル>] 
   [/groupformat <グループ名/ユーザー名フォーマット]

コマンドラインオプション

コマンド説明
/showfilesファイルも出力(処理)対象にします。(デフォルトはフォルダのみ出力する)
/showdir全てのフォルダを出力します。(無条件に少なとも1行は出力される)
/hideinherited親フォルダから継承したままのACLのファイル/フォルダは出力しません。
/hideinheritedace親フォルダから継承していないACEだけを出力します。
/strictinheritcheck親フォルダから継承したとマークされているACEのみで構成されているACLであっても、親フォルダのACLと各エントリを比較して完全一致しない場合にACLを出力します。/showtop も自動的に有効になります。
/showtopスキャン対象のトップフォルダ(最上位フォルダ)について無条件にACLを出力します。
/hideinherited/hideinheritedace が指定されても出力されます。
/outfilename <出力ファイル名>結果をファイル(SJIS)に書き出します。
/outfilenameutf8 <出力ファイル名>結果をファイル(UTF8)に書き出します。
/progress <進捗ファイル名>進捗状況をファイルに書き出します。
/targethost <ホスト名>ユーザー名/グループ名のデコード時に指定されたホストに問い合わせます。
/rule <パーミッション定義フィールド>通常使用しません。F=フルコントロール、C=変更 の記号(「F」「C」など)を定義できます。
/ignoreownerace「このフォルダ/このファイルのみ」のフルコントロール許可のACEを無視(出力省略)します。
/groupformat <グループ名/ユーザー名フォーマット>出力結果のグループ名/ユーザー名の文字列フォーマットを変数で設定できます。
既定値は $(domain)\$(name) です。

変 数

変 数意 味
$(name)グループ名もしくはユーザー名
$(domain)ドメイン名もしくはコンピュータ名
$(displayname)表示名(Active Directoryやユーザー管理に設定されています)。
未設定の場合は空白が出力されます。表示名はユーザーしか取得できません。
$(name_or_displayname)表示名が空白(または未設定)の場合、代わりに $(name) を出力する。

変数の使用例

/groupformat $(domain)\$(name)

TEPPI\tanaka
TEPPI\suzuki

/groupformat "$(domain)\$(name) ($(displaynanme))"

​TEPPI\tanaka (田中太郎)
TEPPI\suzuki ()

/groupformat $(domain)\$(name_or_displayname)

TEPPI\田中太郎
​TEPPI\suzuk

コマンド実行例

T:¥work フォルダ以下2階層をチェックする

階層数を省略すると2階層までスキャンします。

AclDumpConsole T:¥work

T:¥work フォルダ以下3階層をチェックする

AclDumpConsole /r 3 T:¥work

T:¥work フォルダ以下4階層 と T:¥public 以下2階層 と C:¥temp 以下2階層をチェックする

スキャン対象の各フォルダに対して階層数を指定します。

AclDumpConsole /r 4 T:¥work /r 2 T:¥public /r 2 C:¥temp

ファイルも表示する、ただし、親フォルダから継承したACLだけのファイルは出力しない

AclDumpConsole /r 4 T:¥work /showfiles /hideinherited

上記において、最上位フォルダ(T:\work)は親フォルダから継承しただけであっても無条件に出力する

AclDumpConsole /r 4 T:¥work /showfiles /hideinherited /showtop

親フォルダから継承していないACE(アクセス制御エントリ)のみを出力する

AclDumpConsole /r 4 T:¥work /r 2 T:¥public /hideinheritedace

上記において、最上位フォルダ(T:\work)は親フォルダから継承しただけであっても無条件に出力する

AclDumpConsole /r 4 T:¥work /hideinheritedace /showtop

ファイルに結果を書き出す

AclDumpConsole /r 4 T:¥work /outfilename C:¥temp¥test.txt

進捗状況をファイルに書き出す

フォルダ/ファイルのスキャン1,000件ごとに進捗状況をファイルに書き出します。
巨大ファイルサーバーの処理における処理の進捗確認に役立ちます。

AclDumpConsole /r 99 T:¥ /progress progress.txt

出力の読み方

次のようにタブ区切りで各行に出力されます。

t:¥work F 1 許可 SYSTEM F (OI)(CI) -

1列目2列目3列目4列目5列目6列目7列目8列目
t:\workF1許可SYSTEMF(OI)(CI)-

1列目 : フォルダ/ファイルのパス

ファイルもしくはフォルダのフルパスです。

2列目 : 種別

出力説明
Fフォルダ
Tファイル

3列目 : NoACLを構成するACE(エントリ)の連番

  • 同一ファイルの中では、1から順に振られます。
  • 親フォルダからACLを継承せず置換しているときは、特別に0番のエントリが出力されます。

4列目 : 許可/拒否

許可のエントリと、拒否のエントリの別を表示します。

5列目 : ユーザー/グループ

  • SIDをデコードしてユーザー名/グループ名として表示します。
  • デコードできない場合はSIDのまま表示されます。

6列目 : アクセス権

アクセスマスクを表現します。
dumprule.txtに定義された代表的なアクセスマスクについては以下のように表示されます。

出力Windowsエクスプローラの表示
Fフルコントロール
C変更
R読み取りと実行
""なし

「特殊なアクセスマスク」は以下名称がカンマ区切りで列挙されます。

出力Windowsエクスプローラの表示
execフォルダーのスキャン/ファイルの実行
readフォルダーの一覧/データの読み取り
read-attr属性の読み取り
read-xa拡張属性の読み取り
writeファイルの作成/データの書き込み
appendフォルダーの作成/データの追加
write-attr属性の書き込み
write-xa拡張属性の書き込み
del-childサブフォルダーとファイルの削除
delete削除
read-aclアクセス許可の読み取り
write-aclアクセス許可の変更
take-own所有権の取得

7列目 : フラグ(適用先)

出 力説 明
このフォルダのみ
(OI)(CI)このフォルダ、サブフォルダおよびファイル
(CI)このフォルダとサブフォルダ
(OI)このフォルダとファイル
(OI)(CI)(IO)サブフォルダとファイルのみ
(CI)(IO)サブフォルダのみ
(OI)(IO)ファイルのみ

(OI) = このフォルダ以下のファイルにも適用する(Object Inherit)
(CI) = このフォルダ以下のフォルダにも適用する(Container Inherit)
(IO) = 継承先のみに適用する(Inherit Only)
(NP) = サブフォルダ以下のファイル・フォルダまでは適用しない(Non-Propagate)

8列目 : 継承タイプ

出 力説 明
 ""親フォルダから継承したままのACLのエントリ(ACE)
 +親フォルダから継承したACLに追加されたエントリ(ACE)
 -親フォルダから継承せずに置換したACLのエントリ(ACE)
 .親フォルダから継承せずに置換したACLの0番目に出力されるダミーのエントリ(ACE)
?実行ユーザーの権限不足などでアクセス権の読み取りに失敗したときに出力されるダミーのエントリ(ACE)
X「/strictinheritcheck」オプションを指定して継承ACLのチェックを厳格に行う場合、親フォルダから継承しているはずなのに親フォルダと異なるACEを持つ、すなわち継承関係に矛盾が発見されたACLのエントリ(ACE)
*「/showdir」オプションを指定したとき、同時に「/hideinherited」「/hideinheritedace」を指定していても親フォルダから継承したACLを持つフォルダについて強制的にフォルダ名が出力されるダミーのエントリ(ACE)

※ 親フォルダから継承せずにACLを置換している場合、特別に0番目のエントリが出力されます。

t:¥okd F 0 ―― ― - - .
t:¥okd F 1 許可 SYSTEM F (OI)(CI) -
t:¥okd F 2 許可 TEPPI¥okd C (OI)(CI) -

9列目 : その他

出力結果に「?」が表示される場合があります。これは、ACLDumpの実行ユーザーが該当フォルダ(ファイル)に対して「アクセス権の読み取り権限」を持たないことが原因です。「管理者で実行」するなどしてアクセス権の読み取り権限を持つユーザーで実行するか、該当ユーザーにアクセス権の読み取り権限を付与することによって正常な出力が可能になります。

c:\share\teppi\work\common\社内連絡 F 0 不明 ? ? - ?

【参考】No=0のエントリの意義

親フォルダからACLを継承せず、置換しているファイル / フォルダを目立たせるために、あえて出力しています。将来的に、ACLDumpまたはシリーズ製品でACL書き換え機能を実装するときに、「ダミーエントリがあったら、ACLをクリアする(継承を切る)。+-のエントリがあったらエントリ(ACE)を追加する」という扱いにすることを想定しています。

ご質問・ご相談はお気軽にお問い合わせください