CCMSetup.exe によるクライアント インストールについての動作説明

Published: / Last update:
この記事の内容
  1. 全体の流れ
  2. 各ステップとログの追跡方法
    1. 関連ログ
    2. ステップ 1 : CCMSetup.exe の起動と設定の読み込み
    3. ステップ 2 : 配布ポイントの特定とマニフェストの確認
    4. ステップ 3 : 前提コンポーネントと必要なファイルの判定
    5. ステップ 4 : 必要なファイルのダウンロードと検証
    6. ステップ 5 : client.msi の起動
    7. ステップ 6 : クライアント コンポーネントの構成
    8. ステップ 7 : MSI と CCMSetup.exe の完了
  3. ログ確認のポイント
    1. 1 回の実行を開始行から終了行まで追跡する
    2. Failed やエラー コードの 1 行だけで失敗と判断しない
    3. 2 つのログを時刻で対応付ける
  4. 参考リンク

皆様、こんにちは。Configuration Manager / WSUS サポート チームです。

本記事では、Microsoft Configuration Manager の [CCMSetup.exe] を実行した後、インストール元の検索、必要なファイルのダウンロード、[client.msi] によるクライアント コンポーネントの構成、インストール完了に至るまでの流れを、実際のログに沿ってご案内します。

本記事の対象は、[CCMSetup.exe] によるクライアントのインストール処理です。[CCMSetup.exe] の起動方法ごとの差異、インストール後のクライアント登録、サイト割り当て、管理ポイントとの通信、およびポリシー取得は対象外です。また、必要となる前提コンポーネントやダウンロード対象は、OS、Configuration Manager のバージョン、クライアントの既存状態、およびサイトの構成によって異なります。

掲載するログは、2026 年 7 月 17 日 10:13:01 から 10:19:55 までに正常終了した 1 回の実行から抜粋しています。コンピューター名、FQDN、サイト コード、パッケージ ID など、実環境を特定できる情報は一貫したプレースホルダーへ置き換えています。一部の行は読みやすさのために省略しています。

全体の流れ

[CCMSetup.exe] はクライアント インストール全体を制御するブートストラップ プログラムです。必要なファイルを管理ポイントまたは指定されたソースから取得し、前提コンポーネントの要否を判定した後、Windows Installer パッケージである [client.msi] を呼び出します。[client.msi] を直接実行するインストール方法はサポートされません。

今回のログで確認できた処理は、次の順序です。

  1. [CCMSetup.exe] が起動し、実行環境とインストール設定を読み込む
  2. 管理ポイントへ問い合わせ、クライアント インストール コンテンツを持つ配布ポイントを特定し、マニフェストを確認する
  3. マニフェストに基づき、前提コンポーネントとクライアント ファイルの要否を判定する
  4. 必要なファイルを Background Intelligent Transfer Service (BITS) でダウンロードし、ハッシュと信頼性を検証する
  5. [client.msi] を起動する
  6. クライアントのファイル、レジストリ、コンポーネント、サービスなどを構成する
  7. 言語パックなどを構成し、[CCMSetup.exe] が戻り値 0 で終了する

各ステップとログの追跡方法

関連ログ

ログ名 既定の保存場所 主な用途
[ccmsetup.log] %windir%\ccmsetup\Logs\ccmsetup.log [CCMSetup.exe] の起動、インストール元の検索、ファイルのダウンロード、前提コンポーネントの判定、[client.msi] の起動、および最終結果を確認します。
[client.msi.log] %windir%\ccmsetup\Logs\client.msi.log [client.msi] が実行した Windows Installer の各アクションと結果を確認します。

[ccmsetup.log] には [client.msi.log] の出力先も記録されます。今回のログでは、次の行から 2 つのログを対応付けることができます。

1
MSI log file:     C:\WINDOWS\ccmsetup\Logs\client.msi.log

ステップ 1 : CCMSetup.exe の起動と設定の読み込み

