Categories: Windows10

共有名をCSVで管理し、icaclsで一括確認するバッチファイルの作成方法

共有フォルダが多数ある場合、1つずつ手作業で確認するのは非常に手間がかかります。
このようなときには、共有フォルダのパスをCSVファイルにまとめておき、それを読み取ってicaclsコマンドを実行するバッチファイルを使うと効率的です。

1. CSVファイルの作成

まずは、共有フォルダのフルパスを列挙したCSVファイルを作成します。
以下のような内容のファイルを「folders.csv」という名前で保存します(文字コードはShift-JISまたはUTF-8 BOM付を推奨)。

D:\共有フォルダ1
D:\共有フォルダ2
E:\部門別資料
\\SERVER01\外部共有

1行に1つのパスを記述します。UNCパス(\サーバー名\共有名)にも対応可能です。


2. バッチファイルの作成

次に、上記のCSVファイルを読み込んでicaclsコマンドを実行するバッチファイルを作成します。
ファイル名は「check_acl.bat」などにするとよいでしょう。

@echo off
setlocal enabledelayedexpansion

REM 出力ファイルの指定
set OUTPUT=icacls_result.txt
echo アクセス権情報の出力 >> %OUTPUT%
echo ------------------------------ >> %OUTPUT%

REM CSVファイルの読み込み
for /f "usebackq delims=" %%A in ("folders.csv") do (
echo フォルダ: %%A >> %OUTPUT%
icacls "%%A" >> %OUTPUT%
echo. >> %OUTPUT%
)

echo 完了しました。結果は %OUTPUT% に保存されています。
pause

3. 実行方法

  1. folders.csvcheck_acl.batを同じフォルダに置きます。
  2. check_acl.bat右クリック → 管理者として実行します。
  3. 同じフォルダ内にicacls_result.txtというファイルが生成され、各共有フォルダのアクセス権が記録されます。

4. 補足ポイント

  • バッチファイルではfor /f構文で1行ずつCSVを読み込み、icaclsを実行しています。
  • setlocal enabledelayedexpansionを入れることで変数の展開タイミングを制御できます。
  • フォルダ名に空白が含まれていても"%%A"で囲っていれば問題ありません。
  • icaclsの実行結果を一括ログ保存できるので、後でレビューや報告書に活用可能です。

このように、CSVとバッチファイルを組み合わせれば、手間をかけずに大量の共有フォルダのアクセス権を一括でチェックできます。
定期的な権限チェックや運用チェックリストの自動化にも役立つので、ぜひ導入してみてください。

upandup

Web制作の記事を中心に、暮らし、ビジネスに役立つ情報を発信します。 アフィリエイトにも参加しています。よろしくお願いいたします。