ピッシーのメモ帳

気になった情報の保管庫

グループポリシーで特定の場所にファイルを配布する方法

特定の場所にファイルを配布したい場合、ActiveDirectory環境ではグループポリシーを使って配布する方法がある。

前提

以降の手順では、GPO(Group Policy Object)の内容を変更する。

この時点でGPOが何か分からない人は、まずは下記リンクの記事を読むこと。

atmarkit.itmedia.co.jp

手順

以降の手順はWindowsServer 2019 Standardで行っているが、WindowsServerであればバージョンが異なっていても同じような操作で設定できるはず。

設定項目へ移動

グループポリシー管理エディタを開き、「ユーザーの構成」→「基本設定」→「Windowsの設定」→「ファイル」へ移動する。

ファイルの新規作成

ファイルを右クリックし「新規作成」→「ファイル」を選択する。

新しいファイルのプロパティ

設定例
  • 配布ファイル:test.txt
  • 配布元:ファイルサーバ「SERVER01」の共有フォルダ「share」
  • 配布先:ユーザーの「ドキュメント」フォルダ

「ソースファイル」に配布元、「ターゲットファイル」に配布先を指定し「OK」を押す。

ターゲットファイルの%USERPROFILE%とは、ユーザープロファイルのディレクトリを意味する環境変数。

補足 アクションの種類

「アクション」には「作成」「置換」「更新」「削除」の4項目があり、設定時点では違いが分からなかったので「置換」を選択していた。

やや古い情報ではあるが、以下のサイトに記述があった。

https://apec.aichi-c.ed.jp/kenkyu/network/server/2018/2008sv/index.html

以下、リンク先本文より引用。

新規に作成された「ファイル(またはフォルダ,ショートカット)」には,「作成」,「置換」,「更新」,「削除」の四つのアクションがあります。そのうち,「置換」と「更新」は,以下のように動作します。

  • 「置換」の場合は,現在のショートカット等を削除してから再作成します。したがって,処理後の状態は,既存のショートカット等の上書きになります。
  • 「更新」の場合は,定義されている属性等の設定のみが更新されます。したがって,それ以外の設定は現状が維持されます。

また、ファイルではなくレジストリの内容ではあるが以下のサイトに記述があった。

www.vwnet.jp

以下、リンク先本文より引用。

作成 コンピュータまたはユーザーに対し、新しいレジストリ値またはキーを作成します。
削除 コンピュータまたはユーザーのレジストリ値またはレジストリ キーと、それらの値とサブキーをすべて削除します。
置換 コンピュータまたはユーザーのレジストリ値またはキーを削除して再作成します。ターゲットがレジストリ値の場合、[置換] 操作の最終的な結果は、そのレジストリ値に関連付けられたすべての既存の設定を上書きすることになります。ターゲットがレジストリ キーの場合、この操作の最終的な結果は、データのない既定値の名前のみを残して、そのキーのすべての値とサブキーを削除することになります。レジストリ値またはキーが存在しない場合、[置換] 操作では新しいレジストリ値とキーが作成されます。
更新 コンピュータまたはユーザーの既存のレジストリ値またはキーを変更します。この操作は、[置換] を指定した場合とは異なり、基本設定項目に定義された設定のみを更新します。その他の設定についてはすべて、レジストリ値またはキーの構成が維持されます。レジストリ値またはキーが存在しない場合、[更新] 操作では新しいレジストリ値とキーが作成されます。

以下、これらの情報を元にした私自身の解釈。

作成

ファイルを新規作成する。

置換

ファイルを削除して再作成する。

更新

ファイルの属性を変更する。

削除

ファイルを削除する。

 

一度きりの配布であれば「作成」か「更新」が無難か。

「置換」を選択するとグループポリシーが適用されるたびにファイルの削除・再作成が行われるようなので、若干ではあるがコンピュータやネットワークに負荷がかかりそう。

注意点

この設定は「ユーザーの構成」で行うため、配布設定はユーザーに対して適用される。そのため、「特定のコンピュータにファイルを配布」といったことはできない。*1

おわりに

グループポリシーの設定に関する情報はマイクロソフトのサイトにはほとんど掲載がないので、調べるのに苦労する。

*1:私はそれに気づかずパソコンを再起動したり何度もコマンドプロンプトから「gpupdate /force」を流していた