Microsoft Defender ウイルス対策のパフォーマンス アナライザー

適用対象

プラットフォーム

  • Windows

要件

Microsoft Defenderウイルス対策パフォーマンス アナライザーには、次の前提条件があります。

  • サポートされている Windows バージョン: 最新の統合ソリューションとWindows Server 2016以上のWindows 10、Windows 11、Windows 2012 R2
  • プラットフォーム のバージョン: 4.18.2108.7 以降
  • PowerShell バージョン: PowerShell バージョン 5.1、PowerShell ISE、リモート PowerShell (4.18.2201.10 以降)、PowerShell 7.x (4.18.2201.10 以降)

ウイルス対策パフォーマンス アナライザー Microsoft Defenderとは

Microsoft Defenderウイルス対策を実行しているコンピューターでパフォーマンスの問題が発生している場合は、パフォーマンス アナライザーを使用して、Microsoft Defender ウイルス対策のパフォーマンスを向上させることができます。 Windows 10、Windows 11、Windows Server の Microsoft Defender ウイルス対策のパフォーマンス アナライザーは、ウイルス対策スキャン中に個々のエンドポイントでパフォーマンスの問題を引き起こす可能性があるファイル、ファイル拡張子、およびプロセスを特定するのに役立つ PowerShell コマンド ライン ツールです。 パフォーマンス アナライザーによって収集された情報を使用して、パフォーマンスの問題を評価し、修復アクションを適用できます。

パフォーマンスアナライザーは、パフォーマンスの問題がある車両で診断とサービスを実行する方法と同様に、Defender ウイルス対策のパフォーマンスを向上させるのに役立ちます。

Microsoft Defender ウイルス対策の概念パフォーマンス アナライザー イメージ。この図は、Microsoft Defenderパフォーマンス アナライザー、Defender パフォーマンス アナライザー、Get-MpPerformanceRepor、New-MpPerformanceRecording、windows Defender、microsoft Defender、microsoft Windows 10、microsoft Defender ウイルス対策、マイクロ ソフト ウィンドウ 11、Windows ウイルス対策、Microsoft ウイルス対策、windows Defender ウイルス対策、Windows 10ウイルス対策、microsoft windows Defender、パフォーマンスに関連しています。Windows。

分析するオプションには、次のようなものがあります。

  • スキャン時間に影響を与える上位パス
  • スキャン時間に影響を与える上位のファイル
  • スキャン時間に影響を与える上位のプロセス
  • スキャン時間に影響を与える上位のファイル拡張子
  • 組み合わせ – 例:
    • 拡張子ごとに上位のファイル
    • 拡張機能ごとの上位パス
    • パスあたりの上位プロセス数
    • ファイルあたりの上位スキャン数
    • プロセスごとのファイルあたりの上位スキャン数

パフォーマンス アナライザーの実行

パフォーマンス アナライザーを実行するための高度なプロセスには、次の手順が含まれます。

  1. パフォーマンス アナライザーを実行して、エンドポイントでMicrosoft Defenderウイルス対策イベントのパフォーマンス記録を収集します。

    注:

    Microsoft-マルウェア対策エンジンの種類のMicrosoft Defenderウイルス対策イベントのパフォーマンスは、パフォーマンス アナライザーを通じて記録されます。

  2. さまざまな記録レポートを使用してスキャン結果を分析します。

パフォーマンス アナライザーの使用

システム イベントの記録を開始するには、管理モードで PowerShell を開き、次の手順を実行します。

  1. 次のコマンドを実行して、記録を開始します。

    New-MpPerformanceRecording -RecordTo <recording.etl>
    

    where -RecordTo parameter は、トレース ファイルを保存する完全なパスの場所を指定します。 コマンドレットの詳細については、「ウイルス対策コマンドレットのMicrosoft Defender」を参照してください。

  2. パフォーマンスに影響を与えると考えられるプロセスまたはサービスがある場合は、関連するタスクを実行して状況を再現します。

  3. Enter キーを押して記録を停止して保存するか、Ctrl + C キーを押して記録を取り消します。

  4. パフォーマンス アナライザーのパラメーターを使用して結果を Get-MpPerformanceReport 分析します。 たとえば、 コマンド Get-MpPerformanceReport -Path <recording.etl> -TopFiles 3 -TopScansPerFile 10を実行すると、パフォーマンスに影響を与える上位 3 つのファイルの上位 10 個のスキャンの一覧がユーザーに提供されます。

