CMPivot への変更

Configuration Manager (現在のブランチ) に適用

Configuration Manager のバージョン間で CMPivot に加えられた変更については、次の情報を参照してください。

バージョン 2107 の CMPivot の変更

簡略化された CMPivot アクセス許可要件

CMPivot のアクセス許可要件を簡略化しました。 新しいアクセス許可は、CMPivot スタンドアロンとオンプレミス コンソールの CMPivot に適用されます。 次の変更が加えられました:

  • CMPivot では SMS スクリプトの 読み取りアクセス許可は不要になりました

  • 既定のスコープのアクセス許可は必要ありません。

CMPivot の全般的な機能強化

CMPivot に次の改善を加えました。

  • 集計演算子で使用できる maxif および minif アグリゲーターを追加しました
  • クエリ エディターでのクエリのオートコンプリート候補の改善
  • ジストリ エンティティにキー値を追加しました
  • 指定された式に一致するすべてのレジストリ キーを返す新しい RegistryKey エンティティを追加しました

Registry エンティティと RegistryKey エンティティの違いを確認するには、次のサンプルを使用できます。

// Change the path to match your desired registry hive query

Registry('hklm:\SOFTWARE\Microsoft\EnterpriseCertificates\Root\Certificates\*')
RegistryKey('hklm:\SOFTWARE\Microsoft\EnterpriseCertificates\Root\Certificates\*')

RegistryKey('hklm:\SOFTWARE\Microsoft\SMS\*')
Registry('hklm:\SOFTWARE\Microsoft\SMS\*')

バージョン 2103 の CMPivot の変更

バージョン 2103 より、CMPivot に対して以下の機能強化が行われています。

結果が大きすぎる場合の警告メッセージと CMPivot データのエクスポート オプション

結果が大きすぎると、次の警告メッセージが表示されます。

多数の結果が返されました。 クエリを変更して結果を絞り込むか、このバナーを選択して結果をエクスポートします。

このメッセージは、次のような場合に発生します。

  • 結果が 100,000 セルを超える場合。

    • たとえば、エンティティ データが 10 列のデバイス (行) 10,000 台の場合、警告しきい値に達します。
    • この場合、結果を .csv ファイルにエクスポートするオプションが表示されます
  • 特定のデバイスから 128 KB を超えるデータが返されるように要求された場合。

    • たとえば、 CcmLog('ciagent', 120d) クエリが結果をログに記録し、128 KB の制限を超えている可能性があります。
    • 結果が 128 KB を超えると警告が表示されますが、結果はクライアントからサーバーに返されないため、エクスポートできません。

CMPivot からコミュニティ ハブで共有されている上位のクエリにアクセスする

バージョン 2103 以降では、オンプレミスの CMPivot からコミュニティ ハブで共有されている上位の CMPivot クエリにアクセスできます。 より広範なコミュニティで共有される事前に作成された CMPivot クエリを使用することで、CMPivot ユーザーはより幅広いクエリにアクセスできるようになります。 オンプレミスの CMPivot は、コミュニティ ハブにアクセスし、上位にダウンロードされた CMPivot クエリのリストを返します。 ユーザーは、上位のクエリを確認してカスタマイズし、オンデマンドで実行できます。 この機能強化により、クエリの選択肢の幅が広がり、構築しなくてもすぐに使用できるようになり、今後参照できるようにクエリを作成する方法に関する情報の共有も可能になります。

注:

これらのクエリは、Configuration Manager コンソールから CMPivot を実行するときに使用できます。 スタンドアロンの CMPivot からはまだ利用できません。

前提条件:

CMPivot を使用してコミュニティ ハブの上位クエリにアクセスする

  1. [ 資産とコンプライアンス] ワークスペースに移動し、[ デバイス コレクション] ノードを選択します。

  2. ターゲット コレクション、ターゲット デバイス、またはデバイスのグループを選択し、リボンの [CMPivot の起動 ] を選択してツールを起動します。

  3. メニューのコミュニティ ハブ アイコンを使用します。

    コミュニティ ハブ アイコン

  4. 上位の共有 CMPivot クエリの一覧を確認します。

    コミュニティ ハブからの上位の CMPivot クエリ

  5. 上位のクエリの 1 つを選択してクエリ ウィンドウに読み込みます。

  6. 必要に応じて クエリ を編集し、[ クエリの実行] を選択します。

  7. 必要に応じて、フォルダー アイコンを選択してお気に入りリストにアクセスします。 元のクエリまたは編集したバージョンをお気に入りリストに追加して、後で実行します。 別のクエリを検索するには、コミュニティ ハブ アイコンを選択します。

  8. CMPivot ウィンドウを開いたままにして、クライアントからの結果を表示します。 CMPivot ウィンドウを閉じると、セッションは完了です。 クエリが送信された場合でも、クライアントは状態メッセージ応答をサーバーに送信します。

