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


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. Присоединение отладчика к указанному процессу на нескольких компьютерах

Get-Process -ComputerName "Server01", "Server02" -Name "MyApp" | Debug-Process

Эта команда присоединяет отладчик к процессам MyApp на компьютерах Server01 и Server02.

Команда использует Get-Process командлет для получения процессов MyApp на компьютерах Server01 и Server02. Он использует оператор конвейера для отправки процессов Debug-Process командлету, который присоединяет отладчики.

Пример 8. Присоединение отладчика к процессу, использующего параметр 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

Указывает идентификаторы процессов, которые необходимо отладить. Имя параметра 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

Указывает имена процессов, которые необходимо отладить. Если существует несколько процессов с одинаковым именем, этот командлет присоединяет отладчик ко всем процессам с таким именем. Параметр 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" в библиотеке MSDN.