ソフトウェア更新プログラムのコンテンツのダウンロードについての動作説明

Published: / Last update:
この記事の内容
  1. 全体の流れ
    1. ConfigMgr コンソールから手動でダウンロードする場合
    2. 自動展開規則でダウンロードする場合
    3. 手動ダウンロードと自動展開規則のすみ分け
    4. 配布ポイントへのコンテンツ配置
  2. インターネット アクセス要件
  3. 各ステップとログの追跡方法
    1. 関連ログ
    2. ステップ 1 : サイトへの接続とダウンロード情報の取得 [PatchDownloader.log]
    3. ステップ 2 : インターネットへの接続とダウンロード [PatchDownloader.log]
    4. ステップ 3 : 信頼性とハッシュの検証 [PatchDownloader.log]
    5. ステップ 4 : パッケージ ソースへの格納 [PatchDownloader.log]
    6. ステップ 5 : 自動展開規則側でのダウンロード結果 [ruleengine.log、PatchDownloader.log]
    7. ステップ 6 : サイト サーバーでのパッケージ更新と転送ジョブの作成 [distmgr.log]
    8. ステップ 7 : 配布ポイントへのコンテンツ転送 [PkgXferMgr.log]
    9. ステップ 8 : 配布ポイントでの配置完了 [distmgr.log]
  4. 参考リンク

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

本記事では、Microsoft Configuration Manager (ConfigMgr) でソフトウェア更新プログラムのコンテンツをダウンロードしたときの動作を説明します。
対象は、管理者が ConfigMgr コンソールから手動でダウンロードする場合と、自動展開規則 [ADR] がコンテンツをダウンロードする場合です。
また、ダウンロード後に、コンテンツが配布ポイントへ配置されるまでの流れも説明します。
クライアントによるコンテンツの取得、ソフトウェア更新プログラムのインストール、および展開評価の動作は、本記事の対象外です。

全体の流れ

ソフトウェア更新プログラムのコンテンツは、概ね次の順序で処理されます。

  1. インターネット上またはネットワーク上のダウンロード元から、ソフトウェア更新プログラムのファイルを取得します。
  2. 取得したファイルの信頼性やハッシュを検証します。
  3. 検証済みのファイルを、展開パッケージのパッケージ ソースへ格納します。
  4. サイト サーバーのコンテンツ ライブラリへコンテンツを取り込みます。
  5. 展開パッケージに関連付けられた配布ポイントのコンテンツ ライブラリへコンテンツを転送します。

ConfigMgr コンソールから手動でダウンロードする場合

管理者が [ソフトウェア更新プログラムのダウンロード ウィザード] を完了すると、ウィザードを実行した ConfigMgr コンソール コンピューター上でダウンロード処理が開始されます。

ウィザードでは、次のいずれかのダウンロード元を選択します。

  • [インターネットからソフトウェア更新プログラムをダウンロードする]
  • [ネットワーク上の場所からソフトウェア更新プログラムをダウンロードする]

前者を選択した場合、ConfigMgr コンソール コンピューターが、更新プログラムのカタログ上に記録された [コンテンツ ソース] へ直接接続します。
後者は、ConfigMgr コンソール コンピューターからインターネットへ接続できない場合に、事前に別のコンピューターで取得したファイルをネットワーク上の場所から読み込む用途で使用できます。

また、コンテンツはユーザーの一時フォルダーへダウンロードしています。
その後、ファイルの信頼性とハッシュを検証し、展開パッケージのパッケージ ソースへ移動しています。

パッケージ ソースには、ConfigMgr コンソールで指定した UNC パスを使用します。ウィザードを実行する管理者ユーザーと SMS Provider のコンピューター アカウントの両方に、この場所への書き込み権限が必要です。

自動展開規則でダウンロードする場合

自動展開規則では、サイト サーバー上の [Rule Engine] が規則を評価し、対象となるソフトウェア更新プログラムのコンテンツをダウンロードします。