バージョン 2006 の CMPivot の変更

バージョン 2006 より、CMPivot に対して次の機能強化が行われました。

  • CMPivot スタンドアロン と管理コンソールから起動した CMPivot が収束しました。 管理コンソールから CMPivot を起動すると、CMPivot スタンドアロンと同じ基盤テクノロジを使用してシナリオの同一性を提供します。

  • CMPivot でのキーボード ナビゲーションの機能強化。

  • デバイス コレクションを選択することなく、個々のデバイスまたはデバイス ノードから複数のデバイスから CMPivot を実行できます。 この機能強化により、ヘルプデスク ペルソナとして作業するユーザーなどは、事前に作成されたコレクションの外部にある特定のデバイスに対する CMPivot クエリを簡単に作成できるようになります。

    • 個々のデバイスまたはデバイス コレクション内の複数選択されたデバイスを選択するか、[ CMPivot の起動] を選択します。
  • クエリ リスト ビュー内にデバイスを返す場合は、1 つ以上のデバイスで [デバイス ピボット ] を選択し、それらのデバイスのみでピボットとクエリを選択してさらにドリルダウンできます。 この変更により、元のコレクションからデバイスのより大きなセットを照会することなく、ドリル インできます。 Device Pivotが Pivot に置き換えられました。

    • 既存の CMPivot 操作内で、出力から個々のデバイスまたは複数選択デバイスを選択します。 右クリックし、[ デバイス ピボット] オプションを使用してピボットします。 この操作により、選択したデバイスだけを対象とした別の CMPivot インスタンスが起動します。 これにより、コレクションを作成せずに、必要なデバイスのピボットとクエリを簡単に行うことができます。
  • 個々のデバイスに対して CMPivot を実行すると、ウィンドウの上部にデバイス名が表示されます。 複数のデバイスの場合、選択したデバイスの数がウィンドウの上部に表示されます。

  • CMPivot でコレクションに対してクエリを実行する必要がなくなったため、[クエリの概要] タブの [コレクションの作成 ] オプションが削除されました。 デバイス ピボットを実行して、クエリを実行するデバイスのみを対象とした CMPivot の新しいインスタンスを開きます。 [コレクションの作成] は、メイン メニューで引き続き利用できます。

CMPivot を使用した複数デバイスのデバイス ピボット

バージョン 2002 の CMPivot の変更

CMPivot エンティティの移動が簡単になりました。 Configuration Manager バージョン 2002 以降では、CMPivot エンティティを検索できます。 エンティティとエンティティ オブジェクトの種類を簡単に区別するための新しいアイコンも追加されました。

CMPivot エンティティの検索

バージョン 1910 の CMPivot の変更

バージョン 1910 以降、CMPivot は、ネットワーク トラフィックとサーバーの負荷を削減するために大幅に最適化されました。 さらに、トラブルシューティングとハンティングに役立つ多数のエンティティとエンティティの機能強化が追加されました。 バージョン 1910 の CMPivot には次の変更が導入されました。

CMPivot エンジンの最適化

ネットワーク トラフィックとサーバーの負荷を軽減するために、CMPivot は 1910 年に最適化されました。 多くのクエリ操作が、サーバーではなくクライアントで直接実行されるようになりました。 この変更は、一部の CMPivot 操作が最初のクエリから最小限のデータを返すことも意味します。 詳細情報を得るためにデータを掘り下げることにした場合は、新しいクエリが実行され、クライアントから追加のデータを取得する場合があります。 たとえば、以前は、"集計カウント" クエリを実行すると、大きなデータ セットがサーバーに返されました。 大規模なデータ セットを返すとすぐにドリルダウンできますが、多くの場合、集計された数のみが必要でした。 1910 年に、特定のクライアントにドリルダウンすることを選択すると、要求された追加データを返すために別のデータの収集が発生します。 この変更により、多数のクライアントに対するクエリのパフォーマンスとスケーラビリティが向上します。

