Trace-Command
Настраивает и запускает трассировку указанного выражения или команды.
Синтаксис
Trace-Command
[-InputObject <PSObject>]
[-Name] <String[]>
[[-Option] <PSTraceSourceOptions>]
[-Expression] <ScriptBlock>
[-ListenerOption <TraceOptions>]
[-FilePath <String>]
[-Force]
[-Debugger]
[-PSHost]
[<CommonParameters>]
Trace-Command
[-InputObject <PSObject>]
[-Name] <String[]>
[[-Option] <PSTraceSourceOptions>]
[-Command] <String>
[-ArgumentList <Object[]>]
[-ListenerOption <TraceOptions>]
[-FilePath <String>]
[-Force]
[-Debugger]
[-PSHost]
[<CommonParameters>]
Описание
Командлет Trace-Command
настраивает и запускает трассировку указанного выражения или команды.
Он аналогичен командлету Set-TraceSource за тем исключением, что его действие распространяется только на указанную команду.
Примеры
Пример 1. Обработка метаданных трассировки, привязка параметров и выражение
В этом примере запускается трассировка обработки метаданных, привязки параметров, а также создание и уничтожение выражения командлета Get-Process Notepad
.
Trace-Command -Name metadata,parameterbinding,cmdlet -Expression {Get-Process Notepad} -PSHost
Он использует параметр Name для указания источников трассировки, параметр Expression для указания команды и параметр PSHost для отправки выходных данных в консоль. Так как параметры трассировки или прослушивателя не указаны, команда использует значения по умолчанию:
- Все для параметров трассировки
- Нет для параметров прослушивателя
Пример 2. Трассировка действий операций ParameterBinding
В этом примере выполняется трассировка действий операций ParameterBinding PowerShell во время обработки Get-Alias
выражения, принимающего входные данные из конвейера.
$A = "i*"
Trace-Command ParameterBinding {Get-Alias $Input} -PSHost -InputObject $A
В Trace-Command
параметр InputObject передает объект выражению, которое обрабатывается во время трассировки.
Первая команда сохраняет строку i*
в переменной $A
. Вторая команда использует Trace-Command
командлет с источником трассировки ParameterBinding. Параметр PSHost отправляет выходные данные в консоль.
Обрабатываемые выражения — Get-Alias $Input
, где $Input
переменная связана с параметром InputObject . Параметр InputObject передает переменную $A
выражению. По сути, команда, обрабатываемая во время трассировки, имеет значение Get-Alias -InputObject $A" or "$A | Get-Alias
.
Параметры
-ArgumentList
Указывает параметры и значения параметров для трассируемой команды. Псевдоним для ArgumentList — Args. Эта функция особенно полезна для отладки динамических параметров.
Дополнительные сведения о поведении ArgumentList см. в разделе about_Splatting.
Type: | Object[] |
Aliases: | Args |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Command
Указывает команду, обрабатываемую во время трассировки.
Type: | String |
Position: | 1 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Debugger
Указывает, что командлет отправляет выходные данные трассировки отладчику. Выходные данные можно просмотреть в любом отладчике, работающем в пользовательском режиме или в режиме ядра, либо в Visual Studio. Данный параметр также определяет прослушиватель трассировки по умолчанию.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Expression
Указывает выражение, обрабатываемое во время трассировки. Заключите выражение в фигурные скобки ({}
).
Type: | ScriptBlock |
Position: | 1 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-FilePath
Указывает файл, в который командлет отправляет выходные данные трассировки. Данный параметр также определяет прослушиватель трассировки файла.
Type: | String |
Aliases: | PSPath, Path |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Force
Принудительное выполнение команды без запроса на подтверждение пользователем. Используется с параметром FilePath . Даже с помощью параметра Force командлет не может переопределить ограничения безопасности.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InputObject
Задает входные данные для выражения, обрабатываемого во время трассировки. Можно ввести переменную, которая представляет выходные данные, принимаемые этим выражением, или передать объект по конвейеру.
Type: | PSObject |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-ListenerOption
Указывает необязательные данные для префикса каждого сообщения трассировки в выходных данных. Допустимые значения для этого параметра:
None
LogicalOperationStack
DateTime
Timestamp
ProcessId
ThreadId
Callstack
Значение по умолчанию — None
.
Эти значения определяются как перечисление на основе флагов. С помощью этого параметра можно объединить несколько значений, чтобы задать несколько флагов. Значения можно передать в параметр ListenerOption в виде массива значений или в виде строки с разделителями-запятыми этих значений. Командлет объединит значения с помощью операции binary-OR. Передача значений в виде массива является самым простым вариантом, а также позволяет использовать заполнение табуляции для значений.
Type: | TraceOptions |
Accepted values: | None, LogicalOperationStack, DateTime, Timestamp, ProcessId, ThreadId, Callstack |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Name
Указывает массив отслеживаемых компонентов PowerShell. Введите имя источника трассировки для каждого компонента. Разрешено использовать подстановочные знаки. Чтобы найти источники трассировки на компьютере, введите Get-TraceSource
.
Type: | String[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Option
Определяет тип трассируемых событий. Допустимые значения для этого параметра:
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
Эти значения определяются как перечисление на основе флагов. С помощью этого параметра можно объединить несколько значений, чтобы задать несколько флагов. Значения можно передать в параметр Option в виде массива значений или в виде строки этих значений, разделенной запятыми. Командлет объединит значения с помощью операции binary-OR. Передача значений в виде массива является самым простым вариантом, а также позволяет использовать заполнение табуляции для значений.
Type: | PSTraceSourceOptions |
Accepted values: | None, Constructor, Dispose, Finalizer, Method, Property, Delegates, Events, Exception, Lock, Error, Errors, Warning, Verbose, WriteLine, Data, Scope, ExecutionFlow, Assert, All |
Position: | 2 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-PSHost
Указывает, что командлет отправляет выходные данные трассировки на узел PowerShell. Данный параметр также определяет прослушиватель трассировки PSHost.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Входные данные
Объекты, представляющие входные данные для выражения, можно передать в Trace-Command
.
Выходные данные
Возвращает выходные данные трассировки в поток отладки.
Примечания
Трассировка — это метод, применяемый разработчиками для отладки и изменения программы. Во время трассировки программа создает подробные сообщения о каждом шаге внутренней обработки.
Командлеты трассировки PowerShell предназначены для помощи разработчикам PowerShell, но они доступны всем пользователям. Они позволяют отслеживать практически все аспекты функциональных возможностей оболочки.
Чтобы найти компоненты PowerShell, для которых включена трассировка, введите
Get-Help Get-TraceSource
.Источник трассировки — это часть каждого компонента PowerShell, который управляет трассировкой и создает сообщения трассировки для компонента. Чтобы выполнить трассировку компонента, указать определить его источник трассировки.
Прослушиватель трассировки получает выходные данные трассировки и отображает их пользователю. Вы можете отправить данные трассировки в отладчик в пользовательском режиме или режиме ядра, в узел или консоль, в файл или в пользовательский прослушиватель, производный от класса System.Diagnostics.TraceListener .
При использовании набора параметров commandSet PowerShell обрабатывает команду так же, как и в конвейере. Например, обнаружение команды не повторяется для каждого поступающего объект
Имена параметров Name, Expression, Option и Command являются необязательными. Если опустить имена параметров, значения неименованных параметров должны отображаться в следующем порядке: Name, Expression, Option или Name, Command, Option. При указании имен параметры могут следовать в любом порядке.