Prestandaanalys för Microsoft Defender Antivirus

Gäller för

Plattformar

  • Windows

Krav

Microsoft Defender Antivirus-prestandaanalys har följande krav:

  • Windows-versioner som stöds: Windows 10, Windows 11, Windows 2012 R2 med modern enhetlig lösning och Windows Server 2016 och senare
  • 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 Microsoft Defender Prestandaanalys för antivirusprogram?

Om datorer som kör Microsoft Defender Antivirus har prestandaproblem kan du använda prestandaanalys för att förbättra prestanda för Microsoft Defender Antivirus. Prestandaanalys för Microsoft Defender Antivirus i Windows 10, Windows 11 och Windows Server ä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 prestandaanalys hjälpa dig att förbättra Defender Antivirus-prestanda.

Bild av prestandaanalys för konceptuell prestanda för Microsoft Defender Antivirus. Diagrammet är relaterat till: Microsoft Defender prestandaanalys, Defender performance analyzer, Get-MpPerformanceRepor, New-MpPerformanceRecording, windows Defender, microsoft Defender, microsoft windows 10, microsoft Defender antivirus, micro soft windows 11, windows antivirus, microsoft antivirus, windows Defender antivirus, Windows 10 antivirus, microsoft windows Defender, prestanda Windows.

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 prestandaanalys omfattar följande steg:

  1. Kör prestandaanalys 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

Om du vill börja spela in systemhändelser öppnar du PowerShell i administrativt läge och utför 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

Ytterligare funktioner: exportera och konvertera till CSV och JSON

Resultatet av prestandaanalysen kan också exporteras och konverteras till en CSV- eller JSON-fil. Exempel som beskriver processen med "export" och "konvertera" via exempelkoder finns i följande avsnitt.

Från och med Defender-versionen 4.18.2206.Xkan användare visa information om genomsökningshopp över orsak under kolumnen "SkipReason". 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 "AS IS" 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 Prestandaanalys dokument.

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 ovan 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 ovan 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.etl på Server02.

Parametrar: New-MpPerformanceRecording

-RecordTo

Anger den plats där du vill spara prestandainspelningen för Microsoft Defender program mot skadlig kod.

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

Anger PSSession-objektet där du vill skapa och spara Microsoft Defender Antivirus-prestandainspelning. När du använder den här parametern refererar parametern RecordTo till den lokala sökvägen på fjärrdatorn. Tillgängligt med Defender-plattformen version 4.18.2201.10.

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

Get-MpPerformanceReport

I följande avsnitt beskrivs Get-MpPerformanceReport PowerShell-cmdlet. Analyserar och rapporterar om Microsoft Defender antivirusprestandainspelning.

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

Beskrivning: Get-MpPerformanceReport

Cmdleten Get-MpPerformanceReport analyserar en tidigare insamlad Microsoft Defender Antivirus-prestandainspelning (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 "AS IS" 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 Prestandaanalys dokument.

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 ovan anger du att utdata ska vara maskinläsbara och lättkonverterade till serialiseringsformat som JSON.

Parametrar: Get-MpPerformanceReport

-TopPaths

Begär en rapport med de översta sökvägarna och anger hur många översta sö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 motsvarar "C:" ett djup på 1, "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.1us eller ett giltigt TimeSpan.

Type: String
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Sökvägen

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
-Raw

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, sorterade 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

Ytterligare resurser

Om du letar efter antivirusrelaterad information för andra plattformar kan du läsa:

Tips

Vill du veta mer? Engage med Microsofts säkerhetscommunity i vår Tech Community: Microsoft Defender för Endpoint Tech Community.