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 が開放していない環境では利用できませんので、ご注意ください。