Dela via


Prestandaanalys för Microsoft Defender Antivirus

Gäller för

Plattformar

  • Windows

Krav

Prestandaanalys för Microsoft Defender Antivirus har följande krav:

  • Windows-versioner som stöds:
  • Plattformsversion: 4.18.2108.7 eller senare
  • PowerShell-version: PowerShell version 5.1, PowerShell ISE, fjärransluten PowerShell (4.18.2201.10+), PowerShell 7.x (4.18.2201.10+)

Vad är prestandaanalyseraren för Microsoft Defender Antivirus?

Om enheter som kör Microsoft Defender Antivirus har prestandaproblem kan du använda prestandaanalysen för att förbättra prestanda för Microsoft Defender Antivirus. Prestandaanalysen är ett PowerShell-kommandoradsverktyg som hjälper dig att fastställa filer, filnamnstillägg och processer som kan orsaka prestandaproblem på enskilda slutpunkter under antivirusgenomsökningar. Du kan använda informationen som samlas in av prestandaanalyseraren för att utvärdera prestandaproblem och tillämpa reparationsåtgärder.

På samma sätt som mekaniker utför diagnostik och tjänst på ett fordon som har prestandaproblem kan prestandaanalysen hjälpa dig att förbättra Microsoft Defender Antivirus-prestanda.

Bild av prestandaanalys för Microsoft Defender Antivirus.

Några alternativ att analysera är:

  • De vanligaste sökvägarna som påverkar genomsökningstiden
  • De vanligaste filerna som påverkar genomsökningstiden
  • De vanligaste processerna som påverkar genomsökningstiden
  • De vanligaste filnamnstilläggen som påverkar genomsökningstiden
  • Kombinationer – till exempel:
    • de vanligaste filerna per tillägg
    • de översta sökvägarna per tillägg
    • de vanligaste processerna per sökväg
    • de vanligaste genomsökningarna per fil
    • de vanligaste genomsökningarna per fil per process

Köra prestandaanalys

Den övergripande processen för att köra prestandaanalysen omfattar följande steg:

  1. Kör prestandaanalysen för att samla in en prestandainspelning av Microsoft Defender Antivirus-händelser på slutpunkten.

    Obs!

    Prestanda för Microsoft Defender Antivirus-händelser av typen Microsoft-Antimalware-Engine registreras via prestandaanalysen.

  2. Analysera genomsökningsresultaten med hjälp av olika inspelningsrapporter.

Använda prestandaanalys

Börja spela in systemhändelser genom att öppna PowerShell i administratörsläge och utföra följande steg:

  1. Kör följande kommando för att starta inspelningen:

    New-MpPerformanceRecording -RecordTo <recording.etl>
    

    där -RecordTo parametern anger den fullständiga sökvägsplats där spårningsfilen sparas. Mer cmdlet-information finns i Microsoft Defender Antivirus-cmdletar.

  2. Om det finns processer eller tjänster som anses påverka prestanda, återskapar du situationen genom att utföra relevanta uppgifter.

  3. Tryck på RETUR för att stoppa och spara inspelningen eller Ctrl+C för att avbryta inspelningen.

  4. Analysera resultaten med hjälp av prestandaanalysens Get-MpPerformanceReport parameter. När du till exempel kör kommandot Get-MpPerformanceReport -Path <recording.etl> -TopFiles 3 -TopScansPerFile 10får användaren en lista över de tio främsta genomsökningarna för de tre främsta filerna som påverkar prestanda.

    Mer information om kommandoradsparametrar och alternativ finns i New-MpPerformanceRecording och Get-MpPerformanceReport.

Obs!

Om du får felet "Det går inte att starta prestandainspelningen eftersom Windows Performance Recorder redan spelar in" när du kör en inspelning kör du följande kommando för att stoppa den befintliga spårningen med det nya kommandot: wpr -cancel -instancename MSFT_MpPerformanceRecording.