CMPivot の最適化により、CMPivot クエリの実行に必要なネットワークとサーバーの CPU 負荷が大幅に軽減されます。 これらの最適化により、数ギガバイト規模のクライアント データをリアルタイムでふるいにかけることができるようになりました。 次のクエリは、これらの最適化を示しています。

  • 認証エラーがないか、エンタープライズ内のすべてのクライアントのすべてのイベント ログを検索します。

    EventLog('Security')
    | where  EventID == 4673
    | summarize count() by Device
    | order by count_ desc
    
  • ハッシュでファイルを検索します。

    Device
    | join kind=leftouter ( File('%windir%\\system32\\*.exe')
    | where SHA256Hash == 'A92056D772260B39A876D01552496B2F8B4610A0B1E084952FE1176784E2CE77')
    | project Device, MalwareFound = iif( isnull(FileName), 'No', 'Yes')
    

WinEvent(<logname>,[<timespan>])

このエンティティは、イベント ログとイベント トレース ログ ファイルからイベントを取得するために使用されます。 エンティティは、Windows イベント ログ テクノロジによって生成されるイベント ログからデータを取得します。 エンティティは、Windows イベント トレーシング (ETW) によって生成されたログ ファイルのイベントも取得します。 WinEvent は、既定で過去 24 時間以内に発生したイベントを見ます。 ただし、24 時間の既定値は、期間を含めることで上書きできます。

WinEvent('Microsoft-Windows-HelloForBusiness/Operational', 1d)
| where LevelDisplayName =='Error'
| summarize count() by Device

FileContent(<filename>)

FileContent は、テキスト ファイルの内容を取得するために使用されます。

FileContent('c:\\windows\\SMSCFG.ini')
| where Content startswith  'SMS Unique Identifier='
| project Device, SMSId= substring(Content,22)

ProcessModule(<processname>)

このエンティティは、特定のプロセスによって読み込まれたモジュール (dll) を列挙するために使用されます。 ProcessModule は、正規のプロセスに隠れているマルウェアを探す場合に便利です。

ProcessModule('powershell')
| summarize count() by ModuleName
| order by count_ desc

AadStatus

このエンティティを使用して、デバイスから現在の Microsoft Entra ID 情報を取得できます。

AadStatus
| project Device, IsAADJoined=iif( isnull(DeviceId),'No','Yes')
| summarize DeviceCount=count() by IsAADJoined
| render piechart

EPStatus

EPStatus を使用して、コンピューターにインストールされているマルウェア対策ソフトウェアの状態を取得します。

EPStatus
| project Device, QuickScanAge=datetime_diff('day',now(),QuickScanEndTime)
| summarize DeviceCount=count() by QuickScanAge
| order by QuickScanAge
| render barchart

CMPivot スタンドアロンを使用したローカル デバイス クエリの評価

Configuration Manager コンソールの外部で CMPivot を使用する場合は、Configuration Manager インフラストラクチャを必要とせずにローカル デバイスのみにクエリを実行できます。 CMPivot Azure Log Analytics クエリを利用して、ローカル デバイス上の WMI 情報をすばやく表示できるようになりました。 これにより、大規模な環境で実行する前に、CMPivot クエリの検証と絞り込みも可能になります。 CMPivot スタンドアロンは英語でのみ利用可能です。 CMPivot スタンドアロンの詳細については、「 CMPivot スタンドアロン」を参照してください。

ローカル デバイス クエリの評価に関する既知の問題

  • ロックダウンされた WMI クラスなど、アクセスできない WMI エンティティをこの PC で照会すると、CMPivot でクラッシュが発生することがあります。 これらのエンティティに対してクエリを実行するための昇格した特権を持つアカウントを使用して CMPivot を実行します。
  • この PC 上の非 WMI エンティティに対してクエリを実行すると、無効な名前空間またはあいまいな例外が表示されます。
  • 実行可能ファイルのパスから直接実行するのではなく、スタート メニューのショートカットから CMPivot をスタンドアロンで実行します。

