2022年11月23日水曜日

差分ダウンロードのログ解析調査

下記の公開情報にある通り、ダウンロード時にはWindowsUpdateAgent を利用してダウンロードを行う。
また、配信の最適化も有効にしておく必要がある。今回はダウンロードモードを「LAN」で検証している。


**************************
以下、検証環境の設定一覧
**************************
・利用バージョン
CB 2207

・クライアント設定

・WSUS の設定(代替ダウンロードサーバー)

・配信の最適化

**************************
以下はインストール開始時のログ(DeltaDownload.log は流れて採取できなかった)
**************************
ContentTransferManager.log
---------------------------------------------
11-22-2022 20:58:25.281    ContentTransferManager    5672 (0x1628)    CTMJob({0CFC7586-6924-4427-A61F-D80B65F7AE68}): CCTMJob::ProcessDownloadSuccess - successfully processed download completion.
11-22-2022 21:04:50.162    ContentTransferManager    4852 (0x12f4)    This client will report download history every 1440 min.
11-22-2022 21:05:06.115    ContentTransferManager    4320 (0x10e0)    CTM_StartJob - Starting CTM job {139F183F-7F56-4F21-ACD3-184A1C486746}
11-22-2022 21:05:06.147    ContentTransferManager    4320 (0x10e0)    Created CTM job {139F183F-7F56-4F21-ACD3-184A1C486746} for user S-1-5-18
CMBITSManager.log
---------------------------------------------
11-22-2022 20:58:25.289    CMBITSManager    5808 (0x16b0)    For CMBITS job {D18A6008-66DB-442C-8F92-A04CFA1DA15A}, CTM job {0CFC7586-6924-4427-A61F-D80B65F7AE68} entered phase CCM_DOWNLOADSTATUS_DOWNLOAD_SUCCESSFUL
11-22-2022 21:04:50.162    CMBITSManager    3452 (0xd7c)    Loaded persisted job with ID {D18A6008-66DB-442C-8F92-A04CFA1DA15A}, DisplayName Express Job  for content 7ca4f9b0-d72c-4974-9f24-183150df320f.1, on startup
11-22-2022 21:04:50.162    CMBITSManager    3452 (0xd7c)    CCMBITSManagerStartup::FinalRelease()
11-22-2022 21:05:05.959    CMBITSManager    4320 (0x10e0)    Added CMBITS job with ID:{4485462C-66C3-429B-A5C1-5BB976DAC373}, DisplayName:Express Job
11-22-2022 21:05:05.959    CMBITSManager    4320 (0x10e0)    Download manifest for the job 


**************************
ダウンロード中のログ
**************************
ContentTransferManager.log(配信の最適化(DO)を利用して、配布ポイントからコンテンツをダウンロードしている)
---------------------------------------------
11-22-2022 21:17:28.741    ContentTransferManager    4320 (0x10e0)    Created CTM job {792F9C7D-BDF4-4780-86FE-A052CD3AA690} for user S-1-5-18
11-22-2022 21:17:28.944    ContentTransferManager    3372 (0xd2c)    CTMJob({792F9C7D-BDF4-4780-86FE-A052CD3AA690}): CCTMJob::_PersistLocations - Persisted locations 
	(SUBNET) http://mpdp.gibson.com/SMS_DP_SMSPKG$/7ca4f9b0-d72c-4974-9f24-183150df320f
	(SUBNET) https://mpdp.gibson.com/CCMTOKENAUTH_SMS_DP_SMSPKG$/7ca4f9b0-d72c-4974-9f24-183150df320f
