社内のAccessファイルを棚卸しする方法|検索・一覧化・重要度評価
情シスが把握していない野良Accessは、PowerShellのGet-ChildItemで1時間以内に一覧化できます。利用状況の確認から、利用人数×業務影響の重要度マトリクスで優先順位をつける方法まで解説します。
結論:情シスが把握していないAccessは、PowerShellで一次一覧を素早く作れる
社内のファイルサーバーに散らばったAccessファイルは、PowerShellのGet-ChildItemコマンドで拡張子ごとに一覧化できます。共有フォルダの規模やネットワーク速度にもよりますが、小〜中規模の共有であれば一次一覧の取得自体は短時間で完了します。あとは利用実態を確認して重要度で分類するだけです。棚卸しに特別なツールは要りません。
ただ、この作業をしてみると現場側も驚くほど多くのAccessが見つかります。当社の棚卸し支援では、最初の洗い出し後に「こんなにあったのか」という反応が出ることがほとんどです。見つかってからが本番で、重要度の評価と管理方法の整理に時間がかかります。この記事では、洗い出しから評価まで実務で使える手順を順に解説します。
なぜ棚卸しが必要か:野良Accessのリスク
情報システム部門が把握していないAccessは、いわゆるシャドーITです。現場の担当者が業務の必要から個人的に作り、そのまま運用が続いているケースが多い。問題は、担当者が異動・退職した後もファイルだけが残って誰も中身を知らない、という状態になりやすいことです。
当社の棚卸し支援実務から見ると、把握されていないAccessが抱えるリスクは大きく3つです。第一に、属人化による業務停止リスク。作った人しか操作できない状態で、その人がいなくなると業務が止まります。第二に、IT管理の死角になるリスク。IT部門が管理対象として認識していないと、そのAccessに固有のバックアップ設計やセキュリティ確認が漏れるおそれがあります。ファイルサーバー全体のバックアップ対象に含まれていたとしても、復旧手順の確認や内容に応じた対策が及ばないことは多いです。第三に、引き継ぎ作業の抜け漏れ。退職前に引き継ぎを行おうにも、存在自体が把握されていなければ漏れます。
棚卸しを進めるときは、現場を責めないことが大事です。野良Accessが生まれた背景には「申請して正式なシステムを作るより自分で作ったほうが早かった」という事情があります。申告しやすい雰囲気を作り、見つかったファイルは一緒に整理する、という進め方のほうがうまくいきます。
ファイルサーバーからAccess一覧を取得する
ファイルサーバー上のAccess(.accdb / .mdb)を検索する方法は複数あります。実務で使いやすい2つを紹介します。
方法1:WindowsエクスプローラーとWindows検索
エクスプローラーの検索ボックスに *.accdb や *.mdb と入力すると、そのフォルダ以下を再帰的に検索します。手軽ですが、深い階層や大量ファイルがあると遅く、結果のエクスポートが面倒です。棚卸しの入口として確認する程度なら使えます。
方法2:PowerShellのGet-ChildItemで一覧CSVを作る
件数が多い場合はPowerShellが確実です。以下のコマンドで、指定パス以下のaccdbとmdbをCSVに出力できます。
# 事前に出力先フォルダを作成してください(存在しない場合)
New-Item -ItemType Directory -Path "C:\work" -Force
Get-ChildItem -Path "\\fileserver\share" -Recurse -File -Force -Include "*.accdb","*.mdb","*.accde","*.mde","*.accdr","*.adp","*.ade" -ErrorAction SilentlyContinue |
Select-Object FullName, Length, LastWriteTime, CreationTime |
Export-Csv -Path "C:\work\access-inventory.csv" -Encoding UTF8 -NoTypeInformation各オプションの意味は次のとおりです。
-Path:検索対象のルートパス(UNCパスでも可)-Recurse:サブフォルダを再帰的に検索-File:ファイルのみを返す(拡張子に似た名前のフォルダを結果から除外)-Force:隠し属性・システム属性のファイルも検索対象に含める-Include:拡張子フィルタ(.accdb/.mdb/.accde/.mde/.accdrの現行5形式に加え、Access 2010以前で使われたプロジェクト形式の.adp/.adeも対象。現行Accessでは開けないが旧資産把握のため含める)-ErrorAction SilentlyContinue:アクセス権限エラーが出るフォルダをスキップして続行Select-Object:FullName(フルパス)・ファイルサイズ・最終更新日時・作成日時を取得Export-Csv:UTF-8のCSVに出力(-NoTypeInformationで型情報行を除去)
ネットワーク共有の場合、アクセス権のないフォルダはスキップされます。対象共有の共有権限およびNTFS読み取り権限を付与されたアカウントで実行するか、部門ごとに範囲を分けて実行すると取りこぼしが減ります。
出力されたCSVをExcelで開くと、パス・サイズ・最終更新日時・作成日時の4列が並びます。このデータが棚卸しの出発点になります。
個人PCのCドライブも対象にする
ファイルサーバーだけでは不十分で、個人PCのCドライブ(特にデスクトップ・マイドキュメント)にも業務用Accessが置かれていることがあります。PowerShell Remotingや端末管理基盤がある環境ではスクリプトを複数PCへ展開できますが、そうでない場合は個別実行か利用者申告が現実的です。棚卸しの周知と並行して「自分のPCにAccess(.accdb/.mdb/.accde/.mde/.accdr)があれば申告してください」という案内を添えると申告率が上がります。
利用状況を確認する
ファイル一覧ができたら、次は使われているかどうかを確認します。ファイルサーバーのCSVには最終更新日時が含まれているので、それを利用状況の目安にできます。
当社の棚卸し支援では、最終更新日時を次の3区分で分類することが多いです。これはあくまで当社の実務基準であり、業種・用途によって適切な期間は変わります。
- 1年以内:現役利用の可能性が高い
- 1〜3年前:使われていないか、定期処理でのみ使われている可能性
- 3年以上前:ほぼ使われていない(ただし年次処理のAccessは例外が多い)
ただし最終更新日時だけでは判断できません。読み取り専用で使われているAccessは更新日時が動かないためです。一覧をもとに、各部門の担当者に「このファイルを今も使っていますか」と確認するプロセスが必要です。
また、ファイルサイズも参考になります。Accessの2GB上限に近いファイルは使用頻度が高いか、データ整理がされていない可能性があります。500MB以上のファイルは特に注意して確認します。
重要度マトリクスで優先順位をつける
利用状況が確認できたら、重要度で分類します。当社の棚卸し支援では「利用人数」と「業務への影響度」の2軸でマトリクスを作ります。
| 業務影響:高(止まると業務が止まる) | 業務影響:低(代替手段がある) | |
|---|---|---|
| 利用人数:多(複数人・複数部門) | 最優先(A):即座に管理台帳へ登録、担当者確保 | 高優先(B):管理台帳へ登録、定期点検を設定 |
| 利用人数:少(個人または1部門) | 高優先(B):業務影響を再確認、担当者を明確化 | 低優先(C):現状維持 or 廃止を検討 |
最優先(A)に分類されたAccessは、ブラックボックス解析や最低限のドキュメント整備から着手します。担当者不在・仕様書なしで業務影響が高いものは、早期に手を打つ必要があります。
低優先(C)のファイルは「廃止」の選択肢も含めて検討します。使われていないAccessをそのまま放置すると、誰かが間違って開いて壊してしまうリスクや、セキュリティ上の死角になるリスクが残ります。確認のうえ削除するか、アーカイブフォルダへ移動するか決めておくと管理が楽になります。
棚卸し結果を管理台帳にまとめる
分類が終わったら、管理台帳として一元化します。Excelで管理することが多いですが、重要なのはどこに何があるかよりも「誰が担当者か」を明確にすることです。
管理台帳に含めると役立つ項目は次のとおりです。
- ファイルパス
- システム名・業務名(担当部門がつけている呼び名)
- 担当者(現在の管理責任者)
- 利用人数・利用部門
- 業務影響度(A/B/C)
- 最終更新日時(CSVから転記)
- バックアップ有無
- 移行・廃止の予定
当社の棚卸し支援では、管理台帳の作成までを第1フェーズとして、その後の移行計画や移行費用の見積もりは第2フェーズとして分けて進めることが多いです。最初から移行前提で話を進めると現場の協力が得られにくくなるため、まず「把握する」ことだけを目標にするほうがスムーズです。
どのAccessから手をつけるべきか判断しにくい場合は、無料の解析可否チェックでファイルの状態を確認することもできます。
よくある質問
Q. PowerShellのGet-ChildItemでネットワーク共有を検索すると「アクセスが拒否されました」エラーが出ます。
-ErrorAction SilentlyContinue を指定すると、アクセスできないフォルダはスキップして続行します。対象共有の共有権限およびNTFS読み取り権限を持つアカウントで実行するか、部門ごとに範囲を分けて実行すると取りこぼしが減ります。エラーの内容を記録したい場合は、-ErrorVariable errList を追加するとエラー情報も変数に保存できます。
Q. 最終更新日時が古くても、年1回しか使わないAccessがあります。
年次処理(年度末の集計・決算報告用など)のAccessは最終更新日時が1年前になるのが普通です。日時だけで判断せず、担当部門への確認を必ず挟んでください。棚卸し案内を送るときに「年1回しか使わないものも含めて申告してください」と一言添えると申告率が上がります。
Q. 現場から「使っているかどうか分からない」と言われたときはどうすればいいですか。
「分からない」が返ってくる場合、そのAccessはすでに属人化しています。ファイルの作成日・最終更新日・サイズを伝えたうえで、「このパスにあるファイルを最近開きましたか」という具体的な質問に変えると答えが得やすくなります。それでも分からない場合は、業務影響度を確認してから対応方針を決めます。
Q. 棚卸し後、移行が必要なAccessはどこから着手すればいいですか。
重要度マトリクスの最優先(A)から着手します。業務影響が高く複数人が使っているAccessは、止まったときの被害が最も大きいためです。移行の優先順位と費用感はAccess移行の費用相場に整理しています。現状の解析から始めたい場合は、当社の解析サービス(詳細レポート20万円〜)も選択肢の一つです。
触れないAccessが「診断できるか」だけ、確かめませんか。
顧客データは送信不要。発注の義務もありません。
約2分・ファイル送信不要・発注義務なし/説明はオンライン・売り込みはしません