その他の機能強化

  • 新しい like 演算子を使用して正規表現型のクエリを実行できます。 例:

    //Find BIOS manufacture that contains any word like Micro, such as Microsoft
    Bios
    | where Manufacturer like '%Micro%'
    
  • 既定で過去 24 時間のメッセージのみを見るように CcmLog() エンティティと EventLog() エンティティを更新しました。 この動作は、オプションのタイムスパンを渡すことでオーバーライドできます。 たとえば、次のクエリでは、過去 1 時間のイベントを調べます。

    CcmLog('Scripts',1h)
    
  • File() エンティティが更新され、非表示ファイルとシステム ファイルに関する情報を収集し、MD5 ハッシュを含めるようになりました。 MD5 ハッシュは SHA256 ハッシュほど正確ではありませんが、ほとんどのマルウェア速報で一般的に報告されるハッシュである傾向があります。

  • クエリにコメントを追加できます。 この動作は、クエリを共有する場合に便利です。 例:

    //Get the top ten devices sorted by user
    Device
    | top 10 by UserName
    
  • CMPivot は最後のサイトに自動的に接続します。 CMPivot を起動した後、必要に応じて新しいサイトに接続できます。

  • [ エクスポート] メニューから、[ クリップボードへのリンクをクエリ] の新しいオプションを選択します。 この操作により、他のユーザーと共有できるリンクがクリップボードにコピーされます。 例:

    cmpivot:Ly8gU2FtcGxlIHF1ZXJ5DQpPcGVyYXRpbmdTeXN0ZW0NCnwgc3VtbWFyaXplIGNvdW50KCkgYnkgQ2FwdGlvbg0KfCBvcmRlciBieSBjb3VudF8gYXNjDQp8IHJlbmRlciBiYXJjaGFydA==

    このリンクでは、次のクエリを使用して CMPivot スタンドアロンを開きます。

    // Sample query
    OperatingSystem
    | summarize count() by Caption
    | order by count_ asc
    | render barchart
    

    ヒント

    このリンクを機能させるには、 CMPivot スタンドアロンをインストールしてください。

  • クエリ結果で、デバイスが Microsoft Defender for Endpoint に登録されている場合は、デバイスを右クリックして Microsoft Defender セキュリティ センター オンライン ポータルを起動します。

バージョン 1910 の CMPivot の既知の問題

  • 上限に達すると、最大結果バナーが表示されない場合があります。
    • 各クライアントは、クエリあたり 128 KB 相当のデータに制限されます。
    • クエリの結果が 128 KB を超えると、結果が切り捨てられる場合があります。

バージョン 1906 の CMPivot の変更点

バージョン 1906 以降、次の項目が CMPivot に追加されました。

CMPivot での結合、演算子、および集計の追加

これで、追加の算術演算子、集計子、およびレジストリとファイルを一緒に使用するなどのクエリ結合を追加する機能が使用できるようになりました。 次の項目が追加されました。

テーブル演算子

テーブル演算子 説明
結合 同じデバイスの行を一致させて、2 つのテーブルの行をマージして新しいテーブルを作成する
render 結果をグラフィカル出力としてレンダリングします

レンダリング演算子は CMPivot に既に存在します。 複数系列のサポートと with ステートメントが追加されました。 詳細については、 セクションと Kusto の 結合演算子 の記事を参照してください。

結合の制限事項

  1. 結合列は常に Device フィールドで暗黙的に実行されます。
  2. クエリごとに最大 5 つの結合を使用できます。
  3. 最大 64 個の結合列を使用できます。

スカラー演算子

オペレーター 説明
+ 追加する 2 + 1, now() + 1d
- 減算 2 - 1, now() - 1d
* 乗算 2 * 2
/ 除算 2 / 1
% 剰余 2 % 1

集計関数

関数 説明
percentile() Expr によって定義される母集団の指定された最も近い順位の百分位数の推定値を返します。
sumif() 述語が true と評価される Expr の合計を返します。

スカラー関数

関数 説明
case() 述語のリストを評価し、述語が満たされた最初の結果式を返します
iff() 最初の引数を評価し、評価された述語が true (2 番目) か false (3 番目) かに応じて、2 番目または 3 番目の引数の値を返します
indexof() 関数は、入力文字列内の指定された文字列の最初の出現箇所の 0 から始まるインデックスを報告します。
strcat() 1 から 64 の引数を連結します
strlen() 入力文字列の長さ (文字数) を返します
substring() ソース文字列からインデックスから文字列末尾までの部分文字列を抽出します
tostring() 入力を文字列演算に変換します

  • デバイス、製造元、モデル、OS バージョンを表示する:

    ComputerSystem
    | project Device, Manufacturer, Model
    | join (OperatingSystem | project Device, OSVersion=Caption)
    
  • デバイスの起動時刻のグラフを表示する:

    SystemBootData
    | where Device == 'MyDevice'
    | project SystemStartTime, BootDuration, OSStart=EventLogStart, GPDuration, UpdateDuration
    | order by SystemStartTime desc
    | render barchart with (kind=stacked, title='Boot times for MyDevice', ytitle='Time (ms)')
    

    デバイスの起動時刻をミリ秒単位で表示する積み上げ横棒グラフ

