지정된 식이나 명령의 추적을 구성하고 시작합니다.

구문

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 cmdlet은 지정된 식이나 명령의 추적을 구성하고, 시작합니다. 지정된 명령에만 적용되는 점을 제외하고 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

cmdlet이 읽기 전용 파일에 추적 정보를 추가할 수 있도록 합니다. FilePath 매개 변수와 함께 사용됩니다. Force 매개 변수를 사용해도 cmdlet은 보안 제한을 재정의할 수 없습니다.

필수 여부

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>

추적할 이벤트의 유형을 결정합니다.

유효한 값은 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>

이 cmdlet은 -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer, -OutVariable 등의 일반 매개 변수를 지원합니다. 자세한 내용은 about_Commonparameters.

입력 및 출력

입력 유형은 cmdlet으로 파이프할 수 있는 개체의 유형입니다. 반환 유형은 cmdlet에서 반환되는 개체의 유형입니다.

입력

System.Management.Automation.PSObject

식에 대한 입력을 나타내는 개체를 Trace-Command로 파이프할 수 있습니다.

출력

System.Management.Automation.PSObject

명령 추적을 디버그 스트림으로 반환합니다.

참고

추적은 개발자가 디버깅하고 프로그램을 다듬는 데 사용하는 방법입니다. 추적하면 프로그램에서 내부 프로세스의 각 단계에 대한 세부 메시지를 생성합니다.

Windows PowerShell 추적 cmdlet은 Windows PowerShell 개발자용으로 만들어졌지만 모든 사용자가 사용할 수 있습니다. 이 cmdlet을 사용하면 셸 기능의 거의 모든 면을 모니터링할 수 있습니다.

추적할 수 있는 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" 식의 cmdlet 작성 및 파괴의 추적을 시작합니다. 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

설명
-----------
이들 명령은 Windows PowerShell의 ParameterBinding 연산 작업이 파이프라인에서 입력을 가져오는 Get-Alias 식을 처리하는 동안 이 작업을 추적합니다.

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

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

처리 중인 식은 "get-alias $input"입니다. 여기서 $input 변수는 InputObject 매개 변수에 연결됩니다. InputObject 매개 변수는 $a 변수를 식으로 전달합니다. 그 결과 추적이 "get-alias -inputobject $a" 또는 "$a | get-alias"인 동안 명령이 처리됩니다.






참고 항목




목차