グループポリシー(英: Group Policy)は、Microsoft Windows NT ファミリのオペレーティングシステムにある機能の1つ。Active Directory 環境内でコンピュータ群やリモートユーザ群の集中管理とコンフィギュレーションの手段を提供する。言い換えれば、ユーザーがそのコンピュータネットワーク内で何ができ、何ができないかを制御する。グループポリシーは企業内で使うことが多いが、他にも学校や小規模な団体でセキュリティ問題を発生する可能性のある行動を制限するために使う。例えば、Windows タスク マネージャーをブロックしたり、特定フォルダへのアクセスを制限したり、実行ファイルのダウンロードを禁止したりといった用途がある。

マイクロソフトのインテリミラーテクノロジーの一部であり、Windowsにおけるユーザーサポート経費を低減させることを目的としている。それらのテクノロジーは、ネットワークに接続していないマシンの管理やローミングユーザーの管理に関連し、ローミングプロファイル、フォルダリダイレクト、オフラインファイルを含む。

## 概要

グループポリシーは、対象オブジェクトのレジストリ、NTFSセキュリティ、監査およびセキュリティポリシー、インストール、ログイン/ログオフ時のスクリプト、フォルダリダイレクト、Internet Explorer設定を制御できる。ポリシー設定は Group Policy Object (GPO) に格納される。GPO は内部ではGUID (Globally Unique Identifier) で参照される。それぞれが複数のサイト、ドメイン、組織内単位にリンクすることもある。これにより、1つのGPOを更新するだけで複数のマシンやユーザーに対する更新ができ、管理コストを低減することができる。

グループポリシーは管理テンプレート (ADM/ADMX) ファイルを使ってポリシー設定をレジストリのどこに格納するかを記述する。管理テンプレートには基本的に、グループポリシー・オブジェクトエディタ・スナップインで管理者に表示されるユーザインタフェースを記述する。単一のワークステーションでは、管理テンプレートは `%WinDir%\Inf` フォルダに格納され、ドメインコントローラでは各ドメインGPO毎に Sysvol フォルダ内のグループポリシーテンプレート (GPT) という1つのフォルダに格納される。ADMX はXMLベースの新しいファイルフォーマットで、Windows Vista で導入された。ADMX には個々のGPOの設定が含まれる。

個々のユーザやコンピュータオブジェクトは Active Directory には1つだけ存在するが、複数のGPOに対応することが多い。ユーザやコンピュータオブジェクトは対応するGPOごとに適用する。GPO間の矛盾は属性レベルで解決する。

グループポリシーはコンピュータの起動時およびユーザのログオン時に解析され適用される。クライアントマシンはグループポリシーの設定を定期的に更新する。更新間隔は60分から120分で、グループポリシー設定のコンフィギュレーションで制御される。

グループポリシーは、Windows 2000、Windows XP Professional、Windows Vista(Business以上)、Windows 7(Professional以上)、Windows 8/8.1(各Pro以上)、Windows 10(Pro以上)、Windows Server 2003、Windows Server 2008、Windows Server 2008 R2、Windows Server 2012、Windows Server 2012 R2、Windows Server 2016 でサポートされている。Windows XP Media Center Edition と Windows XP Professional では、ドメインに属していないコンピュータでもグループポリシー・オブジェクトエディタを使って個々のコンピュータのグループポリシーを設定できる。ただし、このようなローカルなグループポリシーは Active Directory による GPO に比べると機能が制限されている。

グループポリシーをUnix系OS(Mac OS X、Linux など)にまで強制するサードパーティ製ソフトウェア(Centrify DirectControl など)もある(Unix系クライアントマシン上で動作し、ポリシー設定を適用する)。

## 利用方法

グループポリシーを使用する場合、3つのフェーズがある。GPO作成、GPOの適用、GPOの利用である。

### GPOの作成と編集