セキュリティ管理者ロールに CMPivot アクセス許可を追加しました

バージョン 1906 以降、Configuration Manager の組み込みセキュリティ管理者ロールに次のアクセス許可が追加されています。

  • SMS スクリプトで読み取る
  • コレクションで CMPivot を実行する
  • 在庫レポートの読み取り

注:

スクリプトの実行は、CMPivot の実行アクセス許可のスーパー セットです。

CMPivot スタンドアロン

CMPivot はスタンドアロン アプリとして使用できます。 CMPivot スタンドアロンは英語でのみ利用可能です。 Configuration Manager コンソールの外部で CMPivot を実行して、環境内のデバイスのリアルタイム状態を表示します。 この変更により、最初に本体をインストールせずに、デバイスで CMPivot を使用できるようになります。

ヘルプデスクやセキュリティ管理者など、コンピューターにコンソールをインストールしていない他のペルソナと CMPivot の機能を共有できます。 これらの他のペルソナは、CMPivot を使用して、従来使用している他のツールと共に Configuration Manager にクエリを実行できます。 この豊富な管理データを共有することで、ロールを超えたビジネス上の問題を積極的に解決するために協力して取り組むことができます。

CMPivot をスタンドアロンでインストールする

  1. CMPivot を実行するために必要なアクセス許可を設定します。 詳細については、「 前提条件」を参照してください。 アクセス許可がユーザーに適切な場合は、 セキュリティ管理者ロール を使用することもできます。

  2. 次のパスで CMPivot アプリ インストーラーを見つけます。 <site install path>\tools\CMPivot\CMPivot.msi。 そのパスから実行することも、別の場所にコピーすることもできます。

  3. CMPivot スタンドアロン アプリを実行すると、サイトへの接続を求められます。 サーバーの全体管理またはプライマリ サイト サーバーの完全修飾ドメイン名またはコンピューター名を指定します。

    • CMPivot スタンドアロンを開くたびに、サイト サーバーに接続するように求められます。
  4. CMPivot を実行するコレクションを参照し、クエリを実行します。

    クエリを実行するコレクションを参照します

注:

  • スクリプトの実行リソース エクスプローラー、Web 検索などの右クリック操作は、CMPivot スタンドアロンでは使用できません。 CMPivot スタンドアロンの主な用途は、Configuration Manager インフラストラクチャから独立してクエリを実行することです。 セキュリティ管理者を支援するために、CMPivot スタンドアロンには Microsoft Defender セキュリティ センターに接続する機能が含まれています。
  • CMPivot スタンドアロンを使用して、ローカル デバイス クエリの評価を実行できます。

バージョン 1902 に対する CMPivot の変更点

Configuration Manager バージョン 1902 以降では、階層内のサーバーの全体管理サイト (CAS) から CMPivot を実行できます。 プライマリ サイトは、クライアントへの通信を引き続き処理します。 中央管理サイトから CMPivot を実行する場合、CMPivot は、高速メッセージ サブスクリプション チャネルを介してプライマリ サイトと通信します。 この通信は、サイト間の標準の SQL Server レプリケーションには依存しません。

CAS で CMPivot を実行するには、SQL Server または SMS プロバイダーが同じコンピューター上にない場合、または可用性グループが構成されている場合SQL Server Always On追加のアクセス許可が必要です。 これらのリモート構成では、CMPivot の "ダブル ホップ シナリオ" ができます。

このような "ダブル ホップ シナリオ" で CMPivot を CAS で動作させるには、制約付き委任を定義できます。 この構成のセキュリティへの影響を理解するには、 Kerberos の制約付き委任 に関する記事を参照してください。 Kerberos は、マシン間のすべてのホップを処理する必要があります。 SQL Server または SMS プロバイダーが CAS と併置されているかどうかなど、複数のリモート構成がある場合、または複数の信頼されたフォレストがある場合は、アクセス許可設定の組み合わせが必要になる場合があります。 必要な手順を次に示します。

