SCCM でエディションを収集するためのカスタムソリューションIssue Introduction インストール済み製品のエディション情報は SCCM OOB プロセスによってキャプチャされず、各公開者は一意の場所に保存します。このカスタムソリューションは、レジストリキーを解析して、Adobe Acrobat、Microsoft SQL Server、Windows Exchange Server などの製品のエディションを収集します。他の製品用に収集するためのモジュールを追加することを選択できます。 要件 SCCM 統合プラグインとソフトウェア資産管理プロフェッショナルプラグインがインストールされている必要がありますすべてのクライアント コンピューターに PowerShell がインストールされている必要がありますPowerShell スクリプトの [製品] と [公開者] の値はハードコードされており、以下の規則に従っています。エディションに入力する適切なソフトウェアインストールを特定するには、この規則に従う必要があります。 製品は、ソフトウェアインストールレコードの正規化された製品であるsamp_sw_productテーブルおよびprod_nameフィールドと完全に一致する必要がありますパブリッシャーは、ソフトウェアインストールレコードの正規化されたパブリッシャーであるsamp_sw_productテーブルおよびパブリッシャーフィールドと完全に一致する必要があります 仕組み Microsoft SCCM のサービスグラフコネクタソフトウェアエディションデータソースは、SCCM DB からエディションレコードを取り込みます。各行はスクリプトを使用して変換され、2 つのフェーズで処理されます。フェーズ 1 で一致するインストールが見つかった場合は、そのエディション上書きフィールドが入力され、次の行に進みます。一致するものが見つからない場合は、フェーズ 2 に入り、一致するインストールの検索を試みます。両方が失敗した場合は、行をスキップして次の行に移動します。以下は、両方のフェーズの一致基準です。 フェーズ 1 正規化済み製品正規化済みパブリッシャーバージョンインストール先 (CI)アプリケーションパターンで作成 = false空のエディションの上書き フェーズ 2 正規化済み製品正規化済みパブリッシャー空のバージョンインストール先 (CI)アプリケーションパターンで作成 = false空のエディションの上書き セットアップ SCCM Manager と ServiceNow インスタンスの 2 種類のセットアップが必要です。 SCCM マネージャーのセットアップ 1.SCCM Manager と同じマシン上に共有フォルダーを作成し、ネットワークパスをコピーします。たとえば、私の名前は\\SAMLABVM501\Sharedです をダウンロードしfetchEditions.txt 上記で作成した共有フォルダに保存します。 注: 拡張子を . に固定しますps1 は PowerShell スクリプト (現在は.txt) を示し、SCCM マネージャーがスケジュールどおりに実行する必要があるため、削除すべきではありません。 注: 初めて実装する場合は、手順 2 に進みます。現在の実装をアップグレードする場合(ダウンロード時の上記のファイルはバージョン = 2.0になります) 元の fetchEditions.ps1 ファイルを、共有フォルダー内の新しくダウンロードした fetchEditions.ps1 ファイルに置き換えます。SCCM マネージャー -> ソフトウェアライブラリ -> アプリケーション管理 -> パッケージ] に移動します。以前に作成したパッケージを右クリックしてエディションを取得し ここで文書化しているように、[配布ポイントの更新]を選択します。[OK] をクリックします。 これは、2.0 の変更に従って情報をフェッチするようにクライアントマシンに指示するためのものです。 2.SCCM マネージャー -> ソフトウェアライブラリ -> アプリケーション管理 -> パッケージ] に移動します。左上の [パッケージを作成] をクリックして、新しいパッケージを作成します 3.以下に示すように [パッケージ] 情報を入力し、ソース フォルダーに手順 1 でコピーしたネットワーク パスがあることを確認し、[次へ] をクリックします 4.[標準プログラム] を選択し、[次へ] をクリックします。 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.パッケージ名をもう一度右クリックし、[展開] をクリックします UI 16でも利用できますパッケージを展開するコレクションを次のように選択し、[次へ] をクリックします 17. 配布ポイントを事前に選択する必要があります。選択されていない場合は、先に進んで [追加] をクリックし、[次へ] をクリックします。 18. [目的] が [必須] に設定されていることを確認し、[次へ] をクリックします。 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] をクリックします。 以下のように [追加] をクリックします。 以下のように「接続」をクリックします。パッケージをデプロイしたときに、クライアント マシン (スナップショットの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 のセットアップ 左側のナビゲーション: [統合] - [Microsoft SCCM のサービスグラフコネクタ] ソフトウェアエディションに移動します。有効にするには、[アクティブ] フィールドをオンにして [更新] をクリックします[統合] - [Microsoft SCCM のサービスグラフコネクタ] に移動します>関連リストの変換、[エディション変換でソフトウェアインストールを更新] をクリックします。有効にするには、[アクティブ] フィールドをオンにして [更新] をクリックします 検証 SCCM データベース -> ビュー -> v_GS_SN_SAMP_ADD_REMOVE_PROGRAMS_EDITION ビューにエントリがあることを確認します。統合の実行 - Microsoft SCCM のサービスグラフコネクタ:> スケジュール済みインポート[統合] - [Microsoft SCCM のサービスグラフコネクタ] – [進行状況>] に移動し、フィルターで [すべて] をクリックすると、[インポートセットの作成:sn_sccm_integrate_sccm_2019_software_edition] または [インポートセットの作成:完了コード成功あり] のエントリが表示されます。これにより、ソフトウェアエディションデータソースが正常に実行されますエディションデータは、ソフトウェアインストールレコードのエディション上書きフィールドに入力する必要がありますこれにより、インストールレコードに関連付けられたディスカバリーモデルの再正規化がトリガーされます。正規化では、コンテンツルール/パッケージを使用して、番号形式のエディション (7760) をテキストエディション (Professional) にマッピングし、それに応じてディスカバリーモデルを更新します。再正規化後、インストールレコードは変更されません。 トラブルシューティング 目的のソフトウェアインストールがエディションで更新されていない場合は、以下を確認してください Microsoft SCCM ソフトウェアエディションのサービスグラフコネクタのスケジュール済みインポートレコードがアクティブであることを確認しますエディション変換マップを使用したソフトウェアインストールの更新がアクティブであることを確認してくださいMicrosoft SCCM ソフトウェアエディションのサービスグラフコネクタデータソースのテストPowerShell スクリプトへの入力に使用した製品とパブリッシャーが samp_sw_product テーブルに存在することを確認します。 V_GS_ SN_SAMP_ADD_REMOVE_PROGRAMS_EDITIONビューにレコードがない場合は、いずれかのクライアントマシンでCCMログ(execmgr.log)を確認すると、「パッケージ:P0100009のスクリプト、プログラム:終了コード0でエディションのフェッチに成功しました」と表示されます。実行に失敗すると、「パッケージ:P0100007、プログラム:エディションのフェッチが終了コード 1 で失敗しました」というメッセージが表示されます。 ソフトウェアエディションソリューションを無効にする ユーザーが上記のソリューションで予期しない問題が発生し、その実行を中止する場合は、次の手順に従います。 1.インスタンスでこのスケジュールインポートの Microsoft SCCM のサービスグラフコネクタの「ソフトウェアエディション」を無効にするには、[アクティブ] フィールドのチェックボックスをオフにして、今後このインポートがアクティブ = false となり、実行されなくなります。