Настраивает и запускает трассировку указанного выражения или команды.

Синтаксис

Trace-Command [-Command] <string> [-ArgumentList <Object[]>] [-Name] <string[]> [[-Option] {<None> | <Constructor> | <Dispose> | <Finalizer> | <Method> | <Property> | <Delegates> | <Events> | <Exception> | <Lock> | <Error> | <Errors> | <Warning> | <Verbose> | <WriteLine> | <Data> | <Scope> | <ExecutionFlow> | <Assert> | <All>}] [-Debugger] [-FilePath <string>] [-Force] [-InputObject <psobject>] [-ListenerOption {<None> | <LogicalOperationStack> | <DateTime> | <Timestamp> | <ProcessId> | <ThreadId> | <Callstack>}] [-PSHost] [<CommonParameters>]

Trace-Command [-Expression] <scriptblock> [-Name] <string[]> [[-Option] {<None> | <Constructor> | <Dispose> | <Finalizer> | <Method> | <Property> | <Delegates> | <Events> | <Exception> | <Lock> | <Error> | <Errors> | <Warning> | <Verbose> | <WriteLine> | <Data> | <Scope> | <ExecutionFlow> | <Assert> | <All>}] [-Debugger] [-FilePath <string>] [-Force] [-InputObject <psobject>] [-ListenerOption {<None> | <LogicalOperationStack> | <DateTime> | <Timestamp> | <ProcessId> | <ThreadId> | <Callstack>}] [-PSHost] [<CommonParameters>]

Описание

Командлет Trace-Command настраивает и запускает трассировку указанного выражения или команды. Он аналогичен командлету Set-TraceSource за исключением того, что его действие распространяется только на указанную команду.

Параметры

-ArgumentList <Object[]>

Указывает параметры и значения параметров для трассируемой команды. Псевдоним ArgumentList — Args. Эта функция особенно полезна для отладки динамических параметров.

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

false

Позиция?

named

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

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

false

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

false

-Command <string>

Указывает команду, обрабатываемую во время трассировки.

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

true

Позиция?

2

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

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

false

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

false

-Debugger

Отправляет выходные данные трассировки в отладчик. Выходные данные можно просмотреть в любом отладчике, работающем в пользовательском режиме или режиме ядра, или в Visual Studio. Данный параметр также задает прослушиватель трассировки по умолчанию.

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

false

Позиция?

named

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

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

false

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

false

-Expression <scriptblock>

Указывает выражение, обрабатываемое во время трассировки. Заключайте выражение в фигурные скобки ({}).

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

true

Позиция?

2

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

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

false

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

false

-FilePath <string>

Записывает выходные данные трассировки в указанный файл. Данный параметр также выбирает прослушиватель трассировки файла.

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

false

Позиция?

named

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

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

false

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

false

-Force

Позволяет командлету добавлять данные трассировки в файл, доступный только для чтения. Используется с параметром FilePath. Даже при использовании параметра Force командлет не может переопределить ограничения безопасности.

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

false

Позиция?

named

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

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

false

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

false

-InputObject <psobject>

Указывает ввод для выражения, обрабатываемого во время трассировки.

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

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

false

Позиция?

named

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

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

true (ByValue)

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

false

-ListenerOption <TraceOptions>

Добавляет необязательные данные в префикс каждого сообщения трассировки. Допустимые значения: None, LogicalOperationStack, DateTime, Timestamp, ProcessId, ThreadId и Callstack. По умолчанию используется "None".

Чтобы указать несколько параметров, разделите их запятыми без пробелов и заключите их в кавычки, например так: "ProcessID,ThreadID".

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

false

Позиция?

named

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

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

false

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

false

-Name <string[]>

Определяет компоненты Windows PowerShell для трассировки. Введите имя объекта трассировки для каждого компонента. Подстановочные знаки разрешены. Чтобы найти источники трассировки на компьютере, введите команду "Get-TraceSource".

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

true

Позиция?

1

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

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

false

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

false

-Option <PSTraceSourceOptions>

Определяет тип трассируемых событий.

Список допустимых значений: None, Constructor, Dispose, Finalizer, Method, Property, Delegates, Events, Exception, Lock, Error, Errors, Warning, Verbose, WriteLine, Data, Scope, ExecutionFlow, Assert и All. По умолчанию используется "All".

Следующие значения являются комбинацией других значений:

