この記事の内容
皆様、こんにちは。Configuration Manager / WSUS サポート チームです。
本記事では、Microsoft Configuration Manager (ConfigMgr) のクライアントが [コンピューター ポリシー] を取得し、適用するまでの流れとログの確認方法をご案内します。
クライアントがサイクルを実行して管理ポイント [MP] へポリシー割り当てを要求し、割り当てとポリシー本体を受信して、Windows Management Instrumentation [WMI] へ格納し、評価と適用を完了するまでを対象とします。
サイト サーバー側でコンソール操作や展開設定の変更からポリシーを生成する処理、および [ユーザー ポリシー] の処理は、本記事の対象外です。
全体の流れ
コンピューター ポリシー処理は、概ね次の順序で進みます。
- [コンピューター ポリシーの取得および評価サイクル] を実行します。
- 管理ポイントへコンピューター ポリシー割り当てを要求します。
- コンピューター ポリシー割り当て (完全または差分) を受信します。
- ポリシー本体をダウンロードします。
- ポリシーをコンパイルし、WMI の [RequestedConfig] 名前空間へ格納します。
- 設定を評価して適用し、各コンポーネントへ通知します。
検証環境について
本記事のログ抜粋は、検証環境のクライアント診断ログから採取したものです。掲載する識別子、コンピューター名、ドメイン名は、いずれも検証環境の値です。
| 項目 | 値 |
|---|---|
| 対象クライアント | <クライアント名> |
| サイト コード | <サイト コード> |
| 権限 | SMS:<サイト コード> |
| 管理ポイント | <管理ポイント> |
クライアントは、[コンピューター ポリシーの取得および評価サイクル] を一定間隔で自動実行します。この間隔は [クライアント設定] の [クライアント ポリシーのポーリング間隔] で構成し、既定値は 60 分です。
各ステップとログの追跡方法
関連ログ
クライアント ログの既定の保存先は C:\Windows\CCM\Logs です。
| ログ名 | 主な用途 |
|---|---|
| PolicyAgent.log | コンピューター ポリシー割り当ての要求、受信、コンパイル、適用の全体を確認します。 |
| CcmMessaging.log | 管理ポイントとの HTTP または HTTPS 通信、およびポリシー要求メッセージのキュー処理を確認します。 |
| DataTransferService.log | Background Intelligent Transfer Service [BITS] によるポリシー本体のダウンロードを確認します。 |
| PolicyAgentProvider.log | 受信したポリシーの WMI クラスおよびインスタンスへの反映を確認します。 |
| PolicyEvaluator.log | クライアントでのポリシー評価と適用状況を確認します。 |
テスト検証の情報
本記事では、次のコンピューター ポリシー割り当てを 1 件受信したサイクルを例に説明します。
| 項目 | 値 |
|---|---|
| クライアント ID | <クライアント ID> |
| 割り当て ID | <割り当て ID> |
| ポリシー ID | <ポリシー ID> |
本記事のログ抜粋では、同じ ID の紐づきを視覚的に追跡できるよう、次の色で統一しています。
| 色 | ID の種類 | 用途 |
|---|---|---|
| 青色 | クライアント ID | クライアントを識別し、複数ログにまたがる処理を関連付けます。 |
| 黄色 | 割り当て ID | 受信したポリシー割り当てとコンパイル処理を関連付けます。 |
| 緑色 | ポリシー ID | ポリシー本体、WMI への格納、適用を関連付けます。 |
ステップ 1 : コンピューター ポリシーの取得および評価サイクルを実行する
クライアントは、次のいずれかの契機で [コンピューター ポリシーの取得および評価サイクル] を実行します。
- [クライアント ポリシーのポーリング間隔] に基づく定期実行 (既定で 60 分、ランダム遅延あり)
- コンソールからの [クライアント通知] による [コンピューター ポリシーのダウンロード]
- クライアントの [コントロール パネル] - [Configuration Manager] - [操作] タブ - [コンピューター ポリシーの取得および評価サイクル] - [今すぐ実行]
- 管理者として実行した Windows PowerShell からのトリガー
コマンドで実行する場合は、次のようにトリガー ID を指定します。トリガー ID {00000000-0000-0000-0000-000000000021} が [コンピューター ポリシーの取得および評価サイクル] です。
1 | Invoke-WmiMethod -Namespace root\ccm -Class SMS_Client -Name TriggerSchedule -ArgumentList "{00000000-0000-0000-0000-000000000021}" |
サイクル自体の専用の成功メッセージはありません。実行された結果は、次のステップの [PolicyAgent.log] における割り当て要求として記録されます。
ステップ 2 : 管理ポイントへコンピューター ポリシー割り当てを要求する
サイクルが実行されると、クライアントは権限 (Authority) に対してコンピューター ポリシー割り当てを要求します。
Requesting Machine policy assignments from authority 'SMS:<サイト コード>'
要求メッセージは [CcmMessaging.log] のキュー処理を経て管理ポイントへ送信されます。ポリシー要求に関するキューには、次のものがあります。
1 | Initialized queue processor 'PolicyAgent_RequestAssignments'. Enabled=true Concurrency=5 |
管理ポイントとの通信が成功すると、[CcmMessaging.log] に対象ホストへの CCM_CcmHttp_Status が HRESULT = "0x00000000" および StatusCode = 0 で記録されます。
instance of CCM_CcmHttp_Status
{
ClientID = "<クライアント ID>";
HostName = "<管理ポイント>";
HRESULT = "0x00000000";
StatusCode = 0;
};
HRESULT が 0x00000000 以外の場合や、管理ポイントへのメッセージが配信されない場合は、名前解決、ファイアウォール、および管理ポイントの正常性を確認します。
ステップ 3 : コンピューター ポリシー割り当てを受信する
管理ポイントからの応答を受信すると、[PolicyAgent.log] に割り当ての受信が記録されます。
[The new cookie] は前回の取得以降の変更を管理するための情報で、これにより差分 (Delta) を判定します。
Processing Machine assignments from 'SMS:<サイト コード>'. The new cookie is '2023-04-08 07:54:09.703'. Received Machine delta policy update with 1 assignments
Received Machine delta policy update with 1 assignments は、差分ポリシーとして 1 件の割り当てを受信したことを示します。初回取得や大きな変更時は、Delta ではなく完全 (Full) の応答となります。
前回から変更がない場合は、割り当てを受信せず、次のように記録されます。
[Assignment Request] No new assignments for Machine <クライアント名>
ステップ 4 : ポリシー本体をダウンロードする
割り当てを受信すると、クライアントは各割り当てに対応するポリシー本体をコンパイルします。
[PolicyAgent.log] では、割り当て ID とポリシー ID を確認できます。
Compiling policy assignment '<割り当て ID>' (ver. 1.00) from 'SMS:<サイト コード>' (2023-04-08 07:54:09.703) Compiling policy '<ポリシー ID>' version '1.00' hash 'SHA256:1C2A94FF4F2D856E80F13B8D2F2DF9C17117AE7A4286B00DA0F6D9752AAA7D49' from 'SMS:<サイト コード>' Policy <ポリシー ID> version 1.00 hash SHA256:1C2A94FF... already exists on client [PolicyBodyDownload] Adding 1 policies to the queue.
already exists on client は、同一バージョンのポリシー本体をクライアントが既に保持しており、再ダウンロードが不要であることを示します。
クライアントがポリシー本体を保持していない場合は、[DataTransferService.log] に管理ポイントの [SMS_MP] からの .sms_pol のダウンロードが記録されます。ダウンロード先は C:\Windows\CCM\Staging です。
1 | Added (source=.sms_pol?{01000003}-{<サイト コード>}.5_00,dest={01000003}-{<サイト コード>}.5.00.tmp) pair from manifest. |
Status : SUCCESS が、ポリシー本体のダウンロード成功を示します。
ダウンロードに失敗する場合は、次のように BITS のエラーと対象の .sms_pol が記録されます。次の例は、管理ポイントが一時的に過負荷 (HTTP status 503) となり、ダウンロードに失敗した状態です。
1 | DTSJob({7DB9C752-E223-4ECE-95D0-4185189E32A9}):CDTSJob::HandleDownloadError - BITS job {228679BF-9CB0-4448-9EBD-6DFCA021CED9} failed to download source file http://<管理ポイント>:80/SMS_MP/.sms_pol?%7B01000003%7D-%7B<サイト コード>%7D.5_00 to destination C:\Windows\CCM\Staging\{01000003}-{<サイト コード>}.5.00.tmp with error 0x801901F7 |
ステップ 5 : ポリシーをコンパイルして WMI へ格納する
コンパイルしたポリシーは、WMI の [\.\ROOT\ccm\policy\Machine\RequestedConfig] 名前空間へ格納されます。
[PolicyAgent.log] では、対象ポリシー ID と反映先の名前空間を確認できます。
Evaluating and applying policy 'CCM_Policy_Policy5.PolicyID="<ポリシー ID>",PolicyVersion="1.00",PolicySource="SMS:<サイト コード>"' to '\\.\ROOT\ccm\policy\Machine\RequestedConfig' Applying policy <ポリシー ID> [PolicyEval] Applied 1 policies successfully.
[PolicyEval] Applied 1 policies successfully. が、WMI への適用が成功したことを示します。
WMI 上のインスタンスの追加や変更は、[PolicyAgentProvider.log] に設定変更として記録されます。
1 | --- Processing 1 settings change(s). |
__InstanceCreationEvent は新規作成、__InstanceModificationEvent は変更を表し、Completed Indicating までが記録されていれば、当該変更の通知が完了しています。
ステップ 6 : 設定を評価して適用し、各コンポーネントへ通知する
最後に、クライアントは [RequestedConfig] の内容を評価し、実際に適用する [ActualConfig] を更新します。
[PolicyAgent.log] または [PolicyEvaluator.log] で、次の一連の記録を確認できます。
Updating settings for machine. Update flags 0x0 Updating policy instances for user 'S-1-5-18'. Total RequestedConfig policy instance(s) : 793 New/Changed ActualConfig policy instance(s) : 0 [PolicyUpdate] Updated namespace '\\.\ROOT\ccm\policy\machine\requestedconfig' successfully
Updating settings for machine および user 'S-1-5-18' は、マシン (Local System) を対象とした処理であることを示します。New/Changed ActualConfig policy instance(s) は、今回のサイクルで実際に変化した設定の数です。上記の例では 0 であり、受信した割り当ては既に適用済みで、実効的な変更がなかったことを示します。[PolicyUpdate] Updated namespace '...\machine\requestedconfig' successfully が、コンピューター ポリシーの評価と適用が正常に完了したことを示します。
[PolicyEvaluator.log] には、以降の定期的な評価が記録されます。
1 | Evaluating policy in \\.\ROOT\ccm\policy\machine\requestedconfig |
よく確認する失敗メッセージ
各ステップで処理が進まない場合は、次の記録を確認します。
- ステップ 2 - 3: [CcmMessaging.log] の
CCM_CcmHttp_StatusのHRESULTが0x00000000以外である。管理ポイントとの通信、名前解決、ファイアウォールを確認します。 - ステップ 4: [DataTransferService.log] に
CDTSJob::HandleDownloadErrorと BITS のエラー コードが記録される。上記の0x801901F7は HTTP status 503 (管理ポイントの一時的な過負荷) を示します。管理ポイントおよび IIS の正常性を確認します。 - ステップ 3: 常に
No new assignmentsとなり期待するポリシーを受信しない場合は、対象クライアントのコレクション所属、および展開や [クライアント設定] の対象範囲を確認します。