Поделиться через


Анализатор производительности для антивирусной программы Microsoft Defender

Область применения

Платформы

  • Windows

Требования

Анализатор производительности антивирусной программы Microsoft Defender имеет следующие предварительные требования.

  • Поддерживаемые версии Windows:
  • Версия платформы: 4.18.2108.7 или более поздняя
  • Версия PowerShell: PowerShell версии 5.1, среда интегрированной среды сценариев PowerShell, удаленная версия PowerShell (4.18.2201.10+), PowerShell 7.x (4.18.2201.10+)

Что такое анализатор производительности антивирусной программы Microsoft Defender?

Если на устройствах с антивирусной программой Microsoft Defender возникают проблемы с производительностью, можно использовать анализатор производительности для повышения производительности антивирусной программы в Microsoft Defender. Анализатор производительности — это программа командной строки PowerShell, которая помогает определять файлы, расширения файлов и процессы, которые могут вызывать проблемы с производительностью на отдельных конечных точках во время проверки антивирусной программы. Сведения, собранные анализатором производительности, можно использовать для оценки проблем с производительностью и применения действий по исправлению.

Подобно тому, как механики выполняют диагностику и обслуживание на транспортном средстве с проблемами производительности, анализатор производительности может помочь вам повысить производительность антивирусной программы в Microsoft Defender.

Образ концептуального анализатора производительности для антивирусной программы в Microsoft Defender.

Ниже приведены некоторые варианты анализа.

  • Основные пути, влияющие на время сканирования
  • Основные файлы, влияющие на время сканирования
  • Основные процессы, влияющие на время сканирования
  • Основные расширения файлов, влияющие на время сканирования
  • Сочетания— например:
    • top files per extension
    • верхние пути на расширение
    • top процессов на путь
    • большее число сканирований на файл
    • большее число сканирований на файл на каждый процесс

Запуск анализатора производительности

Общий процесс запуска анализатора производительности включает в себя следующие действия.

  1. Запустите анализатор производительности, чтобы собрать запись о событиях антивирусной программы Microsoft Defender в конечной точке.

    Примечание.

    Производительность событий антивирусной программы в Microsoft Defender этого типа Microsoft-Antimalware-Engine записывается через анализатор производительности.

  2. Анализ результатов сканирования с помощью различных отчетов о записи.

Использование анализатора производительности

Чтобы начать запись системных событий, откройте PowerShell в режиме администратора и выполните следующие действия.

  1. Выполните следующую команду, чтобы начать запись:

    New-MpPerformanceRecording -RecordTo <recording.etl>
    

    параметр where -RecordTo указывает полное расположение пути, в котором сохраняется файл трассировки. Дополнительные сведения о командлетах см. в статье Командлеты антивирусной программы Microsoft Defender.

  2. Если есть процессы или службы, которые, как полагают, влияют на производительность, воспроизведите ситуацию, выполнив соответствующие задачи.

  3. Нажмите клавишу ВВОД , чтобы остановить и сохранить запись, или CTRL+C , чтобы отменить запись.

  4. Проанализируйте результаты с помощью параметра анализатора Get-MpPerformanceReport производительности. Например, при выполнении команды Get-MpPerformanceReport -Path <recording.etl> -TopFiles 3 -TopScansPerFile 10пользователю предоставляется список из десяти самых разных файлов, влияющих на производительность.

    Дополнительные сведения о параметрах и параметрах командной строки см. в разделах New-MpPerformanceRecording и Get-MpPerformanceReport.

Примечание.

Если при выполнении записи появляется сообщение об ошибке "Не удается запустить запись производительности, так как средство записи производительности Windows уже записывается", выполните следующую команду, чтобы остановить существующую трассировку с помощью новой команды: wpr -cancel -instancename MSFT_MpPerformanceRecording.

Данные и сведения о настройке производительности

На основе запроса пользователь может просматривать данные о количестве сканирований, длительности (total/min/average/max/median), пути, процессах и причинах сканирования. На следующем рисунке показан пример выходных данных для простого запроса из 10 основных файлов для влияния сканирования.

Пример выходных данных для базового запроса TopFiles

Экспорт и преобразование в CSV и JSON

Результаты анализатора производительности также можно экспортировать и преобразовать в CSV- или JSON-файл. Эта статья содержит примеры, описывающие процесс "экспорта" и "преобразования" с помощью примера кода.

Начиная с версии 4.18.2206.XDefender пользователи могут просматривать сведения о причине пропуска сканирования в столбце SkipReason . Возможные значения:

  • Не пропущено
  • Оптимизация (как правило, из-за соображений производительности)
  • Пользователь пропущен (как правило, из-за исключений, заданных пользователем)

Для CSV-файла

  • Экспорт:
(Get-MpPerformanceReport -Path .\Repro-Install.etl -Topscans 1000).TopScans | Export-CSV -Path .\Repro-Install-Scans.csv -Encoding UTF8 -NoTypeInformation
  • Для преобразования:
(Get-MpPerformanceReport -Path .\Repro-Install.etl -Topscans 100).TopScans | ConvertTo-Csv -NoTypeInformation

Для JSON

  • Для преобразования:
(Get-MpPerformanceReport -Path .\Repro-Install.etl -Topscans 1000).TopScans | ConvertTo-Json -Depth 1

Чтобы обеспечить машиночитаемые выходные данные для экспорта с другими системами обработки данных, рекомендуется использовать -Raw параметр для Get-MpPerformanceReport. Дополнительные сведения см. в следующих разделах.