既定では、自動展開規則を作成したサイトのサイト サーバーの [Local System] アカウントが、インターネットへの接続とダウンロードを実行します。

自動展開規則でプロキシを使用する場合は、次の両方を確認します。

  1. [管理] - [サイトの構成] - [サーバーとサイト システムの役割] から、対象サイト システムの [プロキシ] を構成します。
  2. [ソフトウェアの更新ポイント] のプロパティにある [プロキシとアカウントの設定] で、[自動展開規則を使用してコンテンツをダウンロードするときにプロキシ サーバーを使用する] を有効にします。

手動ダウンロードと自動展開規則のすみ分け

手動ダウンロードと自動展開規則では、インターネットへ接続してコンテンツを取得するコンピューターと、使用するプロキシ設定が異なります。

項目 ConfigMgr コンソールからの手動ダウンロード 自動展開規則 [ADR]
開始方法 ConfigMgr コンソールの [ソフトウェア更新プログラムのダウンロード ウィザード] から開始します。 サイト サーバーの [Rule Engine] が規則のスケジュールまたは手動実行を処理します。
ダウンロードの実行場所 ウィザードを実行している ConfigMgr コンソール コンピューターです。 自動展開規則を作成したサイトのサイト サーバーです。
[PatchDownloader.log] の場所 ウィザードを実行したユーザーの [%TEMP%] 配下です。 サイト サーバーの ConfigMgr ログ フォルダーです。
インターネット アクセスが必要な場所 [インターネットからソフトウェア更新プログラムをダウンロードする] を選択した場合、ConfigMgr コンソール コンピューターからコンテンツの URL へアクセスできる必要があります。 サイト サーバーからコンテンツの URL へアクセスできる必要があります。
主なプロキシ設定 ConfigMgr コンソール コンピューター上で、ダウンロードを実行するプロセスが参照できるプロキシ設定を使用します。 [サイト システム] のプロキシ設定と、ソフトウェアの更新ポイントの [自動展開規則を使用してコンテンツをダウンロードするときにプロキシ サーバーを使用する] の設定を使用します。
既定の実行コンテキスト ウィザードを実行した管理者ユーザーです。 自動展開規則を作成したサイトのサイト サーバーの [Local System] アカウントです。必要に応じて [サイト システム プロキシ サーバー アカウント] を構成します。
パッケージ ソースへの書き込み ウィザードを実行した管理者ユーザーに書き込み権限が必要です。 サイト サーバー側の処理でパッケージ ソースへ格納します。

重要な点は、ソフトウェアの更新ポイントに構成した [自動展開規則用のプロキシ] は、ConfigMgr コンソールから手動で実行したダウンロードには適用されないことです。
手動ダウンロードに失敗する場合は ConfigMgr コンソール コンピューター側、自動展開規則に失敗する場合はサイト サーバーおよびサイト システム側のネットワークとプロキシを確認します。

配布ポイントへのコンテンツ配置

[PatchDownloader.log] でパッケージ ソースへの格納が完了した後、ConfigMgr は次の処理を行います。

  1. [Distribution Manager] がパッケージ ソースの変更を検出し、展開パッケージをサイト サーバーのコンテンツ ライブラリへ取り込みます。
  2. [Distribution Manager] が、対象の配布ポイントごとにパッケージ転送ジョブを作成します。
  3. [Package Transfer Manager] がコンテンツを配布ポイントへ転送します。
  4. 配布ポイント側の処理結果がサイト サーバーへ返され、[Distribution Manager] がパッケージの配布状態を更新します。

この処理は、インターネットから更新ファイルを取得する処理とは別です。
配布ポイントは通常、展開パッケージのコンテンツをサイト サーバー側から受信します。

インターネット アクセス要件

インターネットからコンテンツをダウンロードするコンピューターは、次の公開情報に記載のインターネット アクセス要件を許可する必要があります。

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

関連ログ