Prestandajusteringsdata och information

Baserat på frågan kan användaren visa data för genomsökningsantal, varaktighet (totalt/min/genomsnitt/max/median), sökväg, process och orsak till genomsökning. Följande bild visar exempelutdata för en enkel fråga av de 10 främsta filerna för genomsökningspåverkan.

Exempel på utdata för en grundläggande TopFiles-fråga

Exportera och konvertera till CSV och JSON

Resultatet av prestandaanalysen kan också exporteras och konverteras till en CSV- eller JSON-fil. Den här artikeln innehåller exempel som beskriver processen med "export" och "konvertera" via exempelkod.

Från och med Defender-versionen 4.18.2206.Xkan användarna visa information om genomsökningshopp över orsak under SkipReason kolumnen. Möjliga värden är:

  • Hoppas inte över
  • Optimering (vanligtvis på grund av prestandaskäl)
  • Användaren hoppades över (vanligtvis på grund av användaruppsättningsundantag)

För CSV

  • Så här exporterar du:
(Get-MpPerformanceReport -Path .\Repro-Install.etl -Topscans 1000).TopScans | Export-CSV -Path .\Repro-Install-Scans.csv -Encoding UTF8 -NoTypeInformation
  • Så här konverterar du:
(Get-MpPerformanceReport -Path .\Repro-Install.etl -Topscans 100).TopScans | ConvertTo-Csv -NoTypeInformation

För JSON

  • Så här konverterar du:
(Get-MpPerformanceReport -Path .\Repro-Install.etl -Topscans 1000).TopScans | ConvertTo-Json -Depth 1

För att säkerställa maskinläsbara utdata för export med andra databehandlingssystem rekommenderar vi att du använder -Raw parametern för Get-MpPerformanceReport. Mer information finns i följande avsnitt.

PowerShell-referens

Det finns två nya PowerShell-cmdletar som används för att finjustera prestanda för Microsoft Defender Antivirus:

New-MpPerformanceRecording

I följande avsnitt beskrivs referensen för den nya PowerShell-cmdleten New-MpPerformanceRecording. Den här cmdleten Samlar in en prestandainspelning av Microsoft Defender Antivirus-genomsökningar.

Syntax: New-MpPerformanceRecording

New-MpPerformanceRecording -RecordTo <String>

Beskrivning: New-MpPerformanceRecording

Cmdleten New-MpPerformanceRecording samlar in en prestandainspelning av Microsoft Defender Antivirus-genomsökningar. Dessa prestandainspelningar innehåller processhändelser för Microsoft-Antimalware-Engine och NT-kernel och kan analyseras efter samlingen med cmdleten Get-MpPerformanceReport .

Den här New-MpPerformanceRecording cmdleten ger en inblick i problematiska filer som kan orsaka försämrad prestanda för Microsoft Defender Antivirus. Det här verktyget tillhandahålls i nuläget och är inte avsett att ge förslag på undantag. Undantag kan minska skyddsnivån på dina slutpunkter. Eventuella undantag bör definieras med försiktighet.

Mer information om prestandaanalys finns i dokumentationen för Prestandaanalys .

Viktigt

Den här cmdleten kräver utökade administratörsbehörigheter.

Exempel: New-MpPerformanceRecording

Exempel 1: Samla in en prestandainspelning och spara den
New-MpPerformanceRecording -RecordTo .\Defender-scans.etl

Kommandot samlar in en prestandainspelning och sparar den på den angivna sökvägen: .\Defender-scans.etl.

Exempel 2: Samla in en prestandainspelning för powershell-fjärrsession
$s = New-PSSession -ComputerName Server02 -Credential Domain01\User01
New-MpPerformanceRecording -RecordTo C:\LocalPathOnServer02\trace.etl -Session $s

Kommandot samlar in en prestandainspelning på Server02 (enligt argumentet $s för parametern Session) och sparar den på den angivna sökvägen: C:\LocalPathOnServer02\trace.etlServer02.

