다음을 통해 공유


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>]

Description

Trace-Command cmdlet은 지정된 식 또는 명령의 추적을 구성하고 시작합니다. 지정된 명령에만 적용된다는 점을 제외하고 Set-TraceSource와 같이 작동합니다.

예제

예제 1: 추적 메타데이터 처리, 매개 변수 바인딩 및 식

이 예제에서는 메타데이터 처리, 매개 변수 바인딩 및 cmdlet 생성 및 Get-Process Notepad 식의 소멸 추적을 시작합니다.

Trace-Command -Name metadata,parameterbinding,cmdlet -Expression {Get-Process Notepad} -PSHost

Name 매개 변수를 사용하여 추적 원본을 지정하고, Expression 매개 변수를 사용하여 명령을 지정하고, PSHost 매개 변수를 사용하여 출력을 콘솔로 보냅니다. 추적 옵션 또는 수신기 옵션을 지정하지 않으므로 이 명령은 기본값을 사용합니다.

  • 추적 옵션에 대한 모든 항목
  • 수신기 옵션에 대한 없음

예제 2: ParameterBinding 작업의 작업 추적

이 예제에서는 파이프라인에서 입력을 가져오는 Get-Alias 식을 처리하는 동안 PowerShell의 ParameterBinding 작업의 작업을 추적합니다.

$A = "i*"
Trace-Command ParameterBinding {Get-Alias $Input} -PSHost -InputObject $A

Trace-Command InputObject 매개 변수는 추적 중에 처리되는 식에 개체를 전달합니다.

첫 번째 명령은 문자열 i*$A 변수에 저장합니다. 두 번째 명령은 parameterBinding 추적 원본과 함께 Trace-Command cmdlet을 사용합니다. PSHost 매개 변수는 출력을 콘솔로 보냅니다.

처리되는 식은 Get-Alias $Input, 여기서 $Input 변수는 InputObject 매개 변수와 연결됩니다. InputObject 매개 변수는 변수 $A 식에 전달합니다. 실제로 추적 중에 처리되는 명령은 Get-Alias -InputObject $A" or "$A | Get-Alias.

매개 변수

-ArgumentList

추적 중인 명령에 대한 매개 변수 및 매개 변수 값을 지정합니다. ArgumentList 별칭은 인수 . 이 기능은 동적 매개 변수를 디버깅하는 데 유용합니다.

ArgumentList동작에 대한 자세한 내용은 about_Splatting참조하세요.

형식:Object[]
별칭:Args
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-Command

추적 중에 처리되는 명령을 지정합니다.

이 매개 변수를 사용하는 경우 PowerShell은 파이프라인에서 처리되는 것처럼 명령을 처리합니다. 예를 들어 들어오는 각 개체에 대해 명령 검색이 반복되지 않습니다.

형식:String
Position:1
Default value:None
필수:True
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-Debugger

cmdlet이 추적 출력을 디버거로 보내도록 나타냅니다. 모든 사용자 모드 또는 커널 모드 디버거 또는 Visual Studio에서 출력을 볼 수 있습니다. 이 매개 변수는 기본 추적 수신기도 선택합니다.

형식:SwitchParameter
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-Expression

추적 중에 처리되는 식을 지정합니다. 식을 중괄호({})로 묶습니다.

형식:ScriptBlock
Position:1
Default value:None
필수:True
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-FilePath

cmdlet이 추적 출력을 보내는 파일을 지정합니다. 또한 이 매개 변수는 파일 추적 수신기를 선택합니다.

형식:String
별칭:PSPath
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-Force

사용자 확인을 요청하지 않고 명령을 강제로 실행합니다. FilePath 매개 변수와 함께 사용됩니다. Force 매개 변수를 사용하는 경우에도 cmdlet은 보안 제한을 재정의할 수 없습니다.

형식:SwitchParameter
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-InputObject