11-22-2022 21:17:28.959    ContentTransferManager    3372 (0xd2c)    CTMJob({792F9C7D-BDF4-4780-86FE-A052CD3AA690}): CCTMJob::_DownloadContent - Created corresponding DTSJob({624860B5-17D8-45D3-A644-EDC5B6718521})
11-22-2022 21:17:28.959    ContentTransferManager    3372 (0xd2c)    CTMJob({792F9C7D-BDF4-4780-86FE-A052CD3AA690}): CCTMJob::_DownloadContent - DTSJob({624860B5-17D8-45D3-A644-EDC5B6718521}) started to download from 'http://mpdp.gibson.com/SMS_DP_SMSPKG$/7ca4f9b0-d72c-4974-9f24-183150df320f' for full content download.
11-22-2022 21:17:28.959    ContentTransferManager    4788 (0x12b4)    CTMJob({792F9C7D-BDF4-4780-86FE-A052CD3AA690}): CCTMJob::ProcessProgress - entered phase CCM_DOWNLOADSTATUS_PREPARING_DOWNLOAD
11-22-2022 21:17:28.991    ContentTransferManager    3540 (0xdd4)    CTMJob({792F9C7D-BDF4-4780-86FE-A052CD3AA690}): CCTMJob::ProcessProgress - entered phase CCM_DOWNLOADSTATUS_DOWNLOADING_DATA
11-22-2022 21:17:29.413    ContentTransferManager    3540 (0xdd4)    CTMJob({792F9C7D-BDF4-4780-86FE-A052CD3AA690}): CCTMJob::ProcessDownloadSuccess - successfully processed download completion.
11-22-2022 21:24:50.231    ContentTransferManager    3540 (0xdd4)    CTMAggregateDownloadHistoryTask::HandleDownloadHistory: preparing to aggregate and send download history to server.
CMBITSManager.log
---------------------------------------------
11-22-2022 21:17:29.475    CMBITSManager    3540 (0xdd4)    CCMBITSManager::NotifyDownloadComplete
11-22-2022 21:17:29.475    CMBITSManager    3540 (0xdd4)    For CMBITS job {C7CE0550-B5BE-4EA6-8F25-48E9F1413632}, CTM job {792F9C7D-BDF4-4780-86FE-A052CD3AA690} entered phase CCM_DOWNLOADSTATUS_DOWNLOAD_SUCCESSFUL
11-22-2022 21:46:45.760    CMBITSManager    2756 (0xac4)    Loaded persisted job with ID {D18A6008-66DB-442C-8F92-A04CFA1DA15A}, DisplayName Express Job  for content 7ca4f9b0-d72c-4974-9f24-183150df320f.1, on startup

差分コンテンツダウンロードは BITS ではなく、DO で実現しているので、BITS Explorer に表示されない。
ただし、CMBITS job は、BITS Explorer に表示される前の CM 内で生成される Job のようなので、ログには「Express Job」記録される。
CMBITSManager.log
---------------------------------------------
11-22-2022 21:05:05.959    CMBITSManager    4320 (0x10e0)    Added CMBITS job with ID:{4485462C-66C3-429B-A5C1-5BB976DAC373}, DisplayName:Express Job
11-22-2022 21:05:05.959    CMBITSManager    4320 (0x10e0)    Download manifest for the job 


**************************
ダウンロード完了のログ
**************************
DeltaDownload.log
---------------------------------------------
11-22-2022 21:17:28.694    DeltaDownload    4320 (0x10e0)    CDeltaBitsManager::ProcessRanges - batched 1048576 bytes
11-22-2022 21:17:33.756    DeltaDownload    4320 (0x10e0)    Bytes Transferred: 1048576
11-22-2022 21:17:33.756    DeltaDownload    4320 (0x10e0)    CDeltaBitsManager::DownloadRanges - updated m_workingJobMap for request -720575938231795590, BGJobState = 6
11-22-2022 21:46:47.198    DeltaDownload    3788 (0xecc)    ===========================================================

2022年4月14日木曜日

Configuration Manager で配布ポイントを構築する場合の確認点

 下記の公開情報の前提となる役割が追加されていること

サイトの前提条件 - Configuration Manager | Microsoft Docs

リモート差分圧縮(RDC)

DP の IIS 構成

アプリケーション開発:

ISAPI 拡張機能

セキュリティ:
Windows 認証

IIS 6 管理互換性:
IIS 6 メタベース互換
IIS 6 WMI 互換

ネットワーク的に接続できない場合も構築できないので、DNS で配布ポイントの名前解決ができないといけません。

AD サーバーのDNS の設定も確認しましょう。以前、原因は不明ですがドメイン参加しているのにDNS のA レコードにDP の IP Address が登録されずにハマったことがあります。

プライマリサイトサーバーからping やnslookup で疎通できるか確認しておきましょう。

また、プライマリサイトサーバーと配布ポイントに、互いのコンピューターアカウントを[Administrator]グループに追加しておきましょう。

