- DX
スキャンフォルダ設定をもっとスマートに!

自治体様向けの構築であったらいいなという小ネタを記事化していきたいと思います。
今回は、「複合機でスキャンしたデータを、自分専用のフォルダに保存する仕組み」をご紹介します。
通常、利用者が複合機でスキャンしたデータは、利用者ごとに手動で保存先を指定したり、共通フォルダに集約されたりといった運用も多いかと思います。
しかしこの運用では、誤操作や情報漏洩のリスクが残るため、より安全かつ効率的な方法が求められます。
利用者が保存先を設定することなく、かつ自分だけがアクセス可能なフォルダに保存される方法についてご説明します。
前提条件
- Active Directory (AD) 環境が構築されていること
- ファイルサーバが存在していること
- 複合機にADのユーザ属性からスキャンデータ保存用フォルダのパスを取り込む機能があること
スキャンデータ保存用の親フォルダを作成(ファイルサーバ側)
まず、例としてファイルサーバの D ドライブに「homeDirectory」というフォルダを作成し、隠し共有として設定します。
例:
D:\homeDirectory
隠し共有名は以下のように設定します:
homeDirectory$
※ 最後の「$」を付けることで、共有フォルダがネットワーク上に表示されなくなります。
利用者ごとの専用フォルダ+SCANフォルダを作成(ファイルサーバ側)
ファイルサーバ上で以下のコマンドにより、各利用者用のフォルダと配下にSCANフォルダを作成します。
mkdir "D:\homeDirectory\<利用者のsAMAccountName>\SCAN"
アクセス権の設定(ファイルサーバ側)
ファイルサーバ上で以下のコマンドにより、利用者と複合機用ドメインユーザーのアクセス権を設定します。
■ 利用者フォルダ(親フォルダ)
icacls "D:\homeDirectory\<利用者のsAMAccountName>" /inheritance:r
icacls "D:\homeDirectory\<利用者のsAMAccountName>" /T /grant "<ドメイン名>\Domain Admins:(OI)(CI)(F)"
icacls "D:\homeDirectory\<利用者のsAMAccountName>" /T /grant "<ドメイン名>\<利用者のsAMAccountName>:(OI)(CI)(M)"
icacls "D:\homeDirectory\<利用者のsAMAccountName>" /T /deny "<ドメイン名>\<利用者のsAMAccountName>:(DC)"
■ SCANフォルダ
icacls "D:\homeDirectory\<利用者のsAMAccountName>\SCAN" /inheritance:r
icacls "D:\homeDirectory\<利用者のsAMAccountName>\SCAN" /T /grant "<ドメイン名>\Domain Admins:(OI)(CI)(F)"
icacls "D:\homeDirectory\<利用者のsAMAccountName>\SCAN" /T /grant "<ドメイン名>\ScanUser:(OI)(CI)(M)"
icacls "D:\homeDirectory\<利用者のsAMAccountName>\SCAN" /T /grant "<ドメイン名>\<利用者のsAMAccountName>:(OI)(CI)(M)"
icacls "D:\homeDirectory\<利用者のsAMAccountName>\SCAN" /T /deny "<ドメイン名>\<利用者のsAMAccountName>:(DE)"
※「ScanUser」は複合機からスキャンデータをSCANフォルダに書き込むためのドメインユーザーです。
利用者はフォルダに対して読み書き(SCANフォルダは削除拒否)、ドメイン管理者には読み書き権限を与えています。
ホームフォルダを設定(Active Directory側)
各利用者のPCから、SCANフォルダにアクセスできるように、ホームフォルダ(Hドライブ)として設定します。
AD上で以下のコマンドにより、ホームフォルダを設定します。
dsmod user $(dsquery user -samid <利用者のsAMAccountName>) -hmdir "\\<ファイルサーバのIPアドレス or ホスト名>\homeDirectory$\<利用者のsAMAccountName>" -hmdrv H:
以上の設定を行うことで、端末にドメインユーザーでログインするとHドライブが表示されるようになります。

Hドライブにアクセスすると、SCANフォルダが表示され・・・

SCANフォルダ内に自身がスキャンしたドキュメントのみ表示されようになります。
※複合機が使用するドメインユーザー(ScanUser)によって、SCANフォルダにスキャンデータが格納されます。

また、SCANフォルダが消えちゃったんだけど!という問い合わせを回避する為にSCANフォルダは自身で削除できないようにしています。

SCANフォルダのUNCパスを設定(Active Directory側)
AD上の使用されていないユーザ属性にSCANフォルダのUNCパスを設定します。
info属性や、スキーマ拡張されている場合はextensionAttribute1~15から任意の未使用の属性を使用します。
AD上で以下のコマンドにより、UNCパスを設定します。
Set-ADUser -Identity <利用者のsAMAccountName> -Replace @{extensionAttribute10="\\<ファイルサーバのIPアドレス or ホスト名>\homeDirectory$\<利用者のsAMAccountName>\SCAN"}
※例として「extensionAttribute10」にSCANフォルダのUNCパスを設定しています。
複合機にてスキャンデータを格納する属性を設定(複合機側)
最後に使用されている複合機の管理画面でスキャンデータを格納するUNCパスが設定されている属性として、先ほどSCANフォルダのUNCパスをセットした属性を設定します。
※複合機により設定手順が異なる為、ここでは割愛いたします。
運用イメージ
- 複合機でドキュメントをスキャン
- スキャンデータがファイルサーバ上(
\\<ファイルサーバ>\homeDirectory$\<ユーザー名>\SCAN
)に保存される - 利用者は自身の端末のHドライブ(ホームフォルダ)からスキャンデータを確認
- 必要に応じてhomeDirectory配下にクォータを設定し、保存可能な容量を制限する
まとめ
この構成を導入することで、以下のようなメリットがあります。
- スキャンデータが他の利用者に見られない
- 保存先の設定ミスがなくなる
- 管理者による一元管理が可能に
- 自治体など高セキュリティ環境にも最適
自治体や官公庁でのファイル運用改善に、ぜひご活用ください。
※実運用では、PowerShell等でスクリプト化することをオススメします。