Analizator wydajności dla programu antywirusowego Microsoft Defender

Dotyczy

Platformy

  • System Windows

Wymagania

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

  • Obsługiwane wersje systemu Windows: Windows 10, Windows 11, Windows 2012 R2 z nowoczesnym rozwiązaniem unified i Windows Server 2016 i nowszych
  • 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 Microsoft Defender analizator wydajności programu antywirusowego?

Jeśli na komputerach z uruchomionym programem antywirusowym Microsoft Defender występują problemy z wydajnością, możesz użyć analizatora wydajności w celu zwiększenia wydajności programu antywirusowego Microsoft Defender. Analizator wydajności programu antywirusowego Microsoft Defender w systemach Windows 10, Windows 11 i Windows Server 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 w zwiększeniu wydajności programu antywirusowego Defender.

Koncepcyjny obraz analizatora wydajności dla programu antywirusowego Microsoft Defender. Diagram jest powiązany z: analizatorem wydajności Microsoft Defender, analizatorem wydajności usługi Defender, get-MpPerformanceRepor, New-MpPerformanceRecording, windows Defender, microsoft Defender, microsoft Windows 10, programem antywirusowym Microsoft Defender, mikrotrwałym systemem Windows 11, programem antywirusowym Windows, programem antywirusowym Microsoft, programem antywirusowym Microsoft Defender, programem antywirusowym Windows Defender, Windows 10 programem antywirusowym windows Defender, programem antywirusowym Windows Defender, programem antywirusowym Windows Defender Windows.

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 dotyczący 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 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 administracyjnym 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 Microsoft Defender Polecenia cmdlet programu antywirusowego.

  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 klawisz ENTER , aby zatrzymać i zapisać nagrywanie, lub klawisze 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

Dodatkowe funkcje: 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. Przykłady opisujące proces "eksportowania" i "konwertowania" za pomocą przykładowych kodów można znaleźć w poniższych sekcjach.

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 programu PowerShell New-MpPerformanceRecording. 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 jako "AS IS" 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 Analizator wydajności dokumentacji.

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

Powyższe 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

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

Parametry: New-MpPerformanceRecording

-RecordTo

Określa lokalizację, w której ma zostać zapisany Microsoft Defender rejestrowanie wydajności oprogramowania chroniącego przed złośliwym kodem.

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

Określa obiekt PSSession, w którym należy utworzyć i zapisać Microsoft Defender rejestrowanie wydajności programu antywirusowego. W przypadku użycia tego parametru parametr RecordTo odwołuje się do ścieżki lokalnej na komputerze zdalnym. Dostępne z platformą Defender w wersji 4.18.2201.10.

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

Get-MpPerformanceReport

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

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

Opis: Get-MpPerformanceReport

Polecenie Get-MpPerformanceReport cmdlet analizuje wcześniej zebrane rejestrowanie wydajności programu antywirusowego Microsoft Defender (New-MpPerformanceRecording) i raportuje ś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 jako "AS IS" 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 Analizator wydajności dokumentacji.

Obsługiwane wersje systemu operacyjnego:

Windows w wersji 10 lub nowszej.

Uwaga

Ta funkcja jest dostępna od wersji platformy 4.18.2108.X lub nowszej.

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 polecenia -Raw w powyższym poleceniu określa, że dane wyjściowe powinny być czytelne dla maszyny i łatwo można je konwertować na formaty serializacji, takie jak JSON.

Parametry: Get-MpPerformanceReport

-TopPaths

Żąda raportu z górnymi ścieżkami i określa, ile ścieżek do danych wyjściowych jest najpopularniejszych, 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, "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 Definicji
-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.1us lub 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
-Raw

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ższymi plikami 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ę najważniejszych 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ę najlepszych 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 posortowanym 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ę najczęściej skanowanych 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

Dodatkowe materiały

Jeśli szukasz informacji związanych z programem antywirusowym dla innych platform, zobacz:

Porada

Chcesz dowiedzieć się więcej? Engage ze społecznością microsoft security w naszej społeczności technicznej: Ochrona punktu końcowego w usłudze Microsoft Defender Tech Community.