プロキシ設定を配布するGPOを運用していると、「特定のIPアドレス範囲に属するサーバー群だけ適用を外したい」という要望がよく出ます。しかしGPOのセキュリティ フィルタリングは“IPレンジ指定の拒否”ができません。現実的に事故なく運用するための手段と設計のコツを、具体例つきで整理します。
結論
GPOのセキュリティ フィルタリングだけで、IPアドレス範囲を条件に「適用しない(deny)」はできません。
IPレンジを軸に切り替えたい場合は、次のいずれかで設計するのが現実的です。
- WMIフィルターで「このIP帯のときだけ適用する」(Allow方式)
- グループ ポリシーの項目レベル ターゲティングで、IPレンジに一致したときだけ設定を配布する(GPPを使う場合に特に有効)
- ADサイトとサブネットでサブネット単位にスコープする(IPレンジ=サブネットで管理されている環境なら正攻法)
- 最終的に確実なのはOU分割やセキュリティグループで対象を明確化する(IPではなく“オブジェクト”で管理する)
なぜセキュリティ フィルタリングでIPレンジ指定ができないのか
セキュリティ フィルタリングは、GPOそのものに付くアクセス制御(ACL)で、対象のユーザー/コンピューター/グループに対して「読み取り」「グループ ポリシーの適用」を許可するかどうかで動きます。ここで扱える条件は、あくまでADのセキュリティ プリンシパルです。
一方、IPアドレスは“端末のネットワーク状態”であり、ADのグループ メンバーシップのように「その端末が持つ属性として恒常的に評価」される仕組みではありません。つまり、セキュリティ フィルタリングの評価軸がそもそも違います。
| 仕組み | 評価タイミング | 評価に使える情報 | IPレンジ条件 |
|---|---|---|---|
| セキュリティ フィルタリング | GPOの取得と適用可否の判定時 | ユーザー/コンピューターのトークン、グループ、ACL | 不可 |
| WMIフィルター | クライアント側のポリシー処理時 | OS上のWMIで取れる情報(NIC、OS、HW等) | 可(ただし実装にコツあり) |
| 項目レベル ターゲティング | 該当の設定項目を適用する直前 | IPレンジ、グループ、OS、レジストリなど | 可(設定項目単位) |
| ADサイトとサブネット | クライアントがサイトを判定する時 | ADに登録されたサブネットと端末IP | 可(サブネット単位が前提) |
まず最初に整理したい前提
「GPOを適用させない」という要望は、現場では次の2種類が混ざりやすいです。ここを最初に切り分けると、最適解がブレません。
- GPO自体をまるごと適用対象外にしたい(GPOの処理をスキップさせたい)
- GPOは処理されてもよいが、プロキシ設定だけ当てたくない(設定項目の適用を止めたい)
プロキシ設定のためだけに作ったGPOなら、どちらでも結果はほぼ同じです。しかし、1つのGPOに“他の重要設定”も混在しているなら、いきなりWMIでGPO全体を弾くのは危険です。原則は「目的別にGPOを分ける」をおすすめします。
現実的な解決策として最もよく使われる方法
WMIフィルターで「指定IP帯のときだけ適用する」
IPレンジでGPOを切り替える要望に対し、最も“GPOらしく”対応できるのがWMIフィルターです。ただし発想は拒否ではなく許可です。
つまり、次のように設計します。
- プロキシGPOは適用したいネットワーク帯だけで成立するようにする
- WMIフィルターは「このIP帯なら適用する」条件を作る
- それ以外のIP帯(除外したいサーバー群)は条件に一致しない=結果として適用されない
手順
| 手順 | 操作 | ポイント |
|---|---|---|
| GPOを分離 | プロキシ関連の設定だけを別GPOにまとめる | 他の設定まで巻き込んで適用/非適用が変わる事故を防ぐ |
| WMIフィルターを作成 | GPMCでWMIフィルターを新規作成し、WQLクエリを追加 | クエリは短く、判定対象を明確にする |
| GPOにWMIフィルターを紐づけ | 対象GPOの「WMIフィルター」を選択 | 既存GPOに後付けする場合は影響範囲を必ず確認 |
| 検証 | gpresult、GPO結果ウィザードで適用可否を確認 | 対象/非対象の両方で確認する |
| 段階展開 | テストOU→小規模→全体へ | IP追加やNIC構成差異の“例外”が見つかりやすい |
WMIフィルターの基本クエリ例
よく使われるクラスは Win32_NetworkAdapterConfiguration です。IPv4アドレスの先頭が一致するかどうかで“サブネット相当”を判定します。
例:10.10.0.0/16 と 10.20.0.0/16 に属する場合だけ適用する
SELECT * FROM Win32_NetworkAdapterConfiguration
WHERE IPEnabled = TRUE
AND (IPAddress LIKE "10.10.%"
OR IPAddress LIKE "10.20.%")
例:デフォルトゲートウェイを持つNICだけを対象にして誤判定を減らす
SELECT * FROM Win32_NetworkAdapterConfiguration
WHERE IPEnabled = TRUE
AND DefaultIPGateway IS NOT NULL
AND (IPAddress LIKE "10.10.%"
OR IPAddress LIKE "10.20.%")
複数NICを持つサーバーでは、バックアップ用NICやiSCSI用NICなど“実運用の判断に使いたくないIP”が混ざりやすいです。DefaultIPGateway を条件に入れるのは、事故を減らす定番の工夫です。
IPレンジ設計別のクエリ例
| やりたいこと | WQL例 | 注意点 |
|---|---|---|
| 単一の/24だけ許可 | IPAddress LIKE "192.168.10.%" | /24相当の“前方一致”なら扱いやすい |
| 複数サブネットを許可 | (IPAddress LIKE "10.10.%" OR IPAddress LIKE "10.20.%") | ORが増えすぎると運用が崩れやすいので整理が必要 |
| 大きいレンジを許可 | IPAddress LIKE "10.%" | 広すぎる許可は意図しない対象も含みやすい |
| 任意の開始〜終了で範囲指定 | WMI単体では非推奨 | ビット演算や数値比較が苦手。項目レベル ターゲティングの方が向く |
| APIPAを避けたい | AND NOT (IPAddress LIKE "169.254.%") | 環境によっては一時的にAPIPAになると適用が揺れる |
WMIフィルター運用でハマりやすいポイント
- Allow方式が基本
「除外したいIP帯が少数」でも、WMIで“それ以外全部”を表現するのは難しいことがあります。可能なら「プロキシが必要なネットワーク」を明確化し、そこだけ許可する発想に寄せると安定します。 - 複数NIC・複数IPの設計
WMIの条件が“どのNICのIPを見てOKとするか”を決め切れていないと、想定外のNICで一致してしまい適用されます。デフォルトゲートウェイ、NICの説明文字列、DHCPの有無など、判断軸を決めてください。 - クエリは軽く
WMIフィルターはクライアント側評価です。重いクエリや条件過多は、起動・ログオン・定期更新時の体感を悪化させることがあります。 - 変更時の影響が見えにくい
IPレンジ変更やNIC追加があると、突然“適用されない/される”が起きます。WMIフィルター名に許可レンジを入れる、変更履歴を残す、定期棚卸しをするのが重要です。
適用確認のやり方
対象サーバーで「本当にWMIフィルターが真になっているか」を確認できる状態にしておくと、切り分けが一気に楽になります。
- gpresultでGPOが適用されたか確認する
gpresult /r可能ならHTML出力もおすすめです。gpresult /h C:\temp\gpresult.html - PowerShellでIP情報を確認する
Get-CimInstance -ClassName Win32_NetworkAdapterConfiguration | Where-Object {$_.IPEnabled -eq $true} | Select-Object Description, IPAddress, DefaultIPGateway - イベントログ(GroupPolicyの運用ログ)でWMI評価の痕跡を追う
「GPOがスキップされた理由」を追えるようにしておくと、現場対応が速くなります。
GPO全体を弾くのが怖いなら
項目レベル ターゲティングでIPレンジ条件を付ける
プロキシ設定がグループ ポリシーの基本設定で配布されている場合は、項目レベル ターゲティングが非常に強力です。これは「GPOは通常どおり処理するが、その中の“特定の設定項目”だけを条件付きで適用する」仕組みです。
特に、プロキシ設定を以下のどちらかで配布している場合と相性が良いです。
- ユーザー構成 / コンピューター構成 → 基本設定 →(インターネット設定、レジストリなど)
- プロキシ関連のレジストリ値を、基本設定のレジストリ項目で配布している
項目レベル ターゲティングの使いどころ
- IPレンジの開始〜終了で範囲指定したい
- 1つのGPOに複数の設定があり、プロキシ設定だけを条件付きにしたい
- WMIフィルターでGPO全体をスキップさせるのが怖い
設定手順のイメージ
- GPMCで対象GPOを編集
- プロキシ設定の項目(例:インターネット設定、またはレジストリ項目)を開く
- 該当項目の共通タブで項目レベル ターゲティングを有効化
- ターゲティング エディターでIPアドレス範囲条件を追加
- 「範囲内なら適用」「範囲外なら適用」など、要件に合わせて条件を組む
この方法の利点は、IPレンジで“除外”を表現しやすいことです。たとえば「172.16.50.0〜172.16.50.255 のサーバーにはプロキシ設定を当てない」といった要求は、項目レベル ターゲティングで素直に組めます。
| 観点 | WMIフィルター | 項目レベル ターゲティング |
|---|---|---|
| 制御単位 | GPO全体 | 設定項目単位 |
| IPレンジの表現 | 前方一致中心で工夫が必要 | 開始〜終了の範囲指定がしやすい |
| 事故の影響 | 誤判定するとGPOが丸ごと効かない | 誤判定しても影響は当該設定項目に留まりやすい |
| 前提 | GPMCでWMIフィルターを管理 | 基本設定で配布していることが多い |
サブネット単位で管理できるなら正攻法
ADサイトとサブネットでIPベースのスコープを作る
「IPレンジ=サブネット」として設計され、拠点やセグメントが明確な環境では、Active Directory サイトとサブネットをきちんと整備するのが最も筋の良い方法になります。
ADサイトは、クライアントが自分のIPアドレスから「どのサイトに属するか」を判定し、そのサイトにリンクされたGPOを適用できる仕組みです。つまり、IPアドレスとADの管理を正面から結びつける機能です。
向いているケース
- 除外したい範囲がサブネット単位で明確
- 拠点・ネットワークをADサイトで管理している
- 「そのネットワークでは一律この設定を適用する」というポリシーが多い
注意点
- サブネットの登録漏れがあると、意図しないサイトとして扱われます。結果的にGPO適用が揺れます。
- 複数NICのサーバーはサイト判定が読みにくくなることがあります。ドメイン参加サーバーでマルチホーム運用をする場合は、ネットワーク設計側と合わせて判断軸を決めてください。
- 「同一サブネット内の一部サーバーだけ除外」はサイト設計では表現しにくく、OUやグループ管理が向きます。
ほかにもある選択肢
OU分割とセキュリティグループで確実に制御する
IPレンジでの制御は便利に見える反面、IP変更、NIC追加、仮想化の移動などで“静かに壊れる”ことがあります。特定のサーバー群を確実に除外したいなら、結局のところ次が一番堅いです。
- 対象サーバー群を専用OUに移し、GPOリンクを分ける
- 対象サーバー群をセキュリティグループで管理し、GPOのセキュリティ フィルタリングで制御する
「IPレンジで除外したい」という要望が出る背景には、実は「OUやグループで管理しきれていない」運用課題が潜んでいることも多いです。IPで無理やり吸収するより、管理単位を整える方が長期的に安定します。
PACファイルでプロキシ側を柔軟にする
プロキシ設定を「固定のプロキシ指定」ではなく「自動構成スクリプト(PAC)」に寄せられるなら、PAC側でクライアントIPに応じてDIRECTにするといった設計も可能です。
ただし、アプリケーションによってはPACを参照しないものもあり、WindowsのWinHTTP/WinINET差異も絡みます。サーバー用途では影響範囲の確認が必須です。
どの方法を選ぶべきか
| 要件 | おすすめ | 理由 |
|---|---|---|
| GPOまるごと、IP帯で適用/非適用を分けたい | WMIフィルター | GPO単位でスコープを絞れる |
| プロキシ設定だけをIPレンジで当て分けたい | 項目レベル ターゲティング | 設定項目単位で安全に条件付けでき、範囲指定もしやすい |
| IPレンジが拠点/セグメントのサブネットとして管理されている | ADサイトとサブネット | 正攻法でIPベース管理ができ、全体設計にも効く |
| サーバー群が少数で、確実に除外したい | OU分割またはグループ管理 | IP変化やNIC構成差の影響を受けにくい |
事故を減らすための運用チェックリスト
- プロキシ設定は専用GPOに分離し、影響範囲を小さくする
- WMIフィルター名に許可レンジや目的を含め、見ただけで意図が分かるようにする
- 複数NICの判定方針(ゲートウェイ付きNICを採用する等)を事前に決める
- 新規サーバー追加時の手順にgpresult確認を組み込む
- ネットワーク変更(サブネット追加/変更)時に、WMIフィルターやターゲティング条件も更新対象として運用フローに入れる
- 「特定IP帯を除外」の背景が運用課題なら、OU/グループ設計の見直しもセットで検討する
トラブルシュート
適用されない場合に見る順番
- GPOリンク:対象OUにリンクされているか、継承ブロックや強制が絡んでいないか
- セキュリティ フィルタリング:対象コンピューターに「読み取り」「適用」があるか
- WMIフィルター:条件に一致しているか(複数NIC、ゲートウェイの有無、想定外IPの一致)
- 項目レベル ターゲティング:条件のAND/OR、否定条件、範囲の開始・終了のミス
- キャッシュと更新:gpupdateの実施、適用タイミングの確認
現場で効く確認コマンド
GPOの適用状況をざっくり確認
gpresult /r
IPとゲートウェイを確認して、WMI条件と突き合わせる
Get-CimInstance -ClassName Win32_NetworkAdapterConfiguration |
Where-Object {$_.IPEnabled -eq $true} |
Select-Object Description, IPAddress, DefaultIPGateway
ここで「想定していないNICのIPが条件に一致していた」というケースが非常に多いです。複数NICのサーバーでは、まずこの一覧とWMI条件の整合を取ると解決が早いです。

コメント