以下は配布ポイント側でプライマリサイトサーバーCM のコンピューターアカウントを追加している様子です。プライマリサイトサーバー側にも忘れずDP 側のコンピューターアカウントを追加しましょう。

プライマリサイトサーバー側では、SQL Server Management Studio を開いて、Login アカウントに、DP のコンピューターアカウントを追加しましょう。これはアカウント参照ができないので、直接指定しないと追加できません。

リモートレジストリサービスも起動しているかチェックしておきましょう。

もし、WMI に問題がありそうな場合は、以下のファイルがプライマリサイトサーバーにありますので、こちらを配布ポイントまで持っていってください。

C:\Program Files\Microsoft Configuration Manager\bin\X64\smsdpprov.mof

配布ポイントに持っていったら、管理者権限でコマンドプロンプトを開いていただき、下記のコマンドを実行してみましょう。

mofcomp smsdpprov.mof

WMIExplorer で確認すると、下記のWMI が生成されていることが確認できます。

こちらが作成されていることを確認して、プライマリサイトサーバーから、配布ポイントの役割を削除後、再度追加してみましょう。

また、WMI 空間にプライマリサイトサーバーからリモートでアクセスできるかどうかも確認できますので、こちらも確認しておきましょう。

2022年4月8日金曜日

Configuration Manager で、SQL Server Reporting Services を追加する方法

SQL Server 2017 以降から、Reporting Services が SQL Server セットアップ時に選択ができなくなりました。

以下の画面でいうところの黄色い箇所になります。


そのため、Configuration Manager を利用する場合に、SQL Server 2017 以降を利用する場合は、別途、Reporting Services をインストールする必要があります。

まずは、以下のリンクから、SQL Server 2019 Reporting Services をダウンロードしましょう。


ダウンロードした「SQLServerReportingServices.exe」を実行して、上記公開情報にある通り、下記の箇所を参考にインストールを進めます。

こちらの手順を終えたら、下記を参考にして、レポートサーバーデータベースを作成します。



レポートサーバーデータベースが作成されると、SSMS より、下記のデータベースが作成されていることが確認できます。

ここまで来ましたら、次はローカルのレポートサーバーデータベースを作成します。これは、具体的には、下記にある通り、Reporting Services を利用して、データベースの変更をします。


上記手順にあるデータベースの変更は、具体的には以下から実行します。




こちらの処理が完了したら、Web Service URL を構成します。
Apply ボタン押すだけですが、以外と気づかないので、忘れずに実行しましょう。

ここまでの作業が完了したら、ReportingServer への接続を確認しましょう。


接続が完了したら、MECM 管理コンソールから、レポートサービスポイントの役割を追加しましょう。
役割を追加する際、上記の手順でレポート機能の準備ができていれば、下記の黄色の箇所にSSRS が選択できるようになります。これでレポート機能を使えるようになります。

ccmcache をパッケージ展開を利用してスクリプトでコンテンツを削除

 ccmcache の最大キャッシュサイズについては、クライアント設定から設定が可能です。


ただし、ソフトウェア更新プログラムについては、こちらの最大キャッシュサイズの制限は効かない動作となっております。
そのため、機能更新プログラムを配信すると、すぐにキャッシュサイズが大きくなる場合があります。
そのような場合、クライアント側であれば、クライアントコンソールから下記のボタンより、ccmcache をクリアすることが可能です。
しかし、サーバー側から直接削除するための指示というのは、標準機能では存在しません。
そのため、このクライアント側の容量をサーバー側からなんとかしたい、ということを管理者は考えます。
その場合、ccmcache のフォルダーを直接削除するスクリプトを配布するのはNG です。
ccmcache フォルダーはWMI 空間で管理されているので、下記のPowerShell コマンドから削除しないといけません。
$UIResourceMgr = New-Object -Com "UIResource.UIResourceMgr"
$Cache = $UIResourceMgr.GetCacheInfo()
$Cache.GetCacheElements() | % {$Cache.DeleteCacheElement($_.CacheElementID)}

あとは、こちらを test.ps1 などのファイルにして、パッケージ展開をするだけです。
パッケージ展開で気をつけるところは、PowerShell コマンドの実行には、下記のようにコマンドを指定しないとうまく動きません。