-- ExecutionFlow: (Constructor, Dispose, Finalizer, Method, Delegates, Events и Scope)

-- Data: (Constructor, Dispose, Finalizer, Property, Verbose и WriteLine)

-- Errors: (Error и Exception).

Чтобы указать несколько параметров, разделите их запятыми без пробелов и заключите их в кавычки, например так: "Constructor,Dispose".

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

false

Позиция?

3

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

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

false

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

false

-PSHost

Отправляет выходные данные трассировки в основное приложение Windows PowerShell. Данный параметр также задает прослушиватель трассировки PSHost.

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

false

Позиция?

named

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

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

false

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

false

<CommonParameters>

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

Ввод и вывод

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

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

System.Management.Automation.PSObject

Объекты, представляющие ввод выражения можно передавать командлету Trace-Command по конвейеру.

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

System.Management.Automation.PSObject

Возвращает трассировку команды в потоке отладки.

Примечания

Трассировка — это метод, используемый разработчиками для отладки и изменения программы. Во время трассировки программа формирует подробные сообщения о каждом шаге внутренней обработки.

Командлеты трассировки Windows PowerShell созданы для разработчиков Windows PowerShell, но доступны всем пользователям. Они позволяют отслеживать практически все аспекты функциональности оболочки.

Чтобы найти компоненты Windows PowerShell, поддерживающие трассировку, введите команду Get-Help Get-TraceSource.

"Источник трассировки" является частью каждого компонента Windows PowerShell, который управляет трассировкой и формирует сообщения трассировки для компонента. Чтобы выполнить трассировку компонента, нужно определить его источник трассировки.

"Прослушиватель трассировки" получает выходные данные трассировки и показывает их пользователю. Трассировочные данные можно отправить отладчику, работающему в пользовательском режиме или режиме ядра, главному приложению, на консоль, в файл или пользовательскому прослушивателю, производному от класса System.Diagnostics.TraceListener.

Если указан параметр Command, оболочка Windows PowerShell обрабатывает эту команду так же, как если бы она входила в состав конвейера. Например, обнаружение команды не повторяется для каждого поступающего объекта.

Имена параметров Name, Expression, Option и Command указывать необязательно. Если в команде отсутствуют имена параметров, безымянные значения параметров необходимо указывать в следующем порядке: Name, Expression, Option или Name, Command,-Option. При указании имен параметры могут следовать в любом порядке.

Пример 1

C:\PS>trace-command -name metadata,parameterbinding,cmdlet -expression {get-process notepad} -pshost

Описание
-----------
Эта команда инициирует трассировку обработки метаданных, привязки параметров, создания командлетов и уничтожения выражения "get-process notepad". Параметр Name используется в ней для указания источников трассировки, параметр Expression — для указания команды, а параметр PSHost — для отправления вывода на консоль. Так как никакие параметры трассировки и прослушивателя в этой команде не указаны, используются значения этих параметров по умолчанию: "All" и "None" соответственно.






Пример 2

C:\PS>trace-command -name commandprocessor,pipelineprocessor -command get-alias -argumentlist "ghy" -option executionflow -listenerOption "timestamp,callstack" -filepath c:\test\debug.txt

Описание
-----------
Эта команда запускает трассировку обработчика команд и обработчика конвейера при обработке команды "get-alias cd". 

Параметр Name указывает в ней источники трассировки, Command — команду, ArgumentList — параметры команды Get-Alias, Option — параметры трассировки, а ListenerOption — поля в префиксе сообщения трассировки. Параметр FilePath передает вывод в файл C:\Test\Debug.txt.






Пример 3

C:\PS>$a = "i*"

C:\PS> trace-command parameterbinding {get-alias $input} -pshost -inputobject $a

Описание
-----------
Эта команда выполняет трассировку действий операций ParameterBinding оболочки Windows PowerShell при обработке выражения Get-Alias, принимающего ввод по конвейеру.

В команде Trace-Command параметр InputObject передает объект выражению, обрабатываемому во время трассировки. 

Первая команда сохраняет строку "i*" в переменной $a. Во второй команде используется командлет Trace-Command с источником трассировки ParameterBinding. Параметр PSHost отправляет вывод на консоль. 

Обрабатываемым выражением является "get-alias $input", в котором переменная $input связана с параметром InputObject. Параметр InputObject передает этому выражению переменную $a. В результате во время трассировки обрабатывается команда "get-alias -inputobject $a" или "$a | get-alias".






См. также