コマンド ライン パラメーターとオプションの詳細については、 New-MpPerformanceRecordingGet-MpPerformanceReport を参照してください。

注:

記録を実行するときに、"Windows パフォーマンス レコーダーが既に記録されているため、パフォーマンス記録を開始できません" というエラーが発生した場合は、次のコマンドを実行して、新しいコマンドで既存のトレースを停止します。 wpr -cancel -instancename MSFT_MpPerformanceRecording

パフォーマンス チューニング データと情報

クエリに基づいて、ユーザーはスキャン数、期間 (total/min/average/max/median)、パス、プロセス、 およびスキャン理由のデータを表示できます。 次の図は、スキャンの影響を受ける上位 10 個のファイルの単純なクエリの出力例を示しています。

基本的な TopFiles クエリの出力例

その他の機能: CSV と JSON へのエクスポートと変換

パフォーマンス アナライザーの結果は、CSV または JSON ファイルにエクスポートして変換することもできます。 サンプル コードを使用した "エクスポート" と "変換" のプロセスについて説明する例については、次のセクションを参照してください。

Defender バージョン 4.18.2206.X以降では、ユーザーは [SkipReason] 列でスキャンスキップの理由情報を表示できます。 値は次のいずれかです。

  • スキップされない
  • 最適化 (通常はパフォーマンス上の理由による)
  • ユーザーがスキップされました (通常、ユーザー セットの除外が原因)

CSV の場合

  • エクスポートするには:
(Get-MpPerformanceReport -Path .\Repro-Install.etl -Topscans 1000).TopScans | Export-CSV -Path .\Repro-Install-Scans.csv -Encoding UTF8 -NoTypeInformation
  • 変換するには:
(Get-MpPerformanceReport -Path .\Repro-Install.etl -Topscans 100).TopScans | ConvertTo-Csv -NoTypeInformation

JSON の場合

  • 変換するには:
(Get-MpPerformanceReport -Path .\Repro-Install.etl -Topscans 1000).TopScans | ConvertTo-Json -Depth 1

他のデータ処理システムと共にエクスポートするためのマシン読み取り可能な出力を確保するには、 のGet-MpPerformanceReportパラメーターを使用-Rawすることをお勧めします。 詳細については、次のセクションを参照してください。

PowerShell リファレンス

Microsoft Defender ウイルス対策のパフォーマンスを調整するために使用される 2 つの新しい PowerShell コマンドレットがあります。

New-MpPerformanceRecording

次のセクションでは、新しい PowerShell コマンドレット New-MpPerformanceRecording のリファレンスについて説明します。 このコマンドレットは、Microsoft Defenderウイルス対策スキャンのパフォーマンス記録を収集します。

構文: New-MpPerformanceRecording

New-MpPerformanceRecording -RecordTo <String>

説明: New-MpPerformanceRecording

コマンドレットはNew-MpPerformanceRecording、Microsoft Defenderウイルス対策スキャンのパフォーマンス記録を収集します。 これらのパフォーマンス記録には、Microsoft-マルウェア対策エンジンと NT カーネル プロセス イベントが含まれており、 Get-MpPerformanceReport コマンドレットを使用して収集後に分析できます。

このNew-MpPerformanceRecordingコマンドレットは、Microsoft Defenderウイルス対策のパフォーマンスの低下を引き起こす可能性がある問題のあるファイルに関する分析情報を提供します。 このツールは "AS IS" で提供され、除外に関する提案を提供するものではありません。 除外により、エンドポイントの保護レベルが低下する可能性があります。 除外がある場合は、慎重に定義する必要があります。

