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

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

Платформы

  • Windows

Требования

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

  • Поддерживаемые версии Windows: Windows 10, Windows 11, Windows 2012 R2 с современным унифицированным решением и Windows Server 2016 и более поздних версий
  • Версия платформы: 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 антивирусной программы. Анализатор производительности для антивирусной программы Microsoft Defender в Windows 10, Windows 11 и Windows Server — это средство командной строки PowerShell, которое помогает определять файлы, расширения файлов и процессы, которые могут вызывать проблемы с производительностью на отдельных конечных точках во время проверки антивирусной программы. Сведения, собранные анализатором производительности, можно использовать для оценки проблем с производительностью и применения действий по исправлению.

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

Образ концептуального анализатора производительности для антивирусной программы Microsoft Defender. Схема связана с: Microsoft Defender анализатор производительности, анализатор производительности Defender, Get-MpPerformanceRepor, New-MpPerformanceRecording, Защитник Windows, Microsoft Defender, microsoft Windows 10, антивирусная программа Microsoft Defender, микро-windows 11, антивирусная программа Для Windows, антивирусная программа Майкрософт, антивирусная программа

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

  • Основные пути, влияющие на время сканирования
  • Основные файлы, влияющие на время сканирования
  • Основные процессы, влияющие на время сканирования
  • Основные расширения файлов, влияющие на время сканирования
  • Сочетания— например:
    • 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

В следующем разделе описывается справочник по новому командлету PowerShell New-MpPerformanceRecording. Этот командлет собирает запись производительности 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

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

Синтаксис: 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]

Описание: Get-MpPerformanceReport

Командлет Get-MpPerformanceReport анализирует ранее собранный Microsoft Defender записи производительности антивирусной программы (New-MpPerformanceRecording) и сообщает о путях к файлам, расширениях файлов и процессах, которые оказывают наибольшее влияние на Microsoft Defender проверки антивирусной программы.

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

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

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

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,1234 мс, 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

Дополнительные ресурсы

Если вы ищете информацию, связанную с антивирусной программой, для других платформ, см. следующие статьи:

Совет

Хотите узнать больше? Engage с сообществом Microsoft Security в нашем техническом сообществе: Microsoft Defender для конечной точки Техническое сообщество.