product-compliance について
ServiceNow Software Asset Managementでソフトウェア製品のコンプライアンスを確認するスキルです。SAMアナリストやライセンス管理者向けに、権利とインストール・使用状況を比較し、差異分析、是正計画、監査レポートを支援します。
主な機能
- 01製品とディスカバリーモデルの取得
- 02ライセンス権利と導入・使用状況の比較
- 03ライセンス不足・過剰の特定
- 04コンプライアンスと照合結果の確認
- 05是正計画と監査レポートの作成
活用シーン
- 01ソフトウェア製品の適合状況の確認
- 02ベンダー監査の準備
- 03ソフトウェアライセンス費用の最適化機会の特定
- 04定期的なコンプライアンスレポートの作成
MCP 対応
SN-Query-Table、SN-Natural-Language-Search、SN-Get-RecordなどのMCPツールで、ソフトウェア、ライセンス、インストール、コンプライアンスのレコードを取得する方法を説明します。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ happy-technologies-llc/ happy-platform-skills --skill product-complianceインストール後、Claude Code で/product-complianceを入力して読み込まれたか確認します。
詳細
製品コンプライアンス
概要
このスキルでは、ServiceNow Software Asset Management(SAM)におけるソフトウェア製品のコンプライアンスを要約するための体系的なアプローチを提供します。SAM アナリストやライセンス管理者が、企業全体におけるソフトウェア製品のコンプライアンス状況を評価するのに役立ちます。
主な機能:
- ソフトウェア製品の詳細と関連するディスカバリーモデルを取得する
- ライセンスの使用権と実際のインストール状況を要約する(権利と使用状況)
- インストール数が使用権を超過しているコンプライアンス上の不足を特定する
- 使用権が使用状況を超過している過剰ライセンスの製品を明らかにする
- コンプライアンス結果と照合作業の状況を分析する
- コンプライアンス違反に対する是正措置計画を作成する
- 監査対応可能なコンプライアンスレポートを作成する
使用する場面: SAM アナリストが特定のソフトウェア製品や発行元のコンプライアンスを確認する場合、ベンダー監査の準備をする場合、コスト最適化の機会を特定する場合、または定期的なコンプライアンスレポートを作成する場合に使用します。
前提条件
- ロール:
sam_admin、sam_user、license_admin、またはasset_manager - アクセス権:
samp_sw_product、samp_sw_install、samp_license、samp_compliance_result、samp_entitlement_result、およびcmdb_sam_sw_discovery_modelテーブルへの読み取りアクセス権 - プラグイン: SAM Professional または Enterprise で Software Asset Management(com.snc.samp)が有効になっていること
- データ: ソフトウェアのディスカバリーと正規化が完了しており、ライセンスレコードが最新であること
手順
ステップ 1:ソフトウェア製品の詳細を取得する
ソフトウェア製品のレコードと分類を取得します。
MCP を使用する場合:
Tool: SN-Query-Table
Parameters:
table_name: samp_sw_product
query: display_name=Microsoft Office 365
fields: sys_id,display_name,manufacturer,version,is_licensable,product_classification,lifecycle_stage,lifecycle_end_date,platform,category
limit: 5
発行元を対象に幅広く検索する場合:
Tool: SN-Query-Table
Parameters:
table_name: samp_sw_product
query: display_nameLIKEMicrosoft^is_licensable=true
REST API を使用する場合:
GET /api/now/table/samp_sw_product?sysparm_query=display_nameLIKEMicrosoft Office^is_licensable=true&sysparm_fields=sys_id,display_name,manufacturer,version,is_licensable,product_classification,lifecycle_stage,lifecycle_end_date,platform,category&sysparm_limit=10&sysparm_display_value=true
ステップ 2:コンプライアンス結果を取得する
製品の最新のコンプライアンス計算結果を取得します。
MCP を使用する場合:
Tool: SN-Query-Table
Parameters:
table_name: samp_compliance_result
query: software_product=[PRODUCT_SYS_ID]^ORDERBYDESCsys_updated_on
fields: sys_id,software_product,compliance_status,rights_count,install_count,usage_count,compliance_gap,last_compliance_run,license_metric,publisher
limit: 1
REST API を使用する場合:
GET /api/now/table/samp_compliance_result?sysparm_query=software_product=[PRODUCT_SYS_ID]^ORDERBYDESCsys_updated_on&sysparm_fields=sys_id,software_product,compliance_status,rights_count,install_count,usage_count,compliance_gap,last_compliance_run,license_metric,publisher&sysparm_limit=1&sysparm_display_value=true
ステップ 3:ライセンスの使用権を取得する
製品に関連付けられているすべてのライセンスレコードを取得します。
MCP を使用する場合:
Tool: SN-Query-Table
Parameters:
table_name: samp_license
query: software_product=[PRODUCT_SYS_ID]^ORDERBYDESCstart_date
fields: sys_id,display_name,license_metric,rights,used_rights,available_rights,start_date,end_date,contract,vendor,cost,state,license_type,compliance_status
limit: 20
REST API を使用する場合:
GET /api/now/table/samp_license?sysparm_query=software_product=[PRODUCT_SYS_ID]^ORDERBYDESCstart_date&sysparm_fields=sys_id,display_name,license_metric,rights,used_rights,available_rights,start_date,end_date,contract,vendor,cost,state,license_type,compliance_status&sysparm_limit=20&sysparm_display_value=true
ステップ 4:インストールデータを取得する
現在のインストール状況を取得し、実際の展開状況を把握します。
MCP を使用する場合:
Tool: SN-Query-Table
Parameters:
table_name: samp_sw_install
query: norm_product=[PRODUCT_SYS_ID]^is_reconciled=true
fields: sys_id,display_name,installed_on,installed_on.location,installed_on.assigned_to,install_date,discovery_source,is_reconciled,last_scanned
limit: 100
場所別のインストール数:
Tool: SN-Query-Table
Parameters:
table_name: samp_sw_install
query: norm_product=[PRODUCT_SYS_ID]^is_reconciled=true^GROUPBYinstalled_on.location
fields: installed_on.location
limit: 50
REST API を使用する場合:
GET /api/now/table/samp_sw_install?sysparm_query=norm_product=[PRODUCT_SYS_ID]^is_reconciled=true&sysparm_fields=sys_id,display_name,installed_on,install_date,discovery_source,is_reconciled,last_scanned&sysparm_limit=100&sysparm_display_value=true
ステップ 5:使用権の割り当てを取得する
ライセンスの使用権がどのように割り当てられているかを確認します。
MCP を使用する場合:
Tool: SN-Query-Table
Parameters:
table_name: samp_entitlement_result
query: software_product=[PRODUCT_SYS_ID]^ORDERBYDESCsys_updated_on
fields: sys_id,software_product,license,allocated_rights,consumed_rights,remaining_rights,metric_group,allocation_type
limit: 20
REST API を使用する場合:
GET /api/now/table/samp_entitlement_result?sysparm_query=software_product=[PRODUCT_SYS_ID]^ORDERBYDESCsys_updated_on&sysparm_fields=sys_id,software_product,license,allocated_rights,consumed_rights,remaining_rights,metric_group,allocation_type&sysparm_limit=20&sysparm_display_value=true
ステップ 6:コンプライアンス上の不足とリスクを特定する
コンプライアンス上の不足を分析し、必要な是正措置を判断します。
MCP を使用する場合:
Tool: SN-Query-Table
Parameters:
table_name: samp_compliance_result
query: compliance_status=non_compliant^ORDERBYcompliance_gap
fields: sys_id,software_product,publisher,compliance_status,rights_count,install_count,compliance_gap,license_metric,last_compliance_run
limit: 20
REST API を使用する場合:
GET /api/now/table/samp_compliance_result?sysparm_query=compliance_status=non_compliant^ORDERBYcompliance_gap&sysparm_fields=sys_id,software_product,publisher,compliance_status,rights_count,install_count,compliance_gap,license_metric&sysparm_limit=20&sysparm_display_value=true
ステップ 7:コンプライアンスの要約を作成する
収集したデータを構造化されたコンプライアンスレポートにまとめます。
=== SOFTWARE COMPLIANCE SUMMARY ===
Product: [product_name]
Publisher: [manufacturer] | Version: [version]
Lifecycle: [lifecycle_stage] | EOL: [lifecycle_end_date]
Last Compliance Run: [last_compliance_run]
COMPLIANCE STATUS: [COMPLIANT / NON-COMPLIANT / OVER-LICENSED]
LICENSE POSITION:
Total Entitlements (Rights): [rights_count]
Total Installations: [install_count]
Actual Usage: [usage_count]
Compliance Gap: [compliance_gap] ([positive = over-licensed, negative = under-licensed])
LICENSE INVENTORY:
| License | Type | Metric | Rights | Used | Available | Expiry |
|---------|------|--------|--------|------|-----------|--------|
| [name] | [type] | [metric] | [rights] | [used] | [avail] | [end_date] |
INSTALLATION DISTRIBUTION:
| Location | Install Count | % of Total |
|----------|--------------|------------|
| [location] | [count] | [pct]% |
RISK ASSESSMENT:
- Compliance Gap: [gap_description]
- Expiring Licenses: [count] licenses expiring within 90 days
- Unreconciled Installs: [count] installations not matched to entitlements
- Lifecycle Risk: [EOL/EOS warnings]
REMEDIATION ACTIONS:
1. [action_description] - Priority: [High/Medium/Low]
2. [action_description] - Priority: [High/Medium/Low]
COST OPTIMIZATION:
- Over-licensed savings potential: $[amount]
- License consolidation opportunities: [description]
ツールの使用方法
MCP ツールのリファレンス
| ツール | 使用する場面 |
|---|---|
SN-Natural-Language-Search | 自然言語による製品検索(例:「コンプライアンス違反の Adobe 製品を検索」) |
SN-Query-Table | コンプライアンス、ライセンス、インストールデータの構造化クエリ |
SN-Get-Record | sys_id を指定して特定の製品、ライセンス、またはコンプライアンスレコードを取得 |
REST API のリファレンス
| エンドポイント | メソッド | 目的 |
|---|---|---|
/api/now/table/samp_sw_product | GET | ソフトウェア製品カタログの検索 |
/api/now/table/samp_compliance_result | GET | コンプライアンス計算結果 |
/api/now/table/samp_license | GET | ライセンスの使用権レコード |
/api/now/table/samp_sw_install | GET | ソフトウェアのインストールレコード |
/api/now/table/samp_entitlement_result | GET | 使用権の割り当て詳細 |
/api/now/table/cmdb_sam_sw_discovery_model | GET | ディスカバリーモデルのマッピング |
ベストプラクティス
- 最初にコンプライアンス計算を実行する: レポートを生成する前に、最新のコンプライアンスジョブが完了していることを確認します
- 正規化された製品を使用する: 生の検出レコードではなく、常に
samp_sw_product(正規化済み)を参照します - ライセンスの有効期限を確認する: 90 日以内に期限切れとなるライセンスは、今後のコンプライアンスに影響するため、フラグを付けます
- 使用状況とインストールを区別する: 使用量計測を行う製品では、インストール数と実際の使用数が大きく異なる場合があります
- ライセンスメトリックを考慮する: メトリック(デバイス単位、ユーザー単位、コア単位)によって、比較方法を変える必要があります
- 検出データを検証する: 古い検出レコードはインストール数を過大にするため、
last_scannedの日付を確認します - 是正措置を記録する: コンプライアンス上の不足事項には、必ず具体的で実行可能な是正手順を添えます
- ライセンスの移動性を考慮する: 再割り当てを許可するライセンスもあります。コンプライアンスを評価する際は、移動性に関するルールを考慮します
トラブルシューティング
「コンプライアンス結果で権利数とインストール数がゼロと表示される」
原因: コンプライアンス計算が実行されていないか、製品がいずれの検出モデルにもマッピングされていません。
解決方法: cmdb_sam_sw_discovery_model に製品に関連付けられた検出モデルがあることを確認します。SAM Workspace からコンプライアンス計算を実行します。
「インストール数が予想よりも多い」
原因: 複数の検出元が重複したインストールを報告しているか、正規化ルールの範囲が広すぎる可能性があります。
解決方法: 重複した samp_sw_install レコードがないか確認します。検出モデルを製品にマッピングする正規化ルールを確認します。is_reconciled=true でフィルターします。
「ライセンスレコードが製品にリンクされていない」
原因: ライセンスレコードが別の製品バージョンを参照しているか、異なる製品参照フィールドを使用している可能性があります。
解決方法: ライセンスの software_product フィールドと software_model フィールドを確認します。製品の正規化に関連するすべてのバージョンが含まれていることを確認します。
「コンプライアンスステータスは準拠と表示されるが、不足数がマイナスになっている」
原因: コンプライアンス計算で想定とは異なるメトリックが使用されているか、サブキャパシティルールが適用されている可能性があります。
解決方法: コンプライアンス結果の license_metric フィールドを確認します。製品でプロセッサーバリュー単位(PVU)またはその他のサブキャパシティメトリックが使用されているか確認します。
例
例 1:Microsoft Office 365 のコンプライアンスレビュー
シナリオ: SAM アナリストが、近日予定されている Microsoft の監査に向けてコンプライアンス概要を作成します。
ステップ 1 - 製品を検索:
Tool: SN-Query-Table
Parameters:
table_name: samp_sw_product
query: display_nameLIKEOffice 365^manufacturer.nameLIKEMicrosoft
fields: sys_id,display_name,manufacturer,version,is_licensable
limit: 5
ステップ 2 - コンプライアンス情報を取得:
Tool: SN-Query-Table
Parameters:
table_name: samp_compliance_result
query: software_product=<sys_id>
fields: compliance_status,rights_count,install_count,usage_count,compliance_gap,last_compliance_run
limit: 1
出力概要:
COMPLIANCE SUMMARY - Microsoft Office 365 E3
Publisher: Microsoft | Metric: Per User
Last Run: Mar 18, 2026
STATUS: NON-COMPLIANT
Rights: 2,500 licenses | Installs: 2,847 | Active Users: 2,712
Gap: -212 licenses (under-licensed)
LICENSES:
- EA Agreement EA-2024-001: 2,000 rights (exp Dec 2026)
- CSP Monthly: 500 rights (active, monthly)
REMEDIATION:
1. Purchase 212 additional E3 licenses - Priority: High
2. Review 135 installed but inactive users for removal - Priority: Medium
3. Evaluate E3 to E1 downgrade for 340 light users - Priority: Medium
ESTIMATED COST: $212 x $23/user/mo = $4,876/mo additional
SAVINGS OPPORTUNITY: Downgrade 340 users = $5,440/mo savings
例 2:パブリッシャー全体のコンプライアンスダッシュボード
シナリオ: SAM マネージャーが、すべての Adobe 製品のコンプライアンス概要を必要としています。
Tool: SN-Query-Table
Parameters:
table_name: samp_compliance_result
query: publisher.nameLIKEAdobe^ORDERBYcompliance_status
fields: software_product,compliance_status,rights_count,install_count,compliance_gap,license_metric
limit: 20
出力:
ADOBE COMPLIANCE OVERVIEW
Total Products: 8 | Compliant: 5 | Non-Compliant: 2 | Over-Licensed: 1
NON-COMPLIANT:
1. Adobe Acrobat Pro DC
Rights: 450 | Installs: 623 | Gap: -173
Action: Harvest unused installs, purchase delta
2. Adobe Illustrator CC
Rights: 50 | Installs: 78 | Gap: -28
Action: Verify business need for 28 excess installs
OVER-LICENSED:
1. Adobe Photoshop CC
Rights: 200 | Installs: 89 | Gap: +111
Action: Reduce licenses at next renewal (-$6,660/yr)
TOTAL RISK EXPOSURE: ~$48,000 (est. true-up cost)
SAVINGS OPPORTUNITY: ~$6,660/yr (Photoshop right-sizing)
関連スキル
sam/saas-user-resolution- SaaS ユーザーの不一致を解決し、ライセンスを最適化しますprocurement/invoice-management- ライセンスの調達と請求書を追跡しますadmin/configuration-validation- SAM プラグインの設定を検証しますreporting/executive-dashboard- 経営層向けコンプライアンスダッシュボードを生成します