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


Debug-Process

Отладка одного или нескольких процессов, выполняемых на локальном компьютере.

Синтаксис

Debug-Process
     [-Name] <String[]>
     [-WhatIf]
     [-Confirm]
     [<CommonParameters>]
Debug-Process
     [-Id] <Int32[]>
     [-WhatIf]
     [-Confirm]
     [<CommonParameters>]
Debug-Process
     -InputObject <Process[]>
     [-WhatIf]
     [-Confirm]
     [<CommonParameters>]

Описание

Командлет Debug-Process подключает отладчик к одному или нескольким запущенным процессам на локальном компьютере. Вы можете указать процессы по имени процесса или идентификатору процесса (PID) или передать объекты обработки в этот командлет.

Этот командлет присоединяет отладчик, зарегистрированный для процесса. Перед применением этого командлета убедитесь, что отладчик установлен и настроен.

Примеры

Пример 1. Присоединение отладчика к процессу на компьютере

Debug-Process -Name Powershell

Эта команда подключает отладчик к процессу PowerShell на компьютере.

Пример 2. Присоединение отладчика ко всем процессам, начинающимся с указанной строки

Debug-Process -Name note*

Эта команда подключает отладчик ко всем процессам с именами, начинающимися с note.

Пример 3. Присоединение отладчика к нескольким процессам

Debug-Process "Winlogon", "Explorer", "Outlook"

Эта команда пытается подключить отладчик к процессам Winlogon, Explorer и Outlook. Winlogon — это защищенный процесс. Чтобы отладить Winlogon, необходимо выполнить команду от имени администратора.

Пример 4. Присоединение отладчика к нескольким идентификаторам процессов

Debug-Process -Id 1132, 2028

Эта команда подключает отладчик к процессам, имеющим идентификаторы процессов 1132 и 2028.

Пример 5. Использование Get-Process для получения процесса, а затем подключения отладчика к нему

Get-Process PowerShell | Debug-Process

Эта команда подключает отладчик к процессам PowerShell на компьютере. Он использует командлет Get-Process для получения процессов PowerShell на компьютере и использует оператор конвейера (|) для отправки процессов в командлет Debug-Process.

Чтобы указать конкретный процесс PowerShell, используйте параметр идентификатора Get-Process.

Пример 6. Присоединение отладчика к текущему процессу на локальном компьютере

Debug-Process -Id $PID

Эта команда подключает отладчик к текущим процессам PowerShell на компьютере.

Команда использует $PID автоматическую переменную, содержащую идентификатор процесса текущего процесса PowerShell. Затем он использует оператор конвейера (|) для отправки идентификатора процесса в командлет Debug-Process.

Дополнительные сведения об автоматической переменной $PID см. в about_Automatic_Variables.

Пример 7. Присоединение отладчика к процессу, использующего параметр InputObject

$P = Get-Process PowerShell
Debug-Process -InputObject $P

Эта команда подключает отладчик к процессам PowerShell на локальном компьютере.

Первая команда использует командлет Get-Process для получения процессов PowerShell, выполняющихся на компьютере. Он сохраняет полученный объект процесса в переменной с именем $P.

Вторая команда использует параметр InputObject командлета Debug-Process для передачи объекта процесса в переменную $P.

Параметры

-Confirm

Запрашивает подтверждение перед запуском командлета.

Тип:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Id

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

Чтобы найти идентификатор процесса процесса, введите Get-Process.

Тип:Int32[]
Aliases:PID, ProcessId
Position:0
Default value:None
Обязательно:True
Принять входные данные конвейера:True
Принять подстановочные знаки:False

-InputObject

Указывает объекты процесса, представляющие процессы для отладки. Введите переменную, содержащую объекты процесса или команду, которая получает объекты процесса, например командлет Get-Process. Вы также можете передать объекты обработки в этот командлет.

Тип:Process[]
Position:Named
Default value:None
Обязательно:True
Принять входные данные конвейера:True
Принять подстановочные знаки:False

-Name

Указывает имена отлаживаемых процессов. Если существует несколько процессов с одинаковым именем, этот командлет присоединяет отладчик ко всем процессам с таким именем. Параметр имени является необязательным.

Тип:String[]
Aliases:ProcessName
Position:0
Default value:None
Обязательно:True
Принять входные данные конвейера:True
Принять подстановочные знаки:False

-WhatIf

Показывает, что произойдет, если командлет будет выполнен. Командлет не выполняется.

Тип:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

Входные данные

Int32

Идентификатор процесса можно передать в этот командлет.

Process

Объект процесса можно передать в этот командлет.

String

Имя процесса можно передавать в этот командлет.

Выходные данные

None

Этот командлет не возвращает выходные данные.

Примечания

Этот командлет использует метод AttachDebugger класса Win32_Process инструментария управления Windows (WMI). Дополнительные сведения об этом методе см. метод AttachDebugger в Microsoft Learn.