[ccmsetup.log] のセッション開始行で、対象とする [CCMSetup.exe] の実行を特定します。同じログには過去のインストール、アップグレード、またはアンインストールが含まれる場合があるため、開始行から終了行までを 1 つの実行として追跡します。

今回のログでは、[CCMSetup.exe] が 64 ビット環境で起動し、サービスとして処理を継続しています。

1
2
3
4
5
==========[ ccmsetup started in process 8628 ]==========
Running on platform X64
Launch from folder C:\WINDOWS\ccmsetup\
CcmSetup version: 5.0.9141.1010
Ccmsetup command line: "C:\WINDOWS\ccmsetup\ccmsetup.exe" /runservice /ignoreskipupgrade /config:MobileClient.tcf

その後、[CCMSetup.exe] は構成ファイル、再試行間隔、[client.msi.log] の出力先、および [client.msi] へ渡すプロパティを確定します。今回の環境では、Active Directory Domain Services (AD DS) からサイト コードと管理ポイントの情報を取得しています。

1
2
3
4
The MP name retrieved is '<管理ポイントの FQDN>' with version '9141' and capabilities '<省略>'
MP '<管理ポイントの FQDN>' is compatible
FromAD: command line = SMSSITECODE=<サイト コード>
Found MP http://<管理ポイントの FQDN> from AD

管理ポイントの指定方法や探索方法は、[CCMSetup.exe] のコマンド ライン、AD DS へのサイト情報の発行状況、およびクライアントのネットワーク位置などによって異なります。このため、すべての環境で同じ行が記録されるわけではありません。

ステップ 2 : 配布ポイントの特定とマニフェストの確認

[CCMSetup.exe] は管理ポイントへコンテンツの場所を問い合わせ、クライアント インストール ファイルを取得する配布ポイントを選択します。配布ポイントの選択には、クライアントの境界グループとコンテンツの配置状況が使用されます。

1
2
3
4
5
Searching for DP locations from MP(s)...
Using DP location https://<配布ポイントの FQDN>/CCMTOKENAUTH_SMS_DP_SMSPKG$/<パッケージ ID>
Downloading 'https://<配布ポイントの FQDN>/CCMTOKENAUTH_SMS_DP_SMSPKG$/<パッケージ ID>/ccmsetup.cab' to 'C:\WINDOWS\ccmsetup\\ccmsetup.cab'
C:\WINDOWS\ccmsetup\ccmsetup.cab is Microsoft trusted.
Successfully extracted manifest file C:\WINDOWS\ccmsetup\ccmsetup.xml from file C:\WINDOWS\ccmsetup\ccmsetup.cab.

[ccmsetup.cab] から抽出したマニフェストには、クライアントのバージョン、対応するプラットフォーム、およびインストール候補となるファイルの情報が含まれます。今回のログでは、サイトとクライアント ソースのバージョンを確認した後、この配布ポイントを使用できると判定しています。

1
2
3
4
Site version '5.00.9141.1002' is compatible. Client deployment will continue.
Source version '5.00.9132.1011' matches with client baseline version '5.00.9132.1011'. Client deployment can use this source
Location 'https://<配布ポイントの FQDN>/CCMTOKENAUTH_SMS_DP_SMSPKG$/<パッケージ ID>' passed site version check.
Successfully loaded ccmsetup manifest file.

ステップ 3 : 前提コンポーネントと必要なファイルの判定

[CCMSetup.exe] は、マニフェストに基づいて OS のアーキテクチャに適用できる項目を調べ、既にインストールされている前提コンポーネントと、新たに取得する必要があるファイルを判定します。

今回のログでは、Microsoft Visual C++ 再頒布可能パッケージや [Microsoft Policy Platform] が既に検出されています。一方、64 ビット版の [client.msi] と [Windows Firewall Configuration Provider] は未インストールであるため、インストール待ちリストへ追加されています。