Справочные материалы по PowerShell

Для настройки производительности антивирусной программы в Microsoft Defender используются два новых командлета PowerShell:

New-MpPerformanceRecording

В следующем разделе описывается справочник по новому командлету New-MpPerformanceRecordingPowerShell . Этот командлет собирает запись о производительности проверок антивирусной программы в Microsoft Defender.

Синтаксис: New-MpPerformanceRecording

New-MpPerformanceRecording -RecordTo <String>

Описание: New-MpPerformanceRecording

Командлет New-MpPerformanceRecording собирает запись о производительности проверок антивирусной программы в Microsoft Defender. Эти записи производительности содержат события процессов ядра Microsoft-Antimalware-Engine и NT и могут быть проанализированы после сбора с помощью командлета Get-MpPerformanceReport .

Этот New-MpPerformanceRecording командлет предоставляет представление о проблемных файлах, которые могут привести к снижению производительности антивирусной программы в Microsoft Defender. Это средство предоставляется "как есть" и не предназначено для предоставления предложений по исключениям. Исключения могут снизить уровень защиты конечных точек. Исключения, если таковые есть, следует определять с осторожностью.

Дополнительные сведения об анализаторе производительности см. в документации по анализатору производительности .

Важно!

Для этого командлета требуются повышенные права администратора.

Примеры: New-MpPerformanceRecording

Пример 1. Сбор записи производительности и ее сохранение
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 (как указано аргументом $s параметра Session) и сохраняет ее по указанному пути: C:\LocalPathOnServer02\trace.etl в Server02.

Параметры: New-MpPerformanceRecording

-RecordTo

Указывает расположение для сохранения записи производительности антивредоносного ПО в Microsoft Defender.

Type: String
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Сеанс

Указывает объект, PSSession в котором необходимо создать и сохранить запись производительности антивирусной программы в Microsoft Defender. При использовании этой команды 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 анализирует ранее собранную запись производительности антивирусной программы Microsoft Defender (New-MpPerformanceRecording) и сообщает о путях к файлам, расширениях файлов и процессах, которые оказывают наибольшее влияние на проверки антивирусной программы в Microsoft Defender.

Анализатор производительности предоставляет представление о проблемных файлах, которые могут привести к снижению производительности антивирусной программы в Microsoft Defender. Это средство предоставляется "как есть" и не предназначено для предоставления предложений по исключениям. Исключения могут снизить уровень защиты конечных точек. Исключения, если таковые есть, следует определять с осторожностью.

Дополнительные сведения об анализаторе производительности см. в документации по анализатору производительности .

Поддерживаемые версии ОС:

Windows версии 10 и более поздних.

Примечание.

Эта функция доступна начиная с версии 4.18.2108.X платформы и более поздних версий.

Примеры: Get-MpPerformanceReport

Пример 1. Один запрос
Get-MpPerformanceReport -Path .\Defender-scans.etl -TopScans 20
Пример 2. Несколько запросов
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.

Этот флаг может сопровождать все остальные параметры верхнего пути. Если этот параметр отсутствует, предполагается значение по умолчанию 3. Значение не может быть равным 0.

- Type: Int32
- Position: Named
- Default value: 3
- Accept pipeline input: False
- Accept wildcard characters: False
flag определение
-TopScansPerPath Указывает, сколько верхних сканирований необходимо указать для каждого верхнего пути.
-TopFilesPerPath Указывает, сколько верхних файлов следует указать для каждого верхнего пути.
-TopScansPerFilePerPath Указывает, сколько самых верхних проверок будет выводиться для каждого верхнего файла по каждому верхнему пути, отсортированное по длительности.
-TopExtensionsPerPath Указывает, сколько верхних расширений будет выводиться для каждого верхнего пути.
-TopScansPerExtensionPerPath Указывает, сколько проверок верхнего уровня выводится для каждого верхнего расширения для каждого верхнего пути.
-TopProcessesPerPath Указывает, сколько основных процессов необходимо вывести для каждого верхнего пути.
-TopScansPerProcessPerPath Указывает, сколько проверок верхнего уровня необходимо вывести для каждого верхнего процесса для каждого верхнего пути.
-TopPathsPerExtension Указывает, сколько верхних путей для вывода для каждого верхнего расширения
-TopScansPerPathPerExtension Указывает, сколько проверок верхнего уровня выводится для каждого верхнего пути для каждого верхнего расширения.
-TopPathsPerProcess Указывает, сколько верхних путей для вывода для каждого верхнего процесса
-TopScansPerPathPerProcess Указывает, сколько проверок верхнего уровня необходимо вывести для каждого верхнего пути для каждого верхнего процесса.
-MinDuration

Указывает минимальную длительность любой проверки или общую длительность сканирования файлов, расширений и процессов, включенных в отчет; принимает такие значения, как 0.1234567sec, 0.1234ms, 0.1usили допустимый диапазон времени.

Type: String
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Путь

Указывает путь или пути к одному или нескольким расположениям.

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

Указывает, сколько верхних расширений для вывода, отсортированных по длительности.

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

Запрашивает отчет о верхних файлах и указывает, сколько лучших файлов будет выводиться, отсортированных по длительности.

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

Указывает, сколько основных проверок будет выводиться для каждого верхнего расширения для каждого верхнего процесса, отсортированного по длительности.

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

Совет

Хотите узнать больше? Обратитесь к сообществу Майкрософт по безопасности в техническом сообществе Microsoft Defender для конечной точки Tech Community.