CAS にはリモートの SQL Server がある

  1. 各プライマリ サイトの SQL Server に移動します。

    1. CAS リモート SQL Serverと CAS サイト サーバーをConfigmgr_DviewAccessグループに追加します。 プライマリ サイトのSQL Server Configmgr_DviewAccessグループ
  2. [Active Directory ユーザーとコンピューター] に移動します。

    1. プライマリ サイト サーバーごとに、右クリックして [プロパティ] を選択します。
      1. [委任] タブで、3 番目のオプション [ 指定したサービスへの委任についてのみ、このコンピューターを信頼する] を選択します。
      2. [ Kerberos のみを使用する] を選択します。
      3. ポートとインスタンスを備えた CAS の SQL Server サービスを追加します。
      4. これらの変更が会社のセキュリティ ポリシーと一致していることを確認してください。
    2. CAS サイトの場合は、右クリックして [プロパティ] を選択します。
      1. [委任] タブで、3 番目のオプション [ 指定したサービスへの委任についてのみ、このコンピューターを信頼する] を選択します。
      2. [ Kerberos のみを使用する] を選択します。
      3. ポートとインスタンスを含む各プライマリ サイトの SQL Server サービスを追加します。
      4. これらの変更が会社のセキュリティ ポリシーと一致していることを確認してください。

    ダブル ホップの CMPivot AD 委任の例

CAS にはリモート プロバイダーがある

  1. 各プライマリ サイトの SQL Server に移動します。
    1. CAS プロバイダー コンピューター アカウントと CAS サイト サーバーを Configmgr_DviewAccess グループに追加します。
  2. [Active Directory ユーザーとコンピューター] に移動します。
    1. CAS プロバイダー コンピューターを選択し、右クリックして [プロパティ] を選択します。
      1. [委任] タブで、3 番目のオプション [ 指定したサービスへの委任についてのみ、このコンピューターを信頼する] を選択します。
      2. [ Kerberos のみを使用する] を選択します。
      3. ポートとインスタンスを含む各プライマリ サイトの SQL Server サービスを追加します。
      4. これらの変更が会社のセキュリティ ポリシーと一致していることを確認してください。
    2. CAS サイト サーバーを選択し、右クリックして [ プロパティ] を選択します。
      1. [委任] タブで、3 番目のオプション [ 指定したサービスへの委任についてのみ、このコンピューターを信頼する] を選択します。
      2. [ Kerberos のみを使用する] を選択します。
      3. ポートとインスタンスを含む各プライマリ サイトの SQL Server サービスを追加します。
      4. これらの変更が会社のセキュリティ ポリシーと一致していることを確認してください。
  3. CAS リモート プロバイダー マシンを再起動します。

SQL Server Always On可用性グループ

  1. 各プライマリ サイトの SQL Server に移動します。
    1. CAS サイト サーバーを Configmgr_DviewAccess グループに追加します。
  2. [Active Directory ユーザーとコンピューター] に移動します。
    1. プライマリ サイト サーバーごとに、右クリックして [プロパティ] を選択します。
      1. [委任] タブで、3 番目のオプション [ 指定したサービスへの委任についてのみ、このコンピューターを信頼する] を選択します。
      2. [ Kerberos のみを使用する] を選択します。
      3. ポートとインスタンスを持つ SQL Server ノード用の CAS の SQL Server サービス アカウントを追加します。
      4. これらの変更が会社のセキュリティ ポリシーと一致していることを確認してください。
    2. CAS サイト サーバーを選択し、右クリックして [ プロパティ] を選択します。
      1. [委任] タブで、3 番目のオプション [ 指定したサービスへの委任についてのみ、このコンピューターを信頼する] を選択します。
      2. [ Kerberos のみを使用する] を選択します。
      3. ポートとインスタンスを含む各プライマリ サイトの SQL Server サービスを追加します。
      4. これらの変更が会社のセキュリティ ポリシーと一致していることを確認してください。
  3. CAS リスナー名と各プライマリ リスナー名に対して SPN が公開され ていることを確認します。
  4. プライマリ SQL Server ノードを再起動します。
  5. CAS サイト サーバーと CAS SQL Server ノードを再起動します。

バージョン 1810 の CMPivot の変更