GPOの作成と編集は2つのツールで行う。グループポリシー・オブジェクトエディタ (GPEdit) と無料ダウンロード可能なグループポリシー管理コンソール (GPMC) である。GPEditは一度に1つのGPOの作成・編集しかできない。管理者が以前に配布したGPOの状況を把握するには Active Directory Users and Computers (ADUC) を使って個々の組織単位に問い合わせる必要があり、非常に時間もかかるし間違いやすい仕事である。GPMCはGPO管理を単純化し、複数のグループポリシーをまとめて管理できる。GPMCの機能として、GPO設定のサマライズ、グループフィルタリングの単純化されたセキュリティペイン、GPOバックアップ/リストア/クローンなど、ADUCを真似たGUIを提供する。GPMCからGPOを編集する際にはGPEditを起動している。GPOTool.exe を使うと、GPOのGUIDを指定して別名を調べることができる。このツールは全GPOのGUIDとそれぞれに対応する別名を出力する。

### GPOの適用

GPOの対象への適用方法は条件によって2種類ある。1つはオブジェクトのリンクで、もう1つは Security Descriptor のカスタマイズである。GPOを作成すると、サイト、ドメイン、組織単位 (OU) のいずれかのオブジェクトにリンクできる。さらに、GPOのデフォルトの Security Descriptor をセキュリティフィルタ、Windows Management Instrumentation (WMI) フィルタ、または委任 (Delegation) を使って更新できる。

セキュリティフィルタは、GPOを適用すべきユーザやグループを選択することでスコープをカスタマイズする。

WMIフィルタは、適用すべきWMIフィルタを選択することでGPOのスコープをカスタマイズする。

委任は、特定ユーザおよびグループとそれぞれに適用される個々のパーミッションを割り当てることでGPOの Security Descriptor をカスタマイズする。セキュリティフィルタに比べると、適用と非適用の両方のパーミッションを修正できるため、より制御できる範囲が広い。

### GPOの利用

グループポリシーのクライアントは「プル型」モデルで運用する。頻繁に(90分から120分のランダムな間隔、ただし変更可能)そのマシンに対応したGPOやログオンユーザに対応したGPOの一覧を更新する。そして、クライアントはマシンやユーザにGPOを適用し、対応するコンポーネントやアプリケーションの動作に影響を与える。

## ローカルグループポリシー

ローカルグループポリシー (LGP) は、Active Directory で使うグループポリシーよりも基本的なバージョンである。Windows Vista 以前はローカルグループポリシーで単一のローカルコンピュータのグループポリシーを設定できたが、Active Directory のグループポリシーとは異なり、個別のユーザやグループについてのポリシーを作ることはできない。選択可能なオプションも Active Directory のグループポリシーより少ない。特定ユーザの制限は、レジストリエディタで HKEY\_CURRENT\_USERまたは HKEY\_USERSキーに変更を加えることで変更できる。ローカルグループポリシーは単にレジストリのHKEY\_LOCAL\_MACHINEキーに変更を加えるので、全ユーザーに影響する。同じ変更をHKEY\_CURRENT\_USERまたはHKEY\_USERSキーに加えれば、特定のユーザしか影響を受けない。Microsoft TechNet では、レジストリエディタを使ったグループポリシー設定方法が解説している。ローカルグループポリシーはドメインに属するコンピュータでも使え、Windows XP Home Edition でも使える。

Windows Vista は複数ローカルグループポリシー・オブジェクト (MLGPO) をサポートしており、ユーザ個人毎にローカルグループポリシーを設定できる。

## セキュリティ問題

ユーザ単位のポリシーは、対象アプリケーションが自発的に受け入れるときだけ効果を発揮するという問題がある。悪意あるユーザはアプリケーションがグループポリシー設定を読み込むのを妨害したり(それによってセキュリティレベルが低いデフォルト状態になる)、任意の値を返す可能性もある。また、ユーザが書き込み可能な位置にアプリケーションをコピーし、ポリシー設定が無効化されるような変更を加えることもできる。