Parametrar: New-MpPerformanceRecording

-RecordTo

Anger den plats där du vill spara prestandainspelningen för Microsoft Defender Antimalware.

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

Anger i vilket PSSession objekt du vill skapa och spara prestandainspelningen för Microsoft Defender Antivirus. När du använder det här kommandot refererar parametern RecordTo till den lokala sökvägen på fjärrdatorn. Tillgänglig med Defender-plattformsversion 4.18.2201.10 och senare.

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

Get-MpPerformanceReport

I följande avsnitt beskrivs PowerShell-cmdleten Get-MpPerformanceReport . Analyserar och rapporterar om prestandainspelning i Microsoft Defender Antivirus.

Syntax: 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>]

Beskrivning: Get-MpPerformanceReport

Cmdleten Get-MpPerformanceReport analyserar en tidigare insamlad Prestandainspelning för Microsoft Defender Antivirus (New-MpPerformanceRecording) och rapporterar de filsökvägar, filnamnstillägg och processer som orsakar störst inverkan på Microsoft Defender Antivirus-genomsökningar.

Prestandaanalysen ger en inblick i problematiska filer som kan orsaka försämrad prestanda för Microsoft Defender Antivirus. Det här verktyget tillhandahålls i nuläget och är inte avsett att ge förslag på undantag. Undantag kan minska skyddsnivån på dina slutpunkter. Eventuella undantag bör definieras med försiktighet.

Mer information om prestandaanalys finns i dokumentationen för Prestandaanalys .

Operativsystemversioner som stöds:

Windows version 10 och senare.

Obs!

Den här funktionen är tillgänglig från och med plattformsversion 4.18.2108.X och senare.

Exempel: Get-MpPerformanceReport

Exempel 1: Enskild fråga
Get-MpPerformanceReport -Path .\Defender-scans.etl -TopScans 20
Exempel 2: Flera frågor
Get-MpPerformanceReport -Path .\Defender-scans.etl -TopFiles 10 -TopExtensions 10 -TopProcesses 10 -TopScans 10
Exempel 3: Kapslade frågor
Get-MpPerformanceReport -Path .\Defender-scans.etl -TopProcesses 10 -TopExtensionsPerProcess 3 -TopScansPerExtensionPerProcess 3
Exempel 4: Använda parametern -MinDuration
Get-MpPerformanceReport -Path .\Defender-scans.etl -TopScans 100 -MinDuration 100ms
Exempel 5: Använda parametern -Raw
Get-MpPerformanceReport -Path .\Defender-scans.etl -TopFiles 10 -TopExtensions 10 -TopProcesses 10 -TopScans 10 -Raw | ConvertTo-Json

Med hjälp av -Raw i kommandot anger att utdata ska vara maskinläsbara och enkelt kan konverteras till serialiseringsformat som JSON.

Parametrar: Get-MpPerformanceReport

-TopPaths

Begär en rapport med de översta sökvägarna och anger hur många toppsökvägar som ska matas ut, sorterade efter varaktighet. Aggregerar genomsökningarna baserat på deras sökväg och katalog. Användaren kan ange hur många kataloger som ska visas på varje nivå och markeringens djup.

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

Anger rekursivt djup som används för att gruppera och visa aggregerade sökvägsresultat. Till exempel C:\ motsvarar ett djup på 1 och C:\Users\Foo motsvarar ett djup på 3.

Den här flaggan kan åtfölja alla andra alternativ för översta sökvägen. Om det saknas antas standardvärdet 3. Värdet får inte vara 0.

- Type: Int32
- Position: Named
- Default value: 3
- Accept pipeline input: False
- Accept wildcard characters: False
flagga definition
-TopScansPerPath Anger hur många toppgenomsökningar som ska anges för varje toppsökväg.
-TopFilesPerPath Anger hur många toppfiler som ska anges för varje översta sökväg.
-TopScansPerFilePerPath Anger hur många toppgenomsökningar som ska matas ut för varje toppfil för varje toppsökväg, sorterat efter "Varaktighet"
-TopExtensionsPerPath Anger hur många topptillägg som ska matas ut för varje översta sökväg
-TopScansPerExtensionPerPath Anger hur många toppgenomsökningar som ska matas ut för varje topptillägg för varje toppsökväg
-TopProcessesPerPath Anger hur många toppprocesser som ska matas ut för varje toppsökväg
-TopScansPerProcessPerPath Anger hur många toppgenomsökningar som ska matas ut för varje toppprocess för varje toppsökväg
-TopPathsPerExtension Anger hur många översta sökvägar som ska matas ut för varje övre tillägg
-TopScansPerPathPerExtension Anger hur många toppgenomsökningar som ska matas ut för varje toppsökväg för varje topptillägg
-TopPathsPerProcess Anger hur många toppsökvägar som ska matas ut för varje toppprocess
-TopScansPerPathPerProcess Anger hur många toppgenomsökningar som ska matas ut för varje toppsökväg för varje toppprocess
-MinDuration

Anger den minsta varaktigheten för alla genomsökningar eller totala genomsökningsvaraktigheterna för filer, tillägg och processer som ingår i rapporten. accepterar värden som 0.1234567sec, 0.1234ms, 0.1useller ett giltigt TimeSpan.

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

Anger sökvägen eller sökvägarna till en eller flera platser.

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

Anger att utdata från prestandainspelning ska vara maskinläsbara och enkelt konverteras till serialiseringsformat som JSON (till exempel via kommandot Convert-to-JSON). Den här konfigurationen rekommenderas för användare som är intresserade av batchbearbetning med andra databehandlingssystem.

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

Anger hur många topptillägg som ska matas ut, sorterade efter varaktighet.

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

Anger hur många topptillägg som ska matas ut för varje toppprocess, sorterat efter varaktighet.

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

Begär en rapport med de översta filerna och anger hur många toppfiler som ska matas ut, sorterade efter varaktighet.

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

Anger hur många toppfiler som ska matas ut för varje topptillägg, sorterat efter varaktighet.

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

Anger hur många toppfiler som ska matas ut för varje toppprocess, sorterat efter varaktighet.

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

Begär en rapport med de översta processerna och anger hur många av de översta processerna som ska matas ut, sorterade efter varaktighet.

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

Anger hur många toppprocesser som ska matas ut för varje topptillägg, sorterat efter varaktighet.

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

Anger hur många toppprocesser som ska matas ut för varje toppfil, sorterade efter varaktighet.

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

Begär en rapport med toppgenomsökningar och anger hur många toppgenomsökningar som ska matas ut, sorterade efter varaktighet.

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

Anger hur många toppgenomsökningar som ska matas ut för varje topptillägg, sorterat efter varaktighet.

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

Anger hur många toppgenomsökningar som ska matas ut för varje topptillägg för varje toppprocess, sorterat efter varaktighet.

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

Anger hur många toppgenomsökningar som ska matas ut för varje toppfil, sorterat efter varaktighet.

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

Anger hur många toppgenomsökningar som ska matas ut för varje toppfil för varje topptillägg, sorterat efter varaktighet.

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

Anger hur många toppgenomsökningar för utdata för varje toppfil för varje toppprocess, sorterade efter varaktighet.

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

Anger hur många toppgenomsökningar som ska matas ut för varje toppprocess i rapporten De översta processerna, sorterade efter varaktighet.

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

Anger hur många toppgenomsökningar för utdata för varje toppprocess för varje topptillägg, sorterade efter varaktighet.

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

Anger hur många toppgenomsökningar för utdata för varje toppprocess för varje toppfil, sorterade efter varaktighet.

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

Tips

Vill du veta mer? Interagera med Microsoft Security-communityn i vår Tech Community: Microsoft Defender för Endpoint Tech Community.