Microsoft Defender 防毒效能分析器參考

PowerShell 參考

您可以使用以下新的 PowerShell 指令小程式來調整 Microsoft Defender 防毒軟體的效能:

先決條件

支援的作業系統

Windows 版本 10 及以上。

注意事項

此功能自平台版本 4.18.2108.X 起及後續版本均可使用。

New-MpPerformanceRecording

以下章節說明新的 PowerShell 命令程式 New-MpPerformanceRecording 的參考資訊。 此指令子會收集 Microsoft Defender 防毒軟體掃描的效能錄影。

語法:New-MpPerformanceRecording

New-MpPerformanceRecording -RecordTo <String>

說明:New-MpPerformanceRecording

New-MpPerformanceRecording Cmdlet 會收集 Microsoft Defender 防毒軟體掃描的效能記錄。 這些效能記錄包含 Microsoft-Antimalware-Engine 與 NT 核心程序事件,收集後可使用 Get-MpPerformanceReport 指令碼進行分析。

New-MpPerformanceRecording指令小程式提供對可能導致 Microsoft Defender 防毒軟體效能下降的問題檔案的洞見。 此工具僅以現狀提供,並非用來提供 排除事項建議。 排除條款可能會降低終端的防護等級。 若有排除條款,應謹慎定義。

欲了解更多效能分析器資訊,請參閱效能分析器文件。

重要事項

此指令小程式需要提升管理員權限。

範例:New-MpPerformanceRecording

範例一:收集一段表演錄音並保存
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 上的指定路徑:Server02

參數:New-MpPerformanceRecording

-記錄

指定儲存 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> [-TopFiles <Int32>] [-TopScansPerFile <Int32>] [-TopProcessesPerFile 
<Int32>] [-TopScansPerProcessPerFile <Int32>] [-TopPaths <Int32>] [-TopPathsDepth <Int32>] [-TopScansPerPath 
<Int32>] [-TopFilesPerPath <Int32>] [-TopScansPerFilePerPath <Int32>] [-TopExtensionsPerPath <Int32>] 
    [-TopScansPerExtensionPerPath <Int32>] [-TopProcessesPerPath <Int32>] [-TopScansPerProcessPerPath <Int32>] 
    [-TopExtensions <Int32>] [-TopScansPerExtension <Int32>] [-TopPathsPerExtension <Int32>] 
    [-TopScansPerPathPerExtension <Int32>] [-TopFilesPerExtension <Int32>] [-TopScansPerFilePerExtension <Int32>] 
    [-TopProcessesPerExtension <Int32>] [-TopScansPerProcessPerExtension <Int32>] [-TopProcesses <Int32>] 
    [-TopScansPerProcess <Int32>] [-TopFilesPerProcess <Int32>] [-TopScansPerFilePerProcess <Int32>] 
    [-TopExtensionsPerProcess <Int32>] [-TopScansPerExtensionPerProcess <Int32>] [-TopPathsPerProcess <Int32>] 
    [-TopScansPerPathPerProcess <Int32>] [-TopScans <Int32>] [-MinDuration <String>] [-MinStartTime <DateTime>] 
    [-MinEndTime <DateTime>] [-MaxStartTime <DateTime>] [-MaxEndTime <DateTime>] [-Overview] [-Raw] 
    [<CommonParameters>]

說明:Get-MpPerformanceReport

Get-MpPerformanceReport Cmdlet 會分析先前收集的 Microsoft Defender Antivirus 效能記錄(New-MpPerformanceRecording),並報告對 Microsoft Defender Antivirus 掃描造成最大影響的檔案路徑、副檔名及程序。

效能分析器能洞察可能導致 Microsoft Defender 防毒軟體效能下降的問題檔案。 此工具是「現況」提供,並非用來提供排除條款建議。 排除條款可能會降低終端的防護等級。 若有排除條款,應謹慎定義。

欲了解更多效能分析器資訊,請參閱效能分析器文件。

範例:Get-MpPerformanceReport

範例 1:單一查詢
Get-MpPerformanceReport -Path .\Defender-scans.etl -TopScans 20
範例二:多重查詢
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。

此旗標可與所有其他 Top Path 選項搭配使用。 若缺少,預設值為 3。 這個值不可能是 0。

- Type: Int32
- Position: Named
- Default value: 3
- Accept pipeline input: False
- Accept wildcard characters: False
旗標 定義
-TopScansPerPath 指定每條頂部路徑的頂部掃描數量。
-TopFilesPerPath 指定每個最上層路徑要指定多少個最上層檔案。
-TopScansPerFilePerPath 指定每個頂層檔案對每個頂層路徑輸出多少頂層掃描,依「持續時間」排序
-TopExtensionsPerPath 指定每個最佳路徑要輸出多少個最佳延伸項目
-TopScansPerExtensionPerPath 指定每個頂層擴展對每個頂路徑要輸出多少頂掃描
-TopProcessesPerPath 指定每個主要路徑要輸出的前幾個處理程序數量
-TopScansPerProcessPerPath 指定對於每個主要處理程序和每個主要路徑,要輸出的前幾筆掃描結果數量
-TopPathsPerExtension 指定每個頂層擴充要輸出多少頂路徑
-TopScansPerPathPerExtension 指定每個頂層擴展的每條頂路徑要輸出多少頂掃描
-TopPathsPerProcess 指定每個頂端程序要輸出多少頂路徑
-TopScansPerPathPerProcess 指定每個主要程序的每條主要路徑要輸出多少個主要掃描結果
-最短持續時間

規定報告中包含的檔案、副檔名與程序的掃描時間或總掃描時間的最小長度;接受像 0.1234567sec0.1234ms0.1us、 或有效時間跨度這樣的值。

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

指定通往一個或多個地點的路徑。

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
-頂層擴展

指定要輸出多少頂擴展,依時長排序。

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
-頂尖檔案

請求頂尖檔案報告,並依時長排序指定要輸出多少頂尖檔案。

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

請求頂端流程報告,並指定要輸出多少頂端程序,依時長排序。

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
-每個處理程序中每個副檔名的最高掃描次數

指定每個頂端程序每個頂端擴展要輸出多少頂掃描,依照時長排序。

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