Анализатор производительности для антивирусной программы Microsoft Defender
Область применения
- Microsoft Defender для конечной точки (план 1)
- Microsoft Defender для конечной точки (план 2)
- Антивирусная программа в Microsoft Defender
Платформы
- Windows
Требования
Анализатор производительности антивирусной программы Microsoft Defender имеет следующие предварительные требования.
- Поддерживаемые версии Windows:
- Windows 10
- Windows 11
- Windows Server 2016 и более поздних версий
- Windows Server 2012 R2 (при подключении с использованием современного унифицированного решения)
- Для Windows Server 2012 R2 требуется Windows ADK (Windows Performance Toolkit). Скачивание и установка Windows ADK
- Версия платформы:
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.
Ниже приведены некоторые варианты анализа.
- Основные пути, влияющие на время сканирования
- Основные файлы, влияющие на время сканирования
- Основные процессы, влияющие на время сканирования
- Основные расширения файлов, влияющие на время сканирования
- Сочетания— например:
- top files per extension
- верхние пути на расширение
- top процессов на путь
- большее число сканирований на файл
- большее число сканирований на файл на каждый процесс
Запуск анализатора производительности
Общий процесс запуска анализатора производительности включает в себя следующие действия.
Запустите анализатор производительности, чтобы собрать запись о событиях антивирусной программы Microsoft Defender в конечной точке.
Примечание.
Производительность событий антивирусной программы в Microsoft Defender этого типа
Microsoft-Antimalware-Engine
записывается через анализатор производительности.Анализ результатов сканирования с помощью различных отчетов о записи.
Использование анализатора производительности
Чтобы начать запись системных событий, откройте PowerShell в режиме администратора и выполните следующие действия.
Выполните следующую команду, чтобы начать запись:
New-MpPerformanceRecording -RecordTo <recording.etl>
параметр where
-RecordTo
указывает полное расположение пути, в котором сохраняется файл трассировки. Дополнительные сведения о командлетах см. в статье Командлеты антивирусной программы Microsoft Defender.Если есть процессы или службы, которые, как полагают, влияют на производительность, воспроизведите ситуацию, выполнив соответствующие задачи.
Нажмите клавишу ВВОД , чтобы остановить и сохранить запись, или CTRL+C , чтобы отменить запись.
Проанализируйте результаты с помощью параметра анализатора
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 основных файлов для влияния сканирования.
Экспорт и преобразование в CSV и JSON
Результаты анализатора производительности также можно экспортировать и преобразовать в CSV- или JSON-файл. Эта статья содержит примеры, описывающие процесс "экспорта" и "преобразования" с помощью примера кода.
Начиная с версии 4.18.2206.X
Defender пользователи могут просматривать сведения о причине пропуска сканирования в столбце 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-MpPerformanceRecording
PowerShell . Этот командлет собирает запись о производительности проверок антивирусной программы в 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.