Microsoft Defender ウイルス対策のパフォーマンス アナライザー
適用対象
- Microsoft Defender for Endpoint Plan 1
- Microsoft Defender for Endpoint Plan 2
- 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-マルウェア対策エンジンの種類のMicrosoft Defenderウイルス対策イベントのパフォーマンスは、パフォーマンス アナライザーを通じて記録されます。
さまざまな記録レポートを使用してスキャン結果を分析します。
パフォーマンス アナライザーの使用
システム イベントの記録を開始するには、管理モードで PowerShell を開き、次の手順を実行します。
次のコマンドを実行して、記録を開始します。
New-MpPerformanceRecording -RecordTo <recording.etl>
where
-RecordTo
parameter は、トレース ファイルを保存する完全なパスの場所を指定します。 コマンドレットの詳細については、「ウイルス対策コマンドレットのMicrosoft Defender」を参照してください。パフォーマンスに影響を与えると考えられるプロセスまたはサービスがある場合は、関連するタスクを実行して状況を再現します。
Enter キーを押して記録を停止して保存するか、Ctrl + C キーを押して記録を取り消します。
パフォーマンス アナライザーのパラメーターを使用して結果を
Get-MpPerformanceReport
分析します。 たとえば、 コマンドGet-MpPerformanceReport -Path <recording.etl> -TopFiles 3 -TopScansPerFile 10
を実行すると、パフォーマンスに影響を与える上位 3 つのファイルの上位 10 個のスキャンの一覧がユーザーに提供されます。
コマンド ライン パラメーターとオプションの詳細については、 New-MpPerformanceRecording と Get-MpPerformanceReport を参照してください。
注:
記録を実行するときに、"Windows パフォーマンス レコーダーが既に記録されているため、パフォーマンス記録を開始できません" というエラーが発生した場合は、次のコマンドを実行して、新しいコマンドで既存のトレースを停止します。 wpr -cancel -instancename MSFT_MpPerformanceRecording
パフォーマンス チューニング データと情報
クエリに基づいて、ユーザーはスキャン数、期間 (total/min/average/max/median)、パス、プロセス、 およびスキャン理由のデータを表示できます。 次の図は、スキャンの影響を受ける上位 10 個のファイルの単純なクエリの出力例を示しています。
その他の機能: 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.1234567sec、 0.1234ms、 0.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
その他のリソース
他のプラットフォームのウイルス対策関連の情報をお探しの場合は、次を参照してください。
- macOS 上で Microsoft Defender for Endpoint 用の基本設定を設定する
- Mac 用 Microsoft Defender for Endpoint
- Intune の Microsoft Defender ウイルス対策の macOS ウイルス対策ポリシー設定
- Linux 上で Microsoft Defender for Endpoint 用の基本設定を設定する
- Linux 用 Microsoft Defender for Endpoint
- Android の機能で Defender for Endpoint を構成する- iOS 機能でMicrosoft Defender for Endpointを構成する
ヒント
さらに多くの情報を得るには、 Tech Community 内の Microsoft Security コミュニティ (Microsoft Defender for Endpoint Tech Community) にご参加ください。
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示