ログ名 保存場所 主な用途
[PatchDownloader.log] 手動ダウンロードでは ConfigMgr コンソールを実行したユーザーの [%TEMP%]、自動展開規則ではサイト サーバーの ConfigMgr ログ フォルダー ダウンロード元、ダウンロード先、一時ファイル、進捗、プロキシ使用、信頼性検証、ハッシュ検証、パッケージ ソースへの格納を確認します。
[ruleengine.log] サイト サーバー 自動展開規則の評価、ダウンロード ソースの選択、各 ContentID のダウンロード結果を確認します。
[distmgr.log] サイト サーバー パッケージの作成または更新、コンテンツ ライブラリへの取り込み、配布ポイント向け転送ジョブの作成、配布状態を確認します。
[PkgXferMgr.log] サイト サーバー 配布ポイントへの実際のコンテンツ転送を確認します。

ステップ 1 : サイトへの接続とダウンロード情報の取得 [PatchDownloader.log]

手動ダウンロードでは、最初に ConfigMgr コンソール コンピューターからサイト サーバーの WMI 名前空間へ接続します。
その後、パッケージ ソース上のダウンロード先とインターネット上の [コンテンツ ソース] を取得します。

1
2
3
4
5
6
Trying to connect to the root\SMS namespace on the <SiteServer> machine.
Connected to \\<SiteServer>\root\SMS
Trying to connect to the \\<SiteServer>\root\sms\site_<SiteCode> namespace
Connected to \\<SiteServer>\root\sms\site_<SiteCode>
Download destination = \\<PackageSource>\<TemporaryFolder>\<FileName>
Contentsource = http://dl.delivery.mp.microsoft.com/.../<FileName>

ステップ 2 : インターネットへの接続とダウンロード [PatchDownloader.log]

次の例では、プロキシが有効であり、レジストリ設定または既定値を使用してダウンロードを開始しています。[in progress] の値により、ファイル単位の進捗を確認できます。

1
2
3
4
5
6
7
Downloading content for ContentID = 16845509, FileName = <FileName>.
Proxy is enabled for download, using registry settings or defaults.
Connecting - Adding file range by calling HttpAddRequestHeaders, range string = "Range: bytes=0-"
Download file size : 2702463309 bytes
Download http://dl.delivery.mp.microsoft.com/... in progress: 10 percent complete
Download http://dl.delivery.mp.microsoft.com/... in progress: 90 percent complete
Download http://dl.delivery.mp.microsoft.com/... to C:\Users\<User>\AppData\Local\Temp\<Session>\<TempFile> returns 0

[returns 0] は、対象ファイルの一時フォルダーへのダウンロードが成功したことを示します。
この記録がなく、HTTP エラーや WinHTTP / WinINET のエラーが記録されている場合は、ConfigMgr コンソール コンピューターまたはサイト サーバーの名前解決、ファイアウォール、プロキシ、およびプロキシ認証を確認します。

ステップ 3 : 信頼性とハッシュの検証 [PatchDownloader.log]

ダウンロードが完了すると、一時ファイルの信頼性とハッシュが検証されます。

1
2
3
4
Verifying file trust C:\Users\<User>\AppData\Local\Temp\<Session>\<TempFile>
File trust C:\Users\<User>\AppData\Local\Temp\<Session>\<TempFile> verified:
Verifying file hash C:\Users\<User>\AppData\Local\Temp\<Session>\<TempFile>
File hash verified: C:\Users\<User>\AppData\Local\Temp\<Session>\<TempFile>

[File trust … verified] と [File hash verified] の両方が記録されていれば、対象ファイルの検証は完了しています。
ここで失敗する場合は、一時ファイルの破損、セキュリティ製品による変更、証明書の信頼関係、またはパッケージ ソースへ移動する前のファイル操作を確認します。

ステップ 4 : パッケージ ソースへの格納 [PatchDownloader.log]

検証済みファイルは、指定したパッケージ ソースへ移動されます。すべての対象ファイルを格納した後、一時的なフォルダー名から正式なフォルダー名へ変更されます。

