Flat lay of business agenda
共有フォルダが多数ある場合、1つずつ手作業で確認するのは非常に手間がかかります。
このようなときには、共有フォルダのパスをCSVファイルにまとめておき、それを読み取ってicacls
コマンドを実行するバッチファイルを使うと効率的です。
まずは、共有フォルダのフルパスを列挙したCSVファイルを作成します。
以下のような内容のファイルを「folders.csv」という名前で保存します(文字コードはShift-JISまたはUTF-8 BOM付を推奨)。
D:\共有フォルダ1
D:\共有フォルダ2
E:\部門別資料
\\SERVER01\外部共有
1行に1つのパスを記述します。UNCパス(\サーバー名\共有名)にも対応可能です。
次に、上記の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
folders.csv
とcheck_acl.bat
を同じフォルダに置きます。check_acl.bat
を右クリック → 管理者として実行します。icacls_result.txt
というファイルが生成され、各共有フォルダのアクセス権が記録されます。for /f
構文で1行ずつCSVを読み込み、icacls
を実行しています。setlocal enabledelayedexpansion
を入れることで変数の展開タイミングを制御できます。"%%A"
で囲っていれば問題ありません。icacls
の実行結果を一括ログ保存できるので、後でレビューや報告書に活用可能です。このように、CSVとバッチファイルを組み合わせれば、手間をかけずに大量の共有フォルダのアクセス権を一括でチェックできます。
定期的な権限チェックや運用チェックリストの自動化にも役立つので、ぜひ導入してみてください。