パフォーマンス アナライザーの詳細については、「パフォーマンス アナライザー ドキュメント」を参照してください。

Important

このコマンドレットには管理者特権が必要です。

例: New-MpPerformanceRecording

例 1: パフォーマンス記録を収集して保存する
New-MpPerformanceRecording -RecordTo .\Defender-scans.etl

上記のコマンドは、パフォーマンス記録を収集し、指定されたパス (.\Defender-scans.etl) に保存します。

例 2: リモート PowerShell セッションのパフォーマンス記録を収集する
$s = New-PSSession -ComputerName Server02 -Credential Domain01\User01
New-MpPerformanceRecording -RecordTo C:\LocalPathOnServer02\trace.etl -Session $s

上記のコマンドは、Server02 でパフォーマンス記録を収集し (パラメーター Session の引数 $sで指定)、指定したパス C:\LocalPathOnServer02\trace.etl on Server02 に保存します。

パラメーター: New-MpPerformanceRecording

-RecordTo

Microsoft Defenderマルウェア対策のパフォーマンス記録を保存する場所を指定します。

Type: String
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-セッション

Microsoft Defenderウイルス対策のパフォーマンス記録を作成して保存する PSSession オブジェクトを指定します。 このパラメーターを使用すると、RecordTo パラメーターはリモート コンピューター上のローカル パスを参照します。 Defender プラットフォーム バージョン 4.18.2201.10 で使用できます。

Type: PSSession[]
Position: 0
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Get-MpPerformanceReport

次のセクションでは、Get-MpPerformanceReport PowerShell コマンドレットについて説明します。 Microsoft Defenderウイルス対策のパフォーマンス記録に関する分析とレポート。

構文: Get-MpPerformanceReport

Get-MpPerformanceReport [-Path] <String>
    [-TopScans [<Int32>]]
    [-TopPaths [<Int32>] [-TopPathsDepth [<Int32>]]]
            [-TopScansPerPath [<Int32>]]
            [-TopFilesPerPath [<Int32>]
                    [-TopScansPerFilePerPath [<Int32>]]
                    ]
            [-TopExtensionsPerPath [<Int32>]
                    [-TopScansPerExtensionPerPath [<Int32>]]
                    ]
            [-TopProcessesPerPath [<Int32>]
                    [-TopScansPerProcessPerPath [<Int32>]]
                    ]
            ]
    [-TopFiles [<Int32>]
            [-TopScansPerFile [<Int32>]]
            [-TopProcessesPerFile [<Int32>]
                    [-TopScansPerProcessPerFile [<Int32>]]
                    ]
            ]
    [-TopExtensions [<Int32>]
            [-TopScansPerExtension [<Int32>]
            [-TopPathsPerExtension [<Int32>] [-TopPathsDepth [<Int32>]]
                    [-TopScansPerPathPerExtension [<Int32>]]
                    ]
            [-TopProcessesPerExtension [<Int32>]
                    [-TopScansPerProcessPerExtension [<Int32>]]
                    ]
            [-TopFilesPerExtension [<Int32>]
                    [-TopScansPerFilePerExtension [<Int32>]]
                    ]
            ]
    [-TopProcesses [<Int32>]
            [-TopScansPerProcess [<Int32>]]
            [-TopExtensionsPerProcess [<Int32>]
                    [-TopScansPerExtensionPerProcess [<Int32>]]
                    ]
            [-TopPathsPerProcess [<Int32>] [-TopPathsDepth [<Int32>]]
                    [-TopScansPerPathPerProcess [<Int32>]]
                    ]
            [-TopFilesPerProcess [<Int32>]
                    [-TopScansPerFilePerProcess [<Int32>]]
                    ]
            ]
    [-MinDuration <String>]
    [-Raw]

説明: Get-MpPerformanceReport

コマンドレットはGet-MpPerformanceReport、以前に収集したMicrosoft Defenderウイルス対策のパフォーマンス記録 (New-MpPerformanceRecording) を分析し、ウイルス対策スキャンに最も大きな影響を与えるファイル パス、ファイル拡張子、プロセスMicrosoft Defender報告します。

パフォーマンス アナライザーは、Microsoft Defenderウイルス対策のパフォーマンスの低下を引き起こす可能性がある問題のあるファイルに関する分析情報を提供します。 このツールは "AS IS" で提供され、除外に関する提案を提供するものではありません。 除外により、エンドポイントの保護レベルが低下する可能性があります。 除外がある場合は、慎重に定義する必要があります。

パフォーマンス アナライザーの詳細については、「パフォーマンス アナライザー ドキュメント」を参照してください。

サポートされている OS バージョン:

Windows バージョン 10 以降。

注:

この機能は、プラットフォーム バージョン 4.18.2108.X 以降で使用できます。

例: Get-MpPerformanceReport

例 1: 単一クエリ
Get-MpPerformanceReport -Path .\Defender-scans.etl -TopScans 20
例 2: 複数のクエリ
Get-MpPerformanceReport -Path .\Defender-scans.etl -TopFiles 10 -TopExtensions 10 -TopProcesses 10 -TopScans 10
例 3: 入れ子になったクエリ
Get-MpPerformanceReport -Path .\Defender-scans.etl -TopProcesses 10 -TopExtensionsPerProcess 3 -TopScansPerExtensionPerProcess 3
例 4: -MinDuration パラメーターの使用
Get-MpPerformanceReport -Path .\Defender-scans.etl -TopScans 100 -MinDuration 100ms
例 5: -Raw パラメーターの使用
Get-MpPerformanceReport -Path .\Defender-scans.etl -TopFiles 10 -TopExtensions 10 -TopProcesses 10 -TopScans 10 -Raw | ConvertTo-Json

上記のコマンドで -Raw を使用すると、出力をマシンで読み取り可能で、JSON などのシリアル化形式にすぐに変換できます。

パラメーター: Get-MpPerformanceReport

-TopPaths

上位パス レポートを要求し、出力する上位パスの数を [期間] で並べ替えて指定します。 パスとディレクトリに基づいてスキャンを集計します。 ユーザーは、各レベルに表示するディレクトリの数と選択範囲の深さを指定できます。

- Type: Int32
- Position: Named
- Default value: None
- Accept pipeline input: False
- Accept wildcard characters: False
-TopPathsDepth

集計されたパスの結果をグループ化して表示するために使用される再帰的な深さを指定します。 たとえば、"C:" は深度 1 に対応し、"C:\Users\Foo" は深度 3 に対応します。

このフラグは、他のすべてのトップ パス オプションと共に使用できます。 存在しない場合、既定値は 3 と見なされます。 値を 0 にすることはできません。

- Type: Int32
- Position: Named
- Default value: 3
- Accept pipeline input: False
- Accept wildcard characters: False
flag definition
-TopScansPerPath 各上位パスに対して指定する上位スキャンの数を指定します。
-TopFilesPerPath 各トップ パスに指定する上位ファイルの数を指定します。
-TopScansPerFilePerPath 上位パスごとに上位ファイルごとに出力する上位スキャンの数を、"Duration" で並べ替えて指定します。
-TopExtensionsPerPath 上位パスごとに出力する上位拡張機能の数を指定します
-TopScansPerExtensionPerPath 各トップ パスの上位拡張機能ごとに出力する上位スキャンの数を指定します
-TopProcessesPerPath 上位パスごとに出力する上位プロセスの数を指定します
-TopScansPerProcessPerPath 上位パスごとに上位プロセスごとに出力する上位スキャンの数を指定します
-TopPathsPerExtension 上位の拡張機能ごとに出力する上位パスの数を指定します
-TopScansPerPathPerExtension 上位の拡張子ごとに上位パスごとに出力する上位スキャンの数を指定します
-TopPathsPerProcess 上位プロセスごとに出力する上位パスの数を指定します
-TopScansPerPathPerProcess 各上位プロセスの上位パスごとに出力する上位スキャンの数を指定します
-MinDuration

レポートに含まれるファイル、拡張機能、プロセスのスキャンまたはスキャンの合計期間の最小期間を指定します。は 、0.1234567sec0.1234ms0.1us、または有効な TimeSpan などの値を受け取ります。

Type: String
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-パス

1 つ以上の場所へのパスまたはパスを指定します。

Type: String
Position: 0
Default value: None
Accept pipeline input: True
Accept wildcard characters: False
-生

パフォーマンス記録の出力をマシンで読み取り可能で、JSON などのシリアル化形式にすぐに変換できるようにする必要があることを指定します (たとえば、Convert-to-JSON コマンドを使用)。 この構成は、他のデータ処理システムとのバッチ処理に関心があるユーザーに推奨されます。

Type: <SwitchParameter>
Position: Named
Default value: False
Accept pipeline input: False
Accept wildcard characters: False
-TopExtensions

出力する上位の拡張機能の数を [期間] で並べ替えて指定します。

Type: Int32
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-TopExtensionsPerProcess

上位プロセスごとに出力する上位拡張機能の数を指定します。期間で並べ替えられます。

Type: Int32
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-TopFiles

上位ファイル レポートを要求し、出力する上位ファイルの数を [期間] で並べ替えて指定します。

Type: Int32
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-TopFilesPerExtension

上位の拡張子ごとに出力する上位ファイルの数を[期間]で並べ替えて指定します。

Type: Int32
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-TopFilesPerProcess

各上位プロセスに出力する上位ファイルの数を[期間]で並べ替えて指定します。

Type: Int32
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-TopProcesses

上位プロセス レポートを要求し、出力する上位プロセスの数を Duration で並べ替えて指定します。

Type: Int32
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-TopProcessesPerExtension

上位の拡張機能ごとに出力する上位プロセスの数を [期間] で並べ替えて指定します。

Type: Int32
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-TopProcessesPerFile

上位ファイルごとに出力する上位プロセスの数を、期間で並べ替えて指定します。

Type: Int32
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-TopScans

上位スキャン レポートを要求し、出力する上位スキャンの数を [期間] で並べ替えて指定します。

Type: Int32
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-TopScansPerExtension

上位の拡張機能ごとに出力する上位スキャンの数を [期間] で並べ替えて指定します。

Type: Int32
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-TopScansPerExtensionPerProcess

各上位プロセスの各上位拡張機能に対して出力する上位スキャンの数を[期間]で並べ替えて指定します。

Type: Int32
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-TopScansPerFile

上位ファイルごとに出力する上位スキャンの数を[期間]で並べ替えて指定します。

Type: Int32
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-TopScansPerFilePerExtension

上位の拡張子ごとに上位ファイルごとに出力する上位スキャンの数を[期間]で並べ替えて指定します。

Type: Int32
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-TopScansPerFilePerProcess

各上位プロセスの各上位ファイルの出力に対する上位スキャンの数を[期間]で並べ替え、指定します。

Type: Int32
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-TopScansPerProcess

[上位プロセス] レポートの上位プロセスごとに出力する上位スキャンの数を [期間] で並べ替えて指定します。

Type: Int32
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-TopScansPerProcessPerExtension

上位の拡張機能ごとに上位プロセスごとの出力の上位スキャンの数を指定します。期間で並べ替えられます。

Type: Int32
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-TopScansPerProcessPerFile

各上位ファイルの各上位プロセスの出力に対する上位スキャンの数を[期間]で並べ替え、指定します。

Type: Int32
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

その他のリソース

他のプラットフォームのウイルス対策関連の情報をお探しの場合は、次を参照してください。

ヒント

さらに多くの情報を得るには、 Tech Community 内の Microsoft Security コミュニティ (Microsoft Defender for Endpoint Tech Community) にご参加ください。