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

Синтаксис

Debug-Process [-Name] <string[]> [-Confirm] [-WhatIf] [<CommonParameters>]

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

Debug-Process -InputObject <Process[]> [-Confirm] [-WhatIf] [<CommonParameters>]

Описание

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

Командлет Debug-Process присоединяет отладчик, который в данный момент зарегистрирован для процесса. Перед использованием этого командлета проверьте, что отладчик загружен и правильно настроен.

Параметры

-Id <Int32[]>

Задает идентификаторы отлаживаемых процессов. Имя параметра ("-Id") указывать необязательно.

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

Обязательно?

true

Позиция?

1

Значение по умолчанию

нет

Принимать входные данные из конвейера?

true (ByPropertyName)

Принимать подстановочные знаки?

false

-InputObject <Process[]>

Задает объекты процессов, которые представляют отлаживаемые процессы. Введите переменную, содержащую объекты процессов, либо команду, получающую объекты процессов, например Get-Process. Кроме того, можно передать объекты процессов командлету Debug-Process по конвейеру.

Обязательно?

true

Позиция?

named

Значение по умолчанию

Принимать входные данные из конвейера?

true (ByValue)

Принимать подстановочные знаки?

false

-Name <string[]>

Задает имена отлаживаемых процессов. Если заданному имени соответствует несколько процессов, Debug-Process присоединяет отладчик ко всем процессам с этим именем. Имя параметра ("Name") указывать необязательно.

Обязательно?

true

Позиция?

1

Значение по умолчанию

Принимать входные данные из конвейера?

true (ByPropertyName)

Принимать подстановочные знаки?

false

-Confirm

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

Обязательно?

false

Позиция?

named

Значение по умолчанию

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-WhatIf

Описывает, что произойдет при выполнении команды, без ее фактического выполнения.

Обязательно?

false

Позиция?

named

Значение по умолчанию

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

<CommonParameters>

Данный командлет поддерживает общие параметры -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer и -OutVariable. Дополнительные сведения см. в разделе about_Commonparameters.

Ввод и вывод

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

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

System.Int32, System.Diagnostics.Process, System.String

Идентификатор процесса (Int32), объект процесса (System.Diagnostics.Process) или имя процесса (String) можно передать командлету Debug-Process по конвейеру.

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

Нет

Этот командлет не формирует никаких выходных данных.

Примечания

Этот командлет использует метод AttachDebugger класса Win32_Process инструментария управления Windows (WMI). Дополнительные сведения об этом методе см. в разделе "Метод AttachDebugger" библиотеки MSDN (Microsoft Developer Network) по адресу (на английском языке).

Пример 1

C:\PS>debug-process -name powershell

Описание
-----------
Эта команда присоединяет отладчик к процессу PowerShell, выполняющемуся на данном компьютере.






Пример 2

C:\PS>debug-process -name sql*

Описание
-----------
Эта команда присоединяет отладчик ко всем процессам, имена которых начинаются с комбинации символов "sql".






Пример 3

C:\PS>debug-process winlogon, explorer, outlook

Описание
-----------
Эта команда присоединяет отладчик к процессам Winlogon, Explorer и Outlook.






Пример 4

C:\PS>debug-process -id 1132, 2028

Описание
-----------
Эта команда присоединяет отладчик к процессам с идентификаторами 1132 и 2028.






Пример 5

C:\PS>get-process powershell | debug-process

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

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






Пример 6

C:\PS>$pid | debug-process

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

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

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






Пример 7

C:\PS>get-process -computername Server01, Server02 -name MyApp | debug-process

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

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






Пример 8

C:\PS>$p = get-process powershell

C:\PS> debug-process -inputobject $p

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

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

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






См. также