SCCM でエディションを収集するためのカスタムソリューションIssue イントロダクション インストール済み製品のエディション情報は SCCM OOB プロセスによってキャプチャされず、各パブリッシャーはエディション情報をそれぞれ異なる場所に保存しています。このカスタムソリューションは、レジストリキーを解析して、Adobe Acrobat、Microsoft SQL Server、Windows Exchange Server などの製品のエディションを収集します。他の製品用に収集するためのモジュールを追加することを選択できます。 要件 SCCM integration plugin および Software Asset Management Professional plugin がインストールされている必要があります。すべてのクライアントマシンに PowerShell がインストールされている必要があります。PowerShell スクリプト内の Product および Publisher の値はハードコードされており、以下の規則に従っています。edition 値を設定する対象となる適切な software install を特定するため、この規則に従う必要があります。 Product は、software install レコード上の正規化済み製品を表す samp_sw_product テーブルの prod_name フィールドの値と完全に一致する必要があります。Publisher は、software install レコード上の正規化済みパブリッシャーを表す samp_sw_product テーブルの publisher フィールドの値と完全に一致する必要があります。 仕組み Service Graph Connector for Microsoft SCCM Software Edition data source は、SCCM DB からエディションレコードを取り込みます。各行はスクリプトを使用して変換され、2 つのフェーズで処理されます。フェーズ 1 で一致するインストールが見つかった場合は、その edition override フィールドが入力され、次の行に進みます。一致するものが見つからない場合は、フェーズ 2 に入り、一致するインストールの検索を試みます。両方が失敗した場合は、行をスキップして次の行に移動します。以下は、両方のフェーズの一致基準です。 フェーズ 1 正規化済み製品正規化済みパブリッシャーバージョンインストール先 (CI)アプリケーションパターンで作成 = false空の edition override フェーズ 2 正規化済み製品正規化済みパブリッシャー空のバージョンインストール先 (CI)アプリケーションパターンで作成 = false空の edition override Release SG-SCCM のすべてのバージョン Resolution SCCM Manager と ServiceNow インスタンスの 2 種類のセットアップが必要です。 SCCM マネージャーのセットアップ 1.SCCM Manager と同じマシン上に共有フォルダーを作成し、ネットワークパスをコピーします。例: \\SAMLABVM501\Shared fetchEditions.txt をダウンロードし、上記で作成した共有フォルダーに保存します。 注: 拡張子を .ps1 に変更してください。これは PowerShell スクリプトを示します(現在は .txt です)。SCCM マネージャーがスケジュールどおりに実行する必要があるため、削除すべきではありません。 注: 初めて実装する場合は、手順 2 に進みます。現在の実装をアップグレードする場合(ダウンロードした上記ファイルの version は 2.0 です)。 元の fetchEditions.ps1 ファイルを、共有フォルダー内の新しくダウンロードした fetchEditions.ps1 ファイルに置き換えます。SCCM Manager -> Software Library -> Application Management -> Packages に移動します。以前に作成した edition 取得用パッケージを右クリックし ここで文書化しているように、[Update Distribution Points] を選択します。[OK] をクリックします。 これは、2.0 の変更内容に従って情報を取得するようクライアントマシンに指示するためです。 2.SCCM Manager -> Software Library -> Application Management -> Packages に移動します。左上の [Create Package] をクリックして、新しいパッケージを作成します 3.以下に示すように [パッケージ] 情報を入力し、ソース フォルダーに手順 1 でコピーしたネットワーク パスがあることを確認し、[次へ] をクリックします 4.[Standard Program] を選択し、[次へ] をクリックします。 5.以下のスナップショットに示すように、次のフィールドセットに入力し(注:コマンドの最後にあるファイル名は、共有フォルダにコピーしたファイルと一致する必要があります)、[次へ]をクリックします。 コマンドライン: "C:\Windows\sysnative\WindowsPowerShell\v1.0\powershell.exe" -ExecutionPolicy Bypass -Command .\fetchEditions.ps1 6.共有フォルダーに移動し、PowerShell スクリプトのサイズを調べます。最大許容実行時間をデフォルトではなく 15 分に変更し、次のようにディスク領域を入力して [次へ] をクリックします。 7.手順 4 から 7 で行ったすべての構成の概要が表示されるので、[次へ] をクリックします。 8.正常に完了したダイアログが表示されるので、[閉じる] をクリックします。 9.作成したパッケージは、[ソフトウェアライブラリ] -[> アプリケーション管理] -[> パッケージ] に次のように表示されます。 10.パッケージ名を右クリックし、[コンテンツの配布] をクリックします。 11.[次へ] をクリックします 12.[追加] を選択し、必要な配布方法を選択し、[配布ポイント] を選択します。 [Next] をクリックします。 13.概要が表示されるので、[次へ] をクリックします。 14.正常に完了したら、[閉じる] をクリックします。 15.パッケージ名をもう一度右クリックし、[展開] をクリックします 16. パッケージを展開するコレクションを以下のように選択し、Next をクリックします。 17. 配布ポイントを事前に選択する必要があります。選択されていない場合は、先に進んで [追加] をクリックし、[次へ] をクリックします。 18. Purpose が Required に設定されていることを確認し、[次へ] をクリックします。 19.[新規] をクリックして、次のようにアサインスケジュールを作成します。 スケジュールをクリックします: カスタムスケジュールを作成し、次のように選択して [OK] をクリックします。 [OK] をクリックします。 Rerun Behavior が Always rerun program に設定されていることを確認し、[Next] をクリックします。 20.以下のようにフィールドをオンまたはオフにして、[次へ] をクリックします。 21.これはかなり小さなプログラムであるため、両方のオプションを [配布ポイントからプログラムを実行する] に切り替え、次のように [次へ] をクリックします。 22.サマリーが表示されるので、[次へ] をクリックします。 23.正常に完了した画面で [閉じる] をクリックします 24.数分待ってから、すべてのクライアント マシンでパッケージが正常に実行されていることを確認します [SCCM Manager] -[> Monitoring] -[> Deployments] に移動し、作成したパッケージを見つけます。 それをダブルクリックすると、成功タブの下に次のように表示されます。 注: [エラー] タブに次のようなエントリが表示された場合は、[ソフトウェア ライブラリ] - [> パッケージ] に戻り、パッケージを見つけて>右クリックして [配布ポイントの更新] をクリックします。数分待ってから [Monitoring -> Deployments] に戻り、もう一度確認してください。 OK をクリックします。 25.新しく作成した WMI クラス (ダウンロードした PowerShell スクリプトで作成) をハードウェアインベントリに追加します。[SCCM Manager] -[> Administration] -[> Client Settings] に移動します。 [Default Client Settings] を右クリックし、以下のように [Properties] をクリックします。 [Hardware Inventory] に移動し、次のように [Set Classes] をクリックします。 以下のように [追加] をクリックします。 以下のように [Connect] をクリックします。パッケージをデプロイしたときに、クライアント マシン (スナップショットのSAMLABVM303上) で正常に実行されましたが、そのマシンに接続して WMI クラスを選択する必要があります。 SN_SAMP_ADD_REMOVE_PROGRAMS_EDITION を選択し、[OK] をクリックします。 以下のようにハードウェアインベントリクラスに選択して表示され、OKをクリックして、デフォルト設定画面でOKをクリックします。 他のすべてのカスタムクライアント設定 (> プロパティ -> ハードウェアインベントリ -> セットクラス] に移動すると、次のようにSN_SAMP_ADD_REMOVE_PROGRAMS_EDITIONがすでにチェックされていることがわかります。 クライアント マシンが新しいマシン ポリシーとハードウェア インベントリの変更を受信すると、次のハードウェア インベントリ収集サイクルで、WMI クラス (SN_SAMP_ADD_REMOVE_PROGRAMS_EDITION) データが送り返されます。このクラスは、SCCM DB に v_GS_SN_SAMP_ADD_REMOVE_PROGRAMS_EDITION と呼ばれるビューを作成します ServiceNow のセットアップ 左側のナビゲーション: Integration – Service Graph Connector for Microsoft SCCM Software Edition に移動します。有効にするには、[アクティブ] フィールドをオンにして [更新] をクリックしますIntegration – Service Graph Connector for Microsoft SCCM に移動します。関連リスト transforms の Update software install with edition transform をクリックします。有効にするには、[アクティブ] フィールドをオンにして [更新] をクリックします 検証 SCCM データベース -> ビュー -> v_GS_SN_SAMP_ADD_REMOVE_PROGRAMS_EDITION ビューにエントリがあることを確認します。Integration -> Service Graph Connector for Microsoft SCCM -> Scheduled Import を実行します。Integration - Service Graph Connector for Microsoft SCCM -> Progress に移動し、フィルターで [すべて] をクリックすると、Creating import set: sn_sccm_integrate_sccm_2019_software_edition または Creating import set: ~ with Completion Code Success のエントリが表示されることを確認します。これにより、Software Edition data source が正常に実行されたことを確認できます。Edition データは software install レコードの edition override フィールドに入力される必要があります。これにより、インストールレコードに関連付けられたディスカバリーモデルの再正規化がトリガーされます。正規化では、コンテンツルール/パッケージを使用して、番号形式のエディション (7760) をテキストエディション (Professional) にマッピングし、それに応じてディスカバリーモデルを更新します。再正規化後、インストールレコードは変更されません。 トラブルシューティング 目的のソフトウェアインストールがエディションで更新されていない場合は、以下を確認してください。 Service Graph Connector for Microsoft SCCM Software Edition の scheduled import record が Active であることを確認します。Update software install with edition transform map が Active であることを確認してください。Service Graph Connector for Microsoft SCCM Software Edition data source をテストします。PowerShell スクリプトへの入力に使用した製品とパブリッシャーが samp_sw_product テーブルに存在することを確認します。 V_GS_ SN_SAMP_ADD_REMOVE_PROGRAMS_EDITIONビューにレコードがない場合は、いずれかのクライアントマシンでCCMログ(execmgr.log)を確認すると、Script for Package:P0100009, Program: Fetch Editions succeeded with exit code 0と表示されます。実行に失敗すると、Script for Package:P0100007, Program: Fetch Editions failed with exit code 1というメッセージが表示されます。 ソフトウェアエディションソリューションを無効にする ユーザーが上記のソリューションで予期しない問題が発生し、その実行を中止する場合は、次の手順に従います。 1.インスタンスでこのスケジュールインポートの Service Graph Connector for Microsoft SCCM Software Edition を無効にするには、[アクティブ] フィールドのチェックボックスをオフにして、今後このインポートがActive = false となり、実行されなくなります。