Udostępnij za pośrednictwem


Analizator wydajności dla programu antywirusowego Microsoft Defender

Dotyczy

Platformy

  • System Windows

Wymagania

Analizator wydajności programu antywirusowego Microsoft Defender ma następujące wymagania wstępne:

  • Obsługiwane wersje systemu Windows:
  • Wersja platformy: 4.18.2108.7 lub nowsza
  • Wersja programu PowerShell: PowerShell w wersji 5.1, PowerShell ISE, zdalny program PowerShell (4.18.2201.10+), PowerShell 7.x (4.18.2201.10+)

Co to jest analizator wydajności programu antywirusowego Microsoft Defender?

Jeśli na urządzeniach z programem antywirusowym Microsoft Defender występują problemy z wydajnością, możesz użyć analizatora wydajności, aby zwiększyć wydajność programu antywirusowego Microsoft Defender. Analizator wydajności to narzędzie wiersza polecenia programu PowerShell, które ułatwia określanie plików, rozszerzeń plików i procesów, które mogą powodować problemy z wydajnością poszczególnych punktów końcowych podczas skanowania antywirusowego. Informacje zebrane przez analizator wydajności umożliwiają ocenę problemów z wydajnością i stosowanie akcji korygowania.

Podobnie jak w przypadku mechaników wykonujących diagnostykę i obsługę pojazdu, który ma problemy z wydajnością, analizator wydajności może pomóc zwiększyć wydajność programu antywirusowego Microsoft Defender.

Koncepcyjny obraz analizatora wydajności dla programu antywirusowego Microsoft Defender.

Niektóre opcje analizy obejmują:

  • Najważniejsze ścieżki wpływające na czas skanowania
  • Najważniejsze pliki, które mają wpływ na czas skanowania
  • Najważniejsze procesy wpływające na czas skanowania
  • Najważniejsze rozszerzenia plików, które mają wpływ na czas skanowania
  • Kombinacje — na przykład:
    • najważniejsze pliki na rozszerzenie
    • górne ścieżki na rozszerzenie
    • najważniejsze procesy na ścieżkę
    • najczęściej skanuje na plik
    • najczęściej skanuje na plik na proces

Uruchamianie analizatora wydajności

Proces wysokiego poziomu na potrzeby uruchamiania analizatora wydajności obejmuje następujące kroki:

  1. Uruchom analizator wydajności, aby zebrać rejestrowanie wydajności zdarzeń programu antywirusowego Microsoft Defender w punkcie końcowym.

    Uwaga

    Wydajność zdarzeń programu antywirusowego Microsoft Defender tego typu Microsoft-Antimalware-Engine jest rejestrowana za pośrednictwem analizatora wydajności.

  2. Przeanalizuj wyniki skanowania przy użyciu różnych raportów nagrywania.

Korzystanie z analizatora wydajności

Aby rozpocząć rejestrowanie zdarzeń systemowych, otwórz program PowerShell w trybie administratora i wykonaj następujące kroki:

  1. Uruchom następujące polecenie, aby rozpocząć nagrywanie:

    New-MpPerformanceRecording -RecordTo <recording.etl>
    

    gdzie -RecordTo parametr określa pełną lokalizację ścieżki, w której jest zapisywany plik śledzenia. Aby uzyskać więcej informacji na temat poleceń cmdlet, zobacz Polecenia cmdlet programu antywirusowego Microsoft Defender.

  2. Jeśli istnieją procesy lub usługi, które mają wpływ na wydajność, odtwórz sytuację, wykonując odpowiednie zadania.

  3. Naciśnij ENTER , aby zatrzymać i zapisać nagrywanie, lub Ctrl+C , aby anulować nagrywanie.

  4. Przeanalizuj wyniki przy użyciu parametru analizatora Get-MpPerformanceReport wydajności. Na przykład podczas wykonywania polecenia Get-MpPerformanceReport -Path <recording.etl> -TopFiles 3 -TopScansPerFile 10użytkownik otrzymuje listę dziesięciu pierwszych skanów dla trzech pierwszych plików wpływających na wydajność.

    Aby uzyskać więcej informacji na temat parametrów i opcji wiersza polecenia, zobacz New-MpPerformanceRecording i Get-MpPerformanceReport.

Uwaga

Jeśli podczas uruchamiania nagrania zostanie wyświetlony błąd "Nie można rozpocząć rejestrowania wydajności, ponieważ rejestrator wydajności systemu Windows jest już nagrywany", uruchom następujące polecenie, aby zatrzymać istniejący ślad za pomocą nowego polecenia: wpr -cancel -instancename MSFT_MpPerformanceRecording.