powershell.exe -ExecutionPolicy Bypass -NoLogo -NonInteractive -NoProfile -WindowStyle Hidden -File test.ps1

こちらのコマンドは、以下の画面の [コマンド ライン] へ入力します。

こちらのパッケージを作成したら、今度は対象のコレクションへ配信するために展開を作成します。

ここでも注意が必要です。下記のように、配布ポイントの展開オプションで [配布ポイントからプログラムを実行する] を選択する必要があります。

こちらの展開オプションを選択しない場合、クライアントはローカルにスクリプトをダウンロードして実行してしまうため、以下のエラーが execmgr.log に記録されます。

CacheManager: Cache is in Use. DeleteCacheItem cannot proceed.
CacheManager.DeleteCacheItem failed with 0x87d01203

エラーコード:0x87d01203 は、今回のシナリオでは、削除対象のコンテンツがダウンロード中であったり、実行中である場合に記録されるものとなるため、ローカルにスクリプトをダウンロードして実行すると、こちらのエラーが発生します。

そのため、上記の配布ポイントの展開オプションは必須となりますが、こちらは SMB プロトコルで通信をしますので、ポート445 が開放していない環境では利用できませんので、ご注意ください。

2022年2月5日土曜日

ソフトウェア更新ポイント、及びWSUS のSSL 化について

ソフトウェア更新ポイント、及びWSUS のSSL 化についてですが、まずその目的を理解する必要があります。

ここでは簡単のため、主にWSUS サーバーにフォーカスして説明いたします。

WSUS はスタンドアロン構成とリモート構成の2パターンが主にあります。

この内、リモート構成の場合にSSL 化の検討が必要となるかと思います。

これはリモート構成の場合、2拠点間のWSUS の同期時にデータを暗号化するかどうか、という点を検討する必要があるからとなります。

また、クライアントとサーバー間でのデータのやり取りについても同様のことが言えます。

また、WSUS は公開情報にもある通り、メタデータ(WSUS コンソールに表示される情報のデータとお考えください)については、暗号化の対象となりますが、更新プログラムのコンテンツファイル自体は、暗号化の対象となりません。

WSUS をSSL 化する場合、より具体的にはサーバー証明書を導入する場合は、このサーバー証明書を利用して、WSUS はコンテンツファイルに署名をします。(より具体的にいうと、WSUS サーバーは秘密鍵を使ってファイルを署名し、クライアントは公開鍵によってそのファイルの正当性を検証できるようにします)

これに加え、更新プログラムのファイルハッシュを生成し、そのデータをクライアントに送り、クライアントはダウンロードした更新プログラムのファイルハッシュを生成して、サーバーから送られてきたファイルハッシュを比較し、同一であれば、その更新プログラムは正しいものと判断し、更新プログラムのインストールを開始します。

つまり、WSUS をSSL 化することにより、クライアントが更新プログラムをWSUS のサーバー証明書を利用することで検証することができるようになります。

これらの手順について、以下に簡単にまとめました。

基本的には、公開情報にある以下のリンクを見れば導入が可能となりますが、その中であまり具体的に案内がない箇所にフォーカスして手順を記載してありますので、ご参考いただければと思います。

手順 2 - WSUS を構成する | Microsoft Docs


また、WSUS のSSL 化は、Configuration Manager のソフトウェア更新ポイントをTLS/SSL を利用するように構成する手順の一部でもありますので、今回は、下記の公開情報も参考にして、WSUS のSSL 化からソフトウェア更新ポイントのTLS/SSL 化までを試してみたいと思います。

PKI 証明書チュートリアルで TLS/SSL を使用するソフトウェア更新ポイントを構成する - Configuration Manager | Microsoft Docs


しかしながら、上記のWSUS をSSL 化する公開情報で、大前提となる証明書テンプレートの生成方法から、導入までの手順が、かなり分かりづらいものとなっておりますので、下記では、その手順を画面付きで記載してありますので、ご参考にしていただければと思います。


事前準備:ドメインコントローラー上でのサーバー証明書の作成


■概要

ここでは、WSUS サーバーが所属しているドメインのドメインコントローラー上で証明書テンプレートを利用して、証明書を生成する手順を示します。


■手順

1-1) [サーバーマネージャー] > [ツール] > [証明機関] (*1)をクリックします。

*1) 証明機関はデフォルトで役割が存在しないので、役割の追加をしてください。

1-2) [certsrv] で、[証明書テンプレート] を右クリックし、[管理] をクリックします。


1-3) [証明書テンプレート コンソール] 画面で、[Web サーバー] を右クリックし、[テンプレートの複製] をクリックします。


1-4) [新しいテンプレートのプロパティ] の[全般] タブにある、[テンプレートの表示名] に、[WSUS-SUP] と入力します。


1-5) [新しいテンプレートのプロパティ] 画面で、[要求処理] タブをクリックし、[秘密キーのエクスポートを許可する] をクリックします。


1-6) [新しいテンプレートのプロパティ] で、[セキュリティ] タブをクリックし、[Enterprise Admins] グループをクリックして、登録のアクセス許可を外します。



1-7) [新しいテンプレートのプロパティ] で、[追加] をクリックします。

1-8) [ユーザー、コンピューター、サービス アカウントまたはグループの選択] で、[オブジェクトの種類] から[コンピューター] にチェックをつけてOK を押します。



1-9) [ユーザー、コンピューター、サービス アカウントまたはグループの選択] に戻り、WSUS のサーバー名を指定して、[名前の確認] を押し、CM サーバー、もしくはWSUS サーバーが指定できたら、OK を押します。



1-10) [新しいテンプレートのプロパティ] で、1-9) で指定したWSUS サーバーを選択し、[アクセス許可] で、[登録] にチェックを入れてOK を押します。


1-11) [証明書テンプレート  コンソール] で、[WSUS-SUP] テンプレートが追加されたことを確認し、画面を閉じます。


1-12) [certsrv] で、[証明書テンプレート] を右クリックし、[新規作成] > [発行する証明書テンプレート] をクリックします。


1-13) [証明書テンプレートの選択] 画面で、[WSUS-SUP] を選択します。


1-14) [certsrv] で、[WSUS-SUP] が追加されたことを確認します。


事前準備はここまでとなります。
ここまで準備ができれば、後は下記の公開情報の通りに手順を踏めば、WSUS のSSL 化ができます。

PKI 証明書チュートリアルで TLS/SSL を使用するソフトウェア更新ポイントを構成する - Configuration Manager | Microsoft Docs

作成したテンプレートを利用して証明書要求をサーバーからドメインコントローラーに対して行い、IIS に証明書をバインドする手順となります。
確認方法として、MECM のログを確認することになりますが、問題なく確認できるかと思います。

2022年1月23日日曜日

2022年1月の帯域外リリース for Windows Server OS

1月にリリースされている累積的な更新プログラムについてですが、色々な問題が含まれている状況となっております。
また、1月以前にもいくつか問題を含んだ更新プログラムがリリースされており、中にはサーバーOS で勝手に再起動が動作してしまうような致命的なものが含まれていたりします。

そのため、こちらではどの更新プログラムで問題が混入し、どの更新プログラムでその問題が解消できるのかという内容をまとめてみましたので、ご参考にしてみてください。

※WSUS から配信したい場合はすべてWSUS に手動インポートする必要があります。

もし、WSUS Import がうまく行かない場合は、以下のリンク先をご確認ください。


該当 OS 原因となる更新プログラム 対策となる更新プログラム 解消される事象(代表的なもの) 公開情報
Windows Server 2019 KB5008218 KB5010196 リモート デスクトップを使用してサーバーにアクセスできない場合があります。 最終的に、サーバーが応答を停止する可能性があります。 さらに、黒い画面が表示され、サインインと一般的なパフォーマンスが低下する https://support.microsoft.com/ja-jp/topic/2021-%E5%B9%B4-12-%E6%9C%88-14-%E6%97%A5-kb5008218-os-%E3%83%93%E3%83%AB%E3%83%89-17763-2366-0d9c500d-6e71-4cb4-99e2-416655622769
Windows Server 2019 KB5009557 KB5010791 Windows Server が予期せず再起動 / ベンダー ID を含む IP セキュリティ (IPSEC) 接続が失敗(VPN 接続不可) https://support.microsoft.com/ja-jp/topic/january-18-2022-kb5010791-os-build-17763-2458-out-of-band-43697313-d8e0-4918-b6df-7f64d4d9a8cd
Windows Server 2016 KB5008207 KB5010195 リモート デスクトップを使用してサーバーにアクセスできない場合があります。 最終的に、サーバーが応答を停止する可能性があります。 さらに、黒い画面が表示され、サインインと一般的なパフォーマンスが低下する https://support.microsoft.com/ja-jp/topic/2021-年-12-月-14-日-kb5008207-os-ビルド-14393-4825-35421e45-96b3-4585-9faa-02576d813e7a
Windows Server 2016 KB5009546 KB5010790 予期せず再起動 / ベンダー ID を含む IP セキュリティ (IPSEC) 接続が失敗(VPN 接続不可) https://support.microsoft.com/ja-jp/topic/2022-%E5%B9%B4-1-%E6%9C%88-11-%E6%97%A5-kb5009546-os-%E3%83%93%E3%83%AB%E3%83%89-14393-4886-0c2cac57-13b6-42e6-b318-41ca32428f91
Windows Server 2012 KB5008285 KB5010215 Windows Server 2012が停止する可能性があります。 さらに、黒い画面、サインインの遅さ、または時間の一般的な遅さが発生して、最終的にサーバーが応答を停止 https://support.microsoft.com/ja-jp/topic/2021-年-12-月-14-日-kb5008285-セキュリティ専用更新プログラム-5c1ac43e-ddd4-48d9-a3af-68d03968080f
Windows Server 2012 KB5009595 KB5010794 サーバーが予期せず再起動 https://support.microsoft.com/ja-jp/topic/kb5010794-windows-8-1-%E3%81%8A%E3%82%88%E3%81%B3-r2-windows-server-2012%E3%81%AE%E5%B8%AF%E5%9F%9F%E5%A4%96%E6%9B%B4%E6%96%B0-2022-%E5%B9%B4-1-%E6%9C%88-17-%E6%97%A5-a92500fb-f227-400e-b70e-f7dd50386fd3
Windows Server 2012 KB5009619 KB5010797 Windows Server が予期せず再起動 https://support.microsoft.com/ja-jp/topic/kb5010797-windows-server-2012-2022-%E5%B9%B4-1-%E6%9C%88-17-%E6%97%A5-1f14f497-8404-404d-8d78-0c962c9e486d

Windows Server 2012R2 からWindows Server 2016、2019 へのインプレースアップグレードとWSUS の移行について

Windows Server 上でWSUS サーバー以外の機能を追加して運用している場合、そちらの機能を継続して運用するために、Windows Server のアップグレードが必要になる可能性があります。


その場合、WSUS の役割が追加されている場合、WSUS サーバーをインプレースアップグレードできるかどうかに焦点が当たることとなります。


結論としましては、インプレースアップグレードする場合は、WSUS の役割を一旦削除してからインプレースアップグレードを実施し、アップグレード後に再度WSUS の役割を追加することをお勧めします。

私が調べたところ、WSUS の役割を入れたままでインプレースアップグレードをすると、管理コンソールが開かなかったり、再度インストールしても、IIS にある「WSUS の管理」という項目が残っていると、インストール直後の後処理に失敗するとのことであったため、改めて新規にWSUS をセットアップしてデータベースを移行する方が、設定抜けに気づかないといったことがないと思いますので、おすすめです。


では、どのようにしてWSUS の移行を実行するかというと、WSUS のデータベースをでタッチ後、バックアップして、インプレースアップグレードしたら、WSUS のデータベースをリストアするという流れになります。

具体的な手順は2012R2 での移行手順となっていますが、下記のURL の2.3, 2.4 を参考に実施すれば移行可能と思いますので、困った場合は下記を参照してみてください。


2.3. WSUS データベースをバックアップする
2.4. WSUS データベースのバックアップを移行先サーバーで復元する

WSUS 3.0 SP2 から Windows Server 2012 R2 WSUS への移行手順 その 1 (WID -> WID の場合) | Microsoft Docs

WSUS 3.0 SP2 から Windows Server 2012 R2 WSUS への移行手順 その 2 (SQL -> SQL の場合) | Microsoft Docs