추적 중에 처리되는 식에 대한 입력을 지정합니다. 식에서 허용하는 입력을 나타내는 변수를 입력하거나 파이프라인을 통해 개체를 전달할 수 있습니다.

형식:PSObject
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:True
와일드카드 문자 허용:False

-ListenerOption

출력에 있는 각 추적 메시지의 접두사에 대한 선택적 데이터를 지정합니다. 이 매개 변수에 허용되는 값은 다음과 같습니다.

  • None
  • LogicalOperationStack
  • DateTime
  • Timestamp
  • ProcessId
  • ThreadId
  • Callstack

None 기본값입니다.

이러한 값은 플래그 기반 열거형으로 정의됩니다. 이 매개 변수를 사용하여 여러 값을 결합하여 여러 플래그를 설정할 수 있습니다. 값은 값 배열 또는 해당 값의 쉼표로 구분된 문자열로 ListenerOption 매개 변수에 전달될 수 있습니다. cmdlet은 이진 OR 연산을 사용하여 값을 결합합니다. 값을 배열로 전달하는 것이 가장 간단한 옵션이며 값에 대한 탭 완성을 사용할 수도 있습니다.

형식:TraceOptions
허용되는 값:None, LogicalOperationStack, DateTime, Timestamp, ProcessId, ThreadId, Callstack
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-Name

추적되는 PowerShell 구성 요소의 배열을 지정합니다. 각 구성 요소의 추적 원본 이름을 입력합니다. 와일드카드가 허용됩니다. 컴퓨터에서 추적 원본을 찾으려면 Get-TraceSource입력합니다.

형식:String[]
Position:0
Default value:None
필수:True
파이프라인 입력 허용:False
와일드카드 문자 허용: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 매개 변수에 값 배열 또는 해당 값의 쉼표로 구분된 문자열로 전달될 수 있습니다. cmdlet은 이진 OR 연산을 사용하여 값을 결합합니다. 값을 배열로 전달하는 것이 가장 간단한 옵션이며 값에 대한 탭 완성을 사용할 수도 있습니다.

형식:PSTraceSourceOptions
허용되는 값: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
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-PSHost

cmdlet이 추적 출력을 PowerShell 호스트로 보내도록 나타냅니다. 이 매개 변수는 PSHost 추적 수신기도 선택합니다.

형식:SwitchParameter
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

입력

PSObject

입력을 나타내는 개체를 이 cmdlet에 파이프할 수 있습니다.

출력

PSObject

이 cmdlet은 자체 출력을 반환하지 않습니다. 추적된 명령은 출력을 반환할 수 있습니다. 이 cmdlet은 명령 추적을 디버그 스트림에 씁니다.

참고

Windows PowerShell에는 Trace-Command다음과 같은 별칭이 포함되어 있습니다.

  • trcm

추적은 개발자가 프로그램을 디버그하고 구체화하는 데 사용하는 방법입니다. 추적할 때 프로그램은 내부 처리의 각 단계에 대한 자세한 메시지를 생성합니다. PowerShell 추적 cmdlet은 PowerShell 개발자를 지원하도록 설계되었지만 모든 사용자가 사용할 수 있습니다. 셸 기능의 거의 모든 측면을 모니터링할 수 있습니다.

추적 원본은 추적을 관리하고 구성 요소에 대한 추적 메시지를 생성하는 각 PowerShell 구성 요소의 일부입니다. 구성 요소를 추적하려면 해당 추적 원본을 식별합니다.

Get-TraceSource 사용하여 추적에 사용할 수 있는 PowerShell 구성 요소 목록을 확인합니다.

추적 수신기는 추적의 출력을 받아 사용자에게 표시합니다. 추적 데이터를 사용자 모드 또는 커널 모드 디버거, 호스트 또는 콘솔, 파일 또는 System.Diagnostics.TraceListener 클래스에서 파생된 사용자 지정 수신기로 보내도록 선택할 수 있습니다.