Dane i informacje dotyczące dostrajania wydajności

Na podstawie zapytania użytkownik może wyświetlać dane pod kątem liczby skanów, czasu trwania (łączna/minimalna/średnia/maksymalna/mediana), ścieżki, procesu i przyczyny skanowania. Na poniższej ilustracji przedstawiono przykładowe dane wyjściowe dla prostego zapytania 10 pierwszych plików pod kątem wpływu skanowania.

Przykładowe dane wyjściowe podstawowego zapytania TopFiles

Eksportowanie i konwertowanie do plików CSV i JSON

Wyniki analizatora wydajności można również wyeksportować i przekonwertować na plik CSV lub JSON. Ten artykuł zawiera przykłady opisujące proces "eksportowania" i "konwertowania" za pomocą przykładowego kodu.

Począwszy od wersji 4.18.2206.Xusługi Defender, użytkownicy mogą wyświetlać informacje o przyczynach skanowania w kolumnie SkipReason . Dopuszczalne wartości:

  • Nie pominięto
  • Optymalizacja (zazwyczaj ze względu na wydajność)
  • Użytkownik został pominięty (zazwyczaj z powodu wykluczeń zestawu użytkowników)

Dla pliku CSV

  • Aby wyeksportować:
(Get-MpPerformanceReport -Path .\Repro-Install.etl -Topscans 1000).TopScans | Export-CSV -Path .\Repro-Install-Scans.csv -Encoding UTF8 -NoTypeInformation
  • Aby przekonwertować:
(Get-MpPerformanceReport -Path .\Repro-Install.etl -Topscans 100).TopScans | ConvertTo-Csv -NoTypeInformation

W przypadku formatu JSON

  • Aby przekonwertować:
(Get-MpPerformanceReport -Path .\Repro-Install.etl -Topscans 1000).TopScans | ConvertTo-Json -Depth 1

Aby zapewnić możliwość odczytu maszynowego danych wyjściowych na potrzeby eksportowania z innymi systemami przetwarzania danych, zaleca się użycie -Raw parametru dla Get-MpPerformanceReportprogramu . Aby uzyskać więcej informacji, zobacz poniższe sekcje.

Dokumentacja programu PowerShell

Istnieją dwa nowe polecenia cmdlet programu PowerShell używane do dostosowywania wydajności programu antywirusowego Microsoft Defender:

New-MpPerformanceRecording

W poniższej sekcji opisano odwołanie do nowego polecenia cmdlet New-MpPerformanceRecordingprogramu PowerShell. To polecenie cmdlet zbiera nagranie wydajności skanowania programu antywirusowego Microsoft Defender.

Składnia: New-MpPerformanceRecording

New-MpPerformanceRecording -RecordTo <String>

Opis: New-MpPerformanceRecording

Polecenie New-MpPerformanceRecording cmdlet zbiera nagranie wydajności skanowania programu antywirusowego Microsoft Defender. Te nagrania wydajności zawierają zdarzenia procesu jądra Microsoft-Antimalware-Engine i NT i mogą być analizowane po zebraniu przy użyciu polecenia cmdlet Get-MpPerformanceReport .

To New-MpPerformanceRecording polecenie cmdlet zapewnia wgląd w problematyczne pliki, które mogą powodować obniżenie wydajności programu antywirusowego Microsoft Defender. To narzędzie jest dostarczane "w takim stanie, w jakim jest" i nie ma na celu przedstawienia sugestii dotyczących wykluczeń. Wykluczenia mogą zmniejszyć poziom ochrony punktów końcowych. Wykluczenia, jeśli istnieją, powinny być definiowane z ostrożnością.

Aby uzyskać więcej informacji na temat analizatora wydajności, zobacz Dokumentacja analizatora wydajności .

Ważna

To polecenie cmdlet wymaga uprawnień administratora z podwyższonym poziomem uprawnień.

Przykłady: New-MpPerformanceRecording

Przykład 1. Zbieranie nagrania wydajności i zapisywanie go
New-MpPerformanceRecording -RecordTo .\Defender-scans.etl

Polecenie zbiera nagranie wydajności i zapisuje je w określonej ścieżce: .\Defender-scans.etl.

Przykład 2: Zbieranie nagrania wydajności dla zdalnej sesji programu PowerShell
$s = New-PSSession -ComputerName Server02 -Credential Domain01\User01
New-MpPerformanceRecording -RecordTo C:\LocalPathOnServer02\trace.etl -Session $s

Polecenie zbiera rejestrowanie Server02 wydajności (zgodnie z argumentem $s sesji parametru) i zapisuje je w określonej ścieżce: C:\LocalPathOnServer02\trace.etl na Server02.