1
2
3
Successfully moved C:\Users\<User>\AppData\Local\Temp\<Session>\<TempFile> to \\<PackageSource>\<TemporaryFolder>\<FileName>
Renaming \\<PackageSource>\<PackageFolder>.1 to \\<PackageSource>\<PackageFolder>
Successfully moved \\<PackageSource>\<PackageFolder>.1 to \\<PackageSource>\<PackageFolder>

最後の [Successfully moved] まで記録されていれば、[PatchDownloader] によるパッケージ ソースへの格納は完了しています。
ここで失敗する場合は、ウィザードを実行した管理者ユーザーと SMS Provider のコンピューター アカウントの共有アクセス権および NTFS アクセス権、空き容量、ファイル ロックを確認します。

ステップ 5 : 自動展開規則側でのダウンロード結果 [ruleengine.log、PatchDownloader.log]

自動展開規則の場合は、[ruleengine.log] で規則の処理とダウンロード結果を確認します。

1
2
3
CRuleHandler: Processing Rule with ID:3, Name:<ADRName>.
Download Rule Action XML is: ... <Source Name="Internet" Order="1"/> ...
Successfully downloaded the update content with ID 16845862 from internet.

[Processing Rule] で対象規則の開始、[Source Name] でダウンロード元と優先順位、[Successfully downloaded] で ContentID 単位の成功を確認できます。
ファイル単位の URL、進捗、検証、パッケージ ソースへの移動は、同じ時間帯のサイト サーバー側 [PatchDownloader.log] で確認します。

ステップ 6 : サイト サーバーでのパッケージ更新と転送ジョブの作成 [distmgr.log]

[distmgr.log] では、パッケージ ソースの変更検出、パッケージの更新、および配布ポイント向け転送ジョブの作成を確認します。

1
2
3
4
5
The source for package PS100018 has changed or the package source needs to be refreshed
Adding these contents to the package PS100018 version 171.
Successfully created/updated the package PS100018
Start updating package PS100018 on server <DistributionPoint>
Created package transfer job to send package PS100018 to distribution point <DistributionPoint>.

[Successfully created/updated the package] まで記録されていれば、サイト側でのパッケージ更新が完了しています。
[Created package transfer job] まで記録されていれば、対象配布ポイント向けの転送処理が [Package Transfer Manager] に引き渡されています。

ステップ 7 : 配布ポイントへのコンテンツ転送 [PkgXferMgr.log]

[PkgXferMgr.log] では、パッケージ ID、コンテンツ ID、および配布ポイント上の転送先を確認します。

1
2
3
4
Sending content 252ad9d5-8bcb-4805-8f20-5a7639da8140 for package PS100018
Sending file '\\<DistributionPoint>\SMS_DP$\<ContentID>.<PackageID>.temp'
Adding <UpdateFileName> file in 252ad9d5-8bcb-4805-8f20-5a7639da8140.
Successfully send state change notification <NotificationID>

[Sending content] が記録されていれば、対象コンテンツの転送が開始されています。
[Adding … file] では、転送対象に含まれるファイルを確認できます。

ステップ 8 : 配布ポイントでの配置完了 [distmgr.log]

配布ポイントから状態が返されると、[distmgr.log] にパッケージ サーバー状態の更新が記録されます。今回の保存ログでは、処理中の [Status 0] の後に [Status 3] が記録されています。

1
2
3
4
5
6
Processing status update for package PS100018
Successfully updated the package server status for <DistributionPoint> for package PS100018, Status 0
...
Processing status update for package PS100018
Successfully updated the package server status for <DistributionPoint> for package PS100018, Status 3
STATMSG: ID=2330 SEV=I ... ISTR0="PS100018" ISTR1="<DistributionPoint>"

[Status 3] と状態メッセージ ID [2330] が記録されていれば、対象配布ポイントでパッケージの配置が完了したことを確認できます。
ConfigMgr コンソールでは、[監視] - [配布ステータス] - [コンテンツのステータス] から、対象の展開パッケージと配布ポイントの状態をあわせて確認してください。

参考リンク