1
2
3
4
5
6
Detected item 'i386/vcredist_x86.exe' with platform 'ALL'
Detected item 'x64/vcredist_x64.exe' with platform 'X64'
Detected item 'x64/MicrosoftPolicyPlatformSetup.msi' with platform 'X64'
Item x64/WindowsFirewallConfigurationProvider.msi with applicable platform 'X64' has not been installed yet. Put to pending install list.
Item 'x64/client.msi' with platform 'X64' is applicable. Detecting whether it exists.
Item x64/client.msi with applicable platform 'X64' has not been installed yet. Put to pending install list.

前提コンポーネントが不足している場合は、そのコンポーネントもダウンロードおよびインストールの対象になります。したがって、実環境で表示される項目と処理時間は今回の例と異なる場合があります。

ステップ 4 : 必要なファイルのダウンロードと検証

[CCMSetup.exe] は、必要と判定したファイルを [BITS] ジョブへ追加します。今回の実行では、[client.msi]、[Windows Firewall Configuration Provider]、および言語パックがダウンロード対象です。

1
2
3
4
5
6
Adding file 'https://<配布ポイントの FQDN>:443/<省略>/x64/WindowsFirewallConfigurationProvider.msi' to BITS job, saving as 'C:\WINDOWS\ccmsetup\WindowsFirewallConfigurationProvider.msi'.
Adding file 'https://<配布ポイントの FQDN>:443/<省略>/x64/client.msi' to BITS job, saving as 'C:\WINDOWS\ccmsetup\client.msi'.
Adding file 'https://<配布ポイントの FQDN>:443/<省略>/x64/LanguagePack/CLP1041.CAB' to BITS job, saving as 'C:\WINDOWS\ccmsetup\CLP1041.CAB'.
Starting BITS download for client deployment files.
Successfully completed BITS download for client deployment files.
Successfully downloaded client files via BITS.

ダウンロード完了後、[CCMSetup.exe] は各ファイルのハッシュを検証します。続いて、インストールに使用する MSI ファイルが Microsoft によって信頼されたファイルであることを確認します。

1
2
3
4
Validated file 'C:\WINDOWS\ccmsetup\WindowsFirewallConfigurationProvider.msi' hash '<ハッシュ値>'
Validated file 'C:\WINDOWS\ccmsetup\client.msi' hash '<ハッシュ値>'
C:\WINDOWS\ccmsetup\WindowsFirewallConfigurationProvider.msi is Microsoft trusted.
C:\WINDOWS\ccmsetup\{<一時フォルダーの GUID>}\client.msi is Microsoft trusted.

ステップ 5 : client.msi の起動

必要なファイルの準備と検証が完了すると、[CCMSetup.exe] はインストールするクライアントのバージョンと MSI プロパティを確定し、[client.msi] を起動します。

1
2
3
4
5
6
Installing version 5.00.9132.1000 of the client with product code {<製品コード>}
Running installation package
Package: C:\WINDOWS\ccmsetup\{<一時フォルダーの GUID>}\client.msi
Log: C:\WINDOWS\ccmsetup\Logs\client.msi.log
Properties: <省略>
MSI: Action 10:14:27: INSTALL.

[client.msi.log] の先頭にも、呼び出し元が [CCMSetup.exe] であることが記録されています。この時刻は [ccmsetup.log] の MSI 起動時刻と連続しているため、同じインストール処理のログであることを確認できます。

1
=== Verbose logging started: 2026/07/17  10:14:24  Build type: SHIP UNICODE 5.00.10011.00  Calling process: C:\WINDOWS\ccmsetup\ccmsetup.exe ===

ステップ 6 : クライアント コンポーネントの構成

[client.msi.log] では、Windows Installer が実行する個々のアクションを確認できます。今回のログでは、ファイルとレジストリの配置、クライアント コンポーネントとサービスの登録、既定ポリシーとローカル データベースの初期化、サービスの開始、およびクライアント評価タスクの作成が順に行われています。

時刻 主なアクション ログから確認できる処理
10:14:43 [InstallFiles] クライアント ファイルを配置します。
10:14:45 [WriteRegistryValues] クライアントが使用するレジストリ値を書き込みます。
10:15:52 [CcmRegisterComponents] クライアント コンポーネントを登録します。
10:15:53 [InstallServices]、[CcmSetServiceConfig] サービスをインストールし、[CCMExec] サービスを構成します。
10:15:55 [CcmInitializePolicy] 既定ポリシーを初期化します。
10:15:55 [CcmBootstrapSqlCEDatabases] クライアントが使用するローカル データベースを作成します。
10:15:56 [StartServices]、[CcmStartService] サービスと [CCMExec] サービスを開始します。
10:15:57 [CcmCreateEvalTask] クライアントの正常性を評価するタスクを作成します。

たとえば、ファイルの配置と [CCMExec] サービスの開始は、次のように開始行と終了行を対にして確認できます。

1
2
3
4
5
Action start 10:14:43: InstallFiles.
Action ended 10:14:44: InstallFiles. Return value 1.
...
Action start 10:15:56: CcmStartService.
Action ended 10:15:56: CcmStartService. Return value 1.

途中のアクションだけでインストール全体の成否を判断せず、[INSTALL] アクションと Windows Installer の最終結果まで確認します。

ステップ 7 : MSI と CCMSetup.exe の完了

[client.msi.log] では、[INSTALL] アクションの完了後に、製品のインストール成功と Windows Installer の戻り値 0 が記録されています。

1
2
3
4
Action ended 10:19:44: INSTALL. Return value 1.
MSI (s) (44:04) [10:19:44:825]: Product: Configuration Manager Client -- Installation operation completed successfully.
MSI (s) (44:04) [10:19:46:962]: MainEngineThread is returning 0
MSI (c) (B4:C8) [10:19:47:304]: MainEngineThread is returning 0

同じ時刻帯の [ccmsetup.log] でも、[client.msi] の成功とクライアント状態ファイルの作成を確認できます。その後、今回の環境で必要な言語パックが構成されています。

1
2
3
File C:\WINDOWS\ccmsetup\{<一時フォルダーの GUID>}\client.msi installation succeeded.
C:\WINDOWS\CCM\clientstate.dat exists after client.msi run.
Successfully installed 'CLP1041.5.00.9132.1011'

最後に、[CCMSetup.exe] の終了行を確認します。Microsoft Learn の [CCMSetup.exe の戻りコード] では、戻り値 0 はセットアップの成功を示します。

1
CcmSetup is exiting with return code 0

この行は [CCMSetup.exe] によるクライアント インストールが成功したことを示しますが、クライアント登録、サイト割り当て、管理ポイントとの継続的な通信、ポリシー取得、および各クライアント エージェントの動作までを保証するものではありません。これらはインストール後の別の処理として、関連するクライアント ログで確認します。

ログ確認のポイント

1 回の実行を開始行から終了行まで追跡する

[ccmsetup.log] には複数回のインストール、アップグレード、アンインストールの記録が残る場合があります。次の開始行で対象セッションを特定し、同じセッションのコマンド ライン、ダウンロード、MSI 実行、および終了行を時刻順に追跡してください。

1
==========[ ccmsetup started in process <プロセス ID> ]==========

Failed やエラー コードの 1 行だけで失敗と判断しない

インストール中には、まだクライアントの WMI 名前空間が存在しないことによる記録や、別の通信方法へ切り替える前の失敗が記録される場合があります。今回のログにも途中で失敗を示す行がありましたが、その後に [BITS] ダウンロード、[client.msi]、および [CCMSetup.exe] がすべて成功しています。

一方、同じエラーが繰り返されて後続の成功行がなく、最終的に 0 以外の戻り値で終了している場合は、失敗した工程の直前から原因を確認します。単独の行ではなく、前後の処理と最終結果を合わせて判断することが重要です。

2 つのログを時刻で対応付ける

[ccmsetup.log] の [Running installation package] と [client.msi.log] 先頭の [Calling process] を確認すると、[CCMSetup.exe] から [client.msi] へ処理が移った時点を特定できます。[client.msi] の終了後は、再び [ccmsetup.log] で言語パックなどの後続処理と [CCMSetup.exe] の戻り値を確認します。

参考リンク