Parametry: New-MpPerformanceRecording

-RecordTo

Określa lokalizację, w której ma zostać zapisane nagranie wydajności ochrony przed złośliwym kodem w usłudze Microsoft Defender.

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

Określa obiekt, PSSession w którym należy utworzyć i zapisać nagranie wydajności programu antywirusowego Microsoft Defender. W przypadku korzystania z tego polecenia RecordTo parametr odwołuje się do ścieżki lokalnej na komputerze zdalnym. Dostępne w wersji 4.18.2201.10 platformy Defender i nowszych wersjach.

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

Get-MpPerformanceReport

W poniższej Get-MpPerformanceReport sekcji opisano polecenie cmdlet programu PowerShell. Analizuje i raportuje rejestrowanie wydajności programu antywirusowego Microsoft Defender.

Składnia: 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>]

Opis: Get-MpPerformanceReport

Polecenie Get-MpPerformanceReport cmdlet analizuje wcześniej zebrane nagranie wydajności programu antywirusowego Microsoft Defender (New-MpPerformanceRecording) i zgłasza ścieżki plików, rozszerzenia plików i procesy, które powodują największy wpływ na skanowanie programu antywirusowego Microsoft Defender.

Analizator wydajności zapewnia wgląd w problematyczne pliki, które mogą powodować obniżenie wydajności programu antywirusowego Microsoft Defender. To narzędzie jest dostarczane "tak, jak jest" i nie ma na celu przedstawienia sugestii dotyczących wykluczeń. Wykluczenia mogą zmniejszyć poziom ochrony punktów końcowych. Wykluczenia, jeśli istnieją, powinny być definiowane z ostrożnością.

Aby uzyskać więcej informacji na temat analizatora wydajności, zobacz Dokumentacja analizatora wydajności .

Obsługiwane wersje systemu operacyjnego:

Windows w wersji 10 lub nowszej.

Uwaga

Ta funkcja jest dostępna począwszy od wersji 4.18.2108.X platformy i nowszych.

Przykłady: Get-MpPerformanceReport

Przykład 1: pojedyncze zapytanie
Get-MpPerformanceReport -Path .\Defender-scans.etl -TopScans 20
Przykład 2: Wiele zapytań
Get-MpPerformanceReport -Path .\Defender-scans.etl -TopFiles 10 -TopExtensions 10 -TopProcesses 10 -TopScans 10
Przykład 3: Zapytania zagnieżdżone
Get-MpPerformanceReport -Path .\Defender-scans.etl -TopProcesses 10 -TopExtensionsPerProcess 3 -TopScansPerExtensionPerProcess 3
Przykład 4. Używanie parametru -MinDuration
Get-MpPerformanceReport -Path .\Defender-scans.etl -TopScans 100 -MinDuration 100ms
Przykład 5. Używanie parametru -Raw
Get-MpPerformanceReport -Path .\Defender-scans.etl -TopFiles 10 -TopExtensions 10 -TopProcesses 10 -TopScans 10 -Raw | ConvertTo-Json

Użycie -Raw polecenia w poleceniu określa, że dane wyjściowe powinny być czytelne dla maszyny i łatwo można je przekonwertować na formaty serializacji, takie jak JSON.

Parametry: Get-MpPerformanceReport

-TopPaths

Żąda raportu z najwyższymi ścieżkami i określa, ile ścieżek do danych wyjściowych jest posortowanych według czasu trwania. Agreguje skany na podstawie ich ścieżki i katalogu. Użytkownik może określić liczbę katalogów, które mają być wyświetlane na każdym poziomie, oraz głębokość zaznaczenia.

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

Określa głębokość cykliczną używaną do grupowania i wyświetlania zagregowanych wyników ścieżki. Na przykład C:\ odpowiada głębokości 1 i C:\Users\Foo odpowiada głębokości 3.

Ta flaga może towarzyszyć wszystkim innym opcjom górnej ścieżki. W przypadku braku jest przyjmowana wartość domyślna 3. Wartość nie może być 0.