CMPivot には、Configuration Manager バージョン 1810 以降、次の機能強化が含まれています。

CMPivot のユーティリティとパフォーマンス

  • CMPivot は、20,000 行ではなく、最大 100,000 セルを返します。

    • エンティティに 5 つのプロパティ (つまり 5 つの列) がある場合、最大 20,000 行が表示されます。
    • 10 個のプロパティを持つエンティティの場合、最大 10,000 行が表示されます。
    • 表示されるデータの合計は 100,000 セル以下になります。
  • [クエリの概要] タブで、失敗したデバイスまたはオフライン デバイスの数を選択し、[ コレクションの作成] オプションを選択します。 このオプションを使用すると、修復デプロイでそれらのデバイスを簡単にターゲットにすることができます。

    • CMPivot でコレクションに対してクエリを実行する必要がなくなったため、このオプションはバージョン 2006 で削除されました。
  • フォルダー アイコンをクリックして、 お気に入りの クエリを保存します。 CMPivot でお気に入りのクエリを保存する例

  • 1810 バージョンに更新されたクライアントは、高速通信チャネルを介して 80 KB 未満の出力をサイトに返します。

    • この変更により、スクリプトまたはクエリ出力を表示する際のパフォーマンスが向上します。
    • スクリプトまたはクエリの出力が 80 KB を超える場合、クライアントは状態メッセージを介してデータを送信します。
    • クライアントが 1810 クライアント バージョンに更新されていない場合、状態メッセージが引き続き使用されます。
  • CMPivot を起動すると、次のエラーが表示される場合があります。 互換性のないスクリプト バージョンのため、現在 CMPivot を使用できません。この問題は、階層がサイトをアップグレード中であることが原因である可能性があります。アップグレードが完了するまで待ってから、もう一度やり直してください。

    • このメッセージが表示された場合は、次のような意味である可能性があります。
      • セキュリティ スコープが正しく設定されていません。
      • アップグレード処理中に問題があります。
      • 基になる CMPivot スクリプトに互換性がありません。

スカラー関数

CMPivot は、次のスカラー関数をサポートします。

  • ago(): 指定された期間を現在の UTC クロック時刻から減算します
  • datetime_diff(): 2 つの日時値間のカレンダーの差を計算します
  • now(): 現在の UTC クロック時刻を返します
  • bin(): 値を指定されたビン サイズの整数倍に切り捨てます

注:

datetime データ型は、通常、日付と時刻として表される瞬間を表します。 時刻の値は 1 秒単位で測定されます。 datetime 値は常に UTC タイム ゾーンにあります。 日時リテラルを常に ISO 8601 形式で表現します (例: yyyy-mm-dd HH:MM:ss

  • datetime(2015-12-31 23:59:59.9): 特定の日時リテラル
  • now(): 現在の時刻
  • ago(1d): 現在の時刻から 1 日を引いた値

視覚エフェクトのレンダリング

CMPivot には、KQL レンダー オペレーターの基本的なサポートが含まれるようになりました。 このサポートには、次の種類が含まれます。

  • バーチャート: 最初の列は x 軸で、テキスト、日時、または数値を使用できます。 2 番目の列は数値である必要があり、水平帯として表示されます。
  • columnchart: 横方向の帯ではなく縦帯を使用した横棒グラフに似ています。
  • 円グラフ: 最初の列は色軸、2 番目の列は数値です。
  • timechart: 折れ線グラフ。 最初の列は x 軸で、datetime にする必要があります。 2 番目の列は Y 軸です。

例: 横棒グラフ

次のクエリは、最近使用したアプリケーションを棒グラフとしてレンダリングします。

CCMRecentlyUsedApplications
| summarize dcount( Device ) by ProductName
| top 10 by dcount_
| render barchart

CMPivot 棒グラフの視覚化の例

例: 時間グラフ

時間グラフを表示するには、新しい bin() 演算子を使用して、イベントを時間内でグループ化します。 次のクエリは、過去 7 日間にデバイスがいつ起動されたかを示します。

OperatingSystem
| where LastBootUpTime <= ago(7d)
| summarize count() by bin(LastBootUpTime,1d)
| render timechart

CMPivot タイム チャートの視覚化の例

例: 円グラフ

次のクエリでは、すべての OS バージョンが円グラフに表示されます。

OperatingSystem
| summarize count() by Caption
| render piechart

CMPivot 円グラフの視覚化の例

ハードウェア インベントリ

CMPivot を使用して、ハードウェア インベントリ クラスのクエリを実行します。 これらのクラスには、ハードウェア インベントリに対して行ったカスタム拡張機能が含まれます。 CMPivot は、サイト データベースに保存されている最後のハードウェア インベントリ スキャンのキャッシュされた結果をすぐに返します。 同時に、必要に応じて、オンライン クライアントからのライブ データを使用して結果を更新します。

結果テーブルまたはグラフのデータの色の彩度は、データがライブかキャッシュかを示します。 たとえば、濃い青はオンライン クライアントからのリアルタイム データです。 水色はキャッシュ データです。

LogicalDisk
| summarize sum( FreeSpace ) by Device
| order by sum_ desc
| render columnchart

縦棒グラフの視覚化を使用した CMPivot 在庫クエリの例

制限事項

  • 次のハードウェア インベントリ エンティティはサポートされていません。
    • 配列プロパティ (IP アドレスなど)
    • Real32/Real64
    • 埋め込みオブジェクトのプロパティ
  • インベントリ エンティティ名は文字で始まる必要があります
  • 同じ名前のインベントリ エンティティを作成して組み込みエンティティを上書きすることはできません

スカラー演算子

CMPivot には、次のスカラー演算子が含まれています。

注:

  • LHS: 演算子の左側の文字列
  • RHS: 演算子の右側の文字列
オペレーター 説明 例 (true を生成)
== 等しい "aBc" == "aBc"
!= 等しくない "abc" != "ABC"
LHS には RHS の一致が含まれています "FabriKam" like "%Brik%"
!like LHS には RHS の一致がありません "Fabrikam" !like "%xyz%"
contains RHS は LHS のサブシーケンスとして発生します "FabriKam" contains "BRik"
!contains RHS が LHS で発生しない "Fabrikam" !contains "xyz"
startswith RHS は LHS の初期サブシーケンスです "Fabrikam" startswith "fab"
!startswith RHS は LHS の初期サブシーケンスではありません "Fabrikam" !startswith "kam"
endswith RHS は LHS の終了サブシーケンスです "Fabrikam" endswith "Kam"
!endswith RHS は LHS の終了サブシーケンスではありません "Fabrikam" !endswith "brik"

クエリの概要

CMPivot ウィンドウの下部にある [ クエリ の概要] タブを選択します。 この状態は、オフラインのクライアントを識別したり、発生する可能性のあるエラーのトラブルシューティングを行ったりするのに役立ちます。 [数] 列の値を選択すると、その状態の特定のデバイスの一覧が開きます。

たとえば、エラー状態が [デバイス] の数を選択します。 特定のエラー メッセージを表示し、これらのデバイスの一覧をエクスポートします。 特定のコマンドレットを認識できないというエラーが発生した場合は、エクスポートされたデバイス リストからコレクションを作成して、Windows PowerShell 更新プログラムを展開します。

CMPivot の監査状態メッセージ

バージョン 1810 以降、CMPivot を実行すると、 MessageID 40805 の監査状態メッセージが作成されます。 ステータスメッセージを表示するには、[監視]>[システムステータス]>[ステータスメッセージクエリ]に移動します。 特定のユーザーのすべての監査ステータスメッセージ、特定のサイトのすべての監査ステータスメッセージ、または独自のステータスメッセージクエリを実行できます。

メッセージには、次の形式が使用されます。

メッセージ ID 40805: ユーザー <ユーザー名> が、コレクション <Collection-ID> に対してハッシュ <Script-Hash>> を使用してスクリプト <Script-Guid を実行しました。

  • 7DC6B6F1-E7F6-43C1-96E0-E1D16BC25C14 は CMPivot の Script-Guid です。
  • Script-Hash はクライアントのscripts.logファイルで確認できます。
  • クライアントのスクリプト ストアに格納されているハッシュも確認できます。 クライアントのファイル名は <Script-Guid>_<Script-Hash> です。
    • ファイル名の例: C:\Windows\CCM\ScriptStore\7DC6B6F1-E7F6-43C1-96E0-E1D16BC25C14_abc1d23e45678901fabc123d456ce789fa1b2cd3e456789123fab4c56789d0123.ps

CMPivot 監査状態メッセージのサンプル

次の手順

CMPivot のトラブルシューティング