2021年4月10日土曜日

MECM/SCCM でのBranchCache とPeerCache を併用した場合の動作について

MECM/SCCM では、BranchCache とPeerCache の設定を両方有効にすることが可能です。

その場合、どちらの機能を利用してコンテンツをダウンロードするの?という疑問が湧いてきます。

これは結論から言うと、通常の環境であれば、PeerCache が有効になるケースがほとんどとなります。

理由としては、BranchCache は配布ポイントからダウンロードされる場合に有効となりますが、コンテンツのダウンロードソースの優先順位はPeerCache ソースの方が優先順位が高いため、PeerCache が有効になります。

ただ、PeerCache ソースがダウンしているような状況であれば、配布ポイントからのコンテンツダウンロードが動作するため、その場合はBranchCache が利用される動作となります。

コンテンツのダウンロードソースの優先順位は下記の公開情報に情報がありますので、確認してみてください。

 コンテンツ管理の基礎 - Configuration Manager | Microsoft Docs

MECM/SCCM のピアキャッシュの一部ダウンロードの動作検証

MECM では、ピアキャッシュという機能があります。

簡単にいうと、ピアキャッシュソースというコンテンツを持つクライアント端末に対して、他のコンテンツを持たないクライアントが、ピアキャッシュソースからコンテンツをダウンロードする、というもので、配布ポイントからのダウンロードをしない動作となります。 


クライアントのピア キャッシュ - Configuration Manager | Microsoft Docs


この中で、MECM の管理コンソールの下記のチェックを有効にした場合に、上記の公開情報にある一部ダウンロードという機能が有効になります。



このチェックを入れてピアキャッシュの機能を検証してみたところ、下記のようなログが出力されました。
黄色の部分と白色の部分で、別端末のログを示しています。


まず緑の部分を上から見ていくと、最初に白のクライアントがブロック2をダウンロードしています。このダウンロード上に黄色のクライアントがブロック3をダウンロードしています。
その後、白のクライアントがブロック2をダウンロード完了し、次にブロック4をダウンロードしようとしています。
その後、黄色のクライアントがブロック3をダウンロード完了し、白のクライアントがすでにダウンロード完了した、ブロック2をダウンロードし始めます。

つまり、この機能は同時に同じブロックのコンテンツを複数端末にダウンロードさせないように制御されています。
そのため、最大でもファイルのコンテンツサイズのダウンロード分の帯域しか利用されないため、設定のところにも記載があるように、「WAN の使用率を下げる」ことができる、ということになるようです。

WSUS にインポートしたカタログ情報を削除

 WSUS から配信できない更新プログラムを手動でインポートしたが、これを消したいということがあるかと思います。

その場合、下記のコマンドをPowerShell から実行すればカタログ情報から削除できます。

- サンプル コマンド
--------------------------------
$wsus = Get-WSUSServer
$wsus.DeleteUpdate("13b5a526-7f85-4546-adde-95ced26276e5")
--------------------------------
※ "13b5a526-7f85-4546-adde-95ced26276e5" の部分は UpdateID を入力します。

UpdateID を確認する場合、カタログサイトの対象の更新プログラムを選択した時に表示されるURL 情報を確認するとよいでしょう。

Microsoft Update カタログ













Windows10 2004 にKB5001567 をWSUS 経由で配布すると適用できない

KB5001567 ですが、こちらの更新プログラムは既定でWSUS からの配信ができない更新プログラムとなります。
そのため、WSUS を利用して配信したい場合、WSUS へのインポート作業が必要となります。


WSUS へKB5001567 を無事インポートできたところで、こちらの更新プログラムをWindows10 2004 のクライアントへ配信すると、クライアント側には何故か適用できていないが、WSUS レポート上はKB5001567 がインストール済みと表示されます。
※Windows10 20H2 は問題なく適用できます。



原因は不明ですが、私の検証だと、KB5000802 をインストールすると、KB5001567 がインストール済みと判定されてしまうようです。
また、KB5000802 をインストールすると、同梱されているサービススタックの更新プログラム、KB5000858 がインストールされますので、KB5000802 かKB5000858 がインストールされると、KB5001567 がインストール済み、という判定がされてしまうようです。

現状こちらの更新プログラムを適用したい場合は、Windows Update カタログサイトからスタンドアロンの更新プログラムをダウンロードして適用するか、Windows Update から適用するしか方法がないようです。

しかしながら、すでにKB5001649 がリリースされているので、こちらを適用するのが正解でしょう。

2020年5月20日水曜日

クライアント端末の最新のIP アドレス取得について

SCCM でクライアント端末のIP アドレスの取得について調べてみました。
まず、IP アドレスを取得する方法は大きく3つあります。

  • Active Directory のシステム探索
  • 定期探索
  • ハードウェアインベントリ(Win32_NetworkAdapterConfiguration)

これらの中で、ハードウェアインベントリ以外はシステムリソースの値を更新します。

例えば、コレクションを生成する際にクエリ規則でシステムリソースからIP アドレスを選択した場合に、そのクエリ規則を有効にするためには、ハードウェアインベントリ以外の方法でIP アドレスの情報を更新しないと、意図したコレクションに所属しないわけです。

そのため、クライアント側の最新のIP アドレスを反映したコレクションを作りたい、ということであれば、Active Directory のシステム探索、及び定期探索を実行するしかなく、定期探索についてはスケジュール設定できないため、Active Directory のシステム探索のスキャンサイクルを短くするしか方法がありません。

ちなみに、ハードウェアインベントリで収集したIP アドレスは、データベースの下記のビューを更新します。

  • v_GS_NETWORK_ADAPTER_CONFIGURATION

それ以外の探索では、下記のビューを更新します。

  • v_RA_System_IPAddresses

これらの値を取得しているかどうかは、クライアント端末側の[InventoryAgent.log] で確認ができます。

参考:ログ ファイルのリファレンス


また、クライアントに複数のIP アドレスが合った場合に、どちらが最新のIP アドレスであるか(後から設定されたIP アドレスであるかどうか)といったこともSCCM ではわからないため、この場合は境界グループで配布ポイントを制御しないと、意図しない配布ポイントからコンテンツをダウンロードしてしまう、といった懸念がありますので、注意が必要です。

2020年5月5日火曜日

SCCM Client Agent のパッケージ配信インストール方法

SCCM Client Agent をパッケージ展開してClient Agent をインストール(アップグレードも可)する場合、まずプライマリサイトサーバの最新バージョンのClientフォルダを展開のパッケージ作成時に指定するフォルダにコピーします。

デフォルトでClient フォルダは以下になります。
C:\Program Files\Microsoft Configuration Manager\Client

そのフォルダ内に下記のサンプルコマンドを持つバッチファイルを「install.bat」として保存します。

■サンプルコマンド
 \\<ServerName>\<ContentsPath>\ccmsetup.exe /source:"\\<ServerName>\<ContentsPath>" SMSSITECODE=<SiteCode>
※適宜、管理ポイントを指定するオプション等を追加してください。 (*1)

パッケージ展開作成時に、[このパッケージにソースファイルを含める] を選択して、先ほどコピーしたフォルダを選択し、コマンドラインに下記のように指定します。
%windir%\sysnative\cmd.exe /c install.bat

こちらのパッケージを展開すれば、クライアントのインストール、もしくはアップグレードが可能になるかと思います。
すでにClient Agent がインストールされているクライアントにインストール(アップグレード)する場合、サイズの制限に達していなければ、ccmcache は削除されませんので、検証してみてください。

(*1) CCMSetup.exe のコマンドライン パラメーター

SCCM で管理しているクライアントで、意図せずパッチが適用され再起動されてしまう場合

SCCM で管理しているクライアントに再起動をしないように展開設定してパッチを適用しているが、意図せずクライアント側でパッチ適用、及び再起動が実行されてしまう場合があります。

この原因の多くは、WSUS のグループポリシーによるものです。

具体的には、下記のグループポリシーが有効になっている場合、WSUS 側で管理されているパッチが適用され、再起動がされてしまいます。


そのため、クライアントのパッチのすべてをSCCM で管理したい場合は、こちらの項目を[無効] にするのがよいでしょう。