- Type: Int32
- Position: Named
- Default value: 3
- Accept pipeline input: False
- Accept wildcard characters: False
flaga definicja
-TopScansPerPath Określa liczbę górnych skanów do określenia dla każdej górnej ścieżki.
-TopFilesPerPath Określa liczbę najważniejszych plików do określenia dla każdej górnej ścieżki.
-TopScansPerFilePerPath Określa, ile górnych skanów do danych wyjściowych dla każdego górnego pliku dla każdej górnej ścieżki, posortowane według "Czas trwania"
-TopExtensionsPerPath Określa liczbę górnych rozszerzeń do danych wyjściowych dla każdej górnej ścieżki
-TopScansPerExtensionPerPath Określa, ile górnych skanów do danych wyjściowych dla każdego górnego rozszerzenia dla każdej górnej ścieżki
-TopProcessesPerPath Określa liczbę najważniejszych procesów do wyświetlenia dla każdej górnej ścieżki
-TopScansPerProcessPerPath Określa liczbę najlepszych skanów do danych wyjściowych dla każdego najwyższego procesu dla każdej górnej ścieżki
-TopPathsPerExtension Określa liczbę górnych ścieżek do danych wyjściowych dla każdego górnego rozszerzenia
-TopScansPerPathPerExtension Określa, ile górnych skanów do danych wyjściowych dla każdej górnej ścieżki dla każdego górnego rozszerzenia
-TopPathsPerProcess Określa, ile górnych ścieżek do danych wyjściowych dla każdego górnego procesu
-TopScansPerPathPerProcess Określa liczbę najlepszych skanów do danych wyjściowych dla każdej górnej ścieżki dla każdego górnego procesu
-MinDuration

Określa minimalny czas trwania skanowania lub łączny czas trwania skanowania plików, rozszerzeń i procesów zawartych w raporcie; akceptuje wartości, takie jak 0.1234567sec, 0.1234ms, 0.1uslub prawidłowy timeSpan.

Type: String
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Ścieżka

Określa ścieżkę lub ścieżki do co najmniej jednej lokalizacji.

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

Określa, że dane wyjściowe rejestrowania wydajności powinny być czytelne dla komputera i łatwo można je konwertować na formaty serializacji, takie jak JSON (na przykład za pomocą polecenia Convert-to-JSON). Ta konfiguracja jest zalecana dla użytkowników zainteresowanych przetwarzaniem wsadowym z innymi systemami przetwarzania danych.

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

Określa liczbę najważniejszych rozszerzeń danych wyjściowych posortowanych według czasu trwania.

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

Określa, ile górnych rozszerzeń do danych wyjściowych dla każdego górnego procesu, posortowane według czasu trwania.

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

Żąda raportu z najwyższą liczbą plików i określa liczbę najważniejszych plików do danych wyjściowych posortowanych według czasu trwania.

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

Określa liczbę najlepszych plików do wyświetlenia dla każdego górnego rozszerzenia posortowanego według czasu trwania.

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

Określa liczbę najlepszych plików do wyświetlenia dla każdego najwyższego procesu posortowanego według czasu trwania.

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

Żąda raportu top-processes i określa, ile z najważniejszych procesów do danych wyjściowych, posortowane według czasu trwania.

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

Określa liczbę najlepszych procesów do wyświetlenia dla każdego górnego rozszerzenia posortowanego według czasu trwania.

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

Określa liczbę najważniejszych procesów do wyświetlenia dla każdego najwyższego pliku posortowanego według czasu trwania.

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

Żąda najwyższego skanowania raportu i określa liczbę najczęściej skanowanych danych wyjściowych posortowanych według czasu trwania.

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

Określa liczbę najczęściej skanowanych danych wyjściowych dla każdego górnego rozszerzenia posortowanego według czasu trwania.

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

Określa liczbę najczęściej skanowanych danych wyjściowych dla każdego górnego rozszerzenia dla każdego najwyższego procesu posortowanego według czasu trwania.

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

Określa liczbę najczęściej skanowanych danych wyjściowych dla każdego najwyższego pliku posortowanego według czasu trwania.

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

Określa liczbę najczęściej skanowanych danych wyjściowych dla każdego najwyższego pliku dla każdego górnego rozszerzenia posortowanego według czasu trwania.

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

Określa liczbę najczęściej skanowanych danych wyjściowych dla każdego najwyższego pliku dla każdego najwyższego procesu posortowanego według czasu trwania.

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

Określa liczbę najczęściej skanowanych danych wyjściowych dla każdego najwyższego procesu w raporcie Top Processes posortowane według czasu trwania.

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

Określa liczbę najczęściej skanowanych danych wyjściowych dla każdego najwyższego procesu dla każdego górnego rozszerzenia posortowanego według czasu trwania.

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

Określa liczbę najlepszych skanów danych wyjściowych dla każdego najwyższego procesu dla każdego najwyższego pliku posortowanego według czasu trwania.

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

Porada

Chcesz dowiedzieć się więcej? Skontaktuj się ze społecznością zabezpieczeń firmy Microsoft w naszej społeczności technicznej: Microsoft Defender for Endpoint Tech Community.