TSS(TroubleShootingScript 도구 집합) 소개

이 문서에서는 TSS(TroubleShootingScript) 도구 집합을 소개하고 자주 묻는 질문에 대한 답변을 제공합니다.

적용 대상: 지원되는 Windows Server 및 Windows 클라이언트 버전

TSS 도구 집합에는 PowerShell 기반 도구와 데이터 수집 및 진단 위한 프레임워크가 포함되어 있습니다. 도구 집합은 데이터 수집을 간소화하고 사례를 효율적이고 안전하게 resolve 것을 목표로 합니다.

도구 집합에는 Microsoft에서 서명한 여러 PowerShell 스크립트 및 실행 파일도 포함됩니다. 선택한 스위치에 따라 TSS는 하나 이상의 스크립트와 실행 파일을 사용하여 원하는 로그를 수집합니다.

에서 zip 파일(TSS.zip)으로 도구 집합을 https://aka.ms/getTSS다운로드할 수 있습니다.

필수 구성 요소

도구 집합이 제대로 실행되기 위한 몇 가지 필수 구성 요소는 다음과 같습니다.

  • TSS 도구 집합은 로컬 시스템에 대한 관리자 권한이 있는 계정으로 관리자 권한 PowerShell 창에서 실행해야 합니다. WINDOWS POWERSHELL ISE(통합 스크립팅 환경)에서 TSS 도구 집합을 실행하는 것은 지원되지 않습니다. EULA(최종 사용자 라이선스 계약)를 수락해야 합니다. EULA가 수락되면 TSS 도구 집합은 EULA에 대한 메시지를 다시 표시하지 않습니다.

  • 관리자 권한 PowerShell 명령 프롬프트에서 cmdlet Set-ExecutionPolicy -scope Process -ExecutionPolicy RemoteSigned -Force 을 실행하여 PowerShell 스크립트 실행 정책을 프로세스 수준에서 로 설정 RemoteSigned 해야 합니다.

    참고

    프로세스 수준 변경은 현재 PowerShell 세션에만 영향을 미칩니다.

TSS 도구 집합을 시작하는 방법

시나리오에 따라 다른 스위치로 TSS.ps1 시작할 수 있습니다. -Start 동사는 기본 및 선택적 동사이며 필요에 따라 보완 동사로 바꿀 수 있습니다. 보완 -Start 동사는 , -StartDiag, -StartNoWait-CollectLog입니다-StartAutoLogger.

동사 설명
-Start -Start 동사는 ETW(Windows용 이벤트 추적) 구성 요소 추적 또는 WPR(Windows Performance Recorder)과 같은 지원 도구를 시작합니다.

동사는 [-Start] 선택 사항이지만 보완 -start 옵션으로 바꿀 수 있습니다.
-StartAutoLogger 부팅 시 이러한 로그를 수집하려면 를 사용하여 -StartAutoLogger 를 바꿉 -Start니다.

cmdlet과 함께 .\TSS.ps1 -Stop 사용하여 문제가 재현되면 추적을 중지합니다.
-StartDiag 이 스위치는 현재 많이 사용되지는 않지만 여러 시나리오에서 나중에 사용되도록 하기 위한 것입니다. 현재 DFSN 네임스페이스의 진단 가져오기 위해 같은 NET_DFSn 다른 인수와 결합할 수 있습니다.
-StartNoWait 이 매개 변수를 사용하면 로그아웃하는 경우에도 추적이 활성 상태로 유지됩니다.

cmdlet과 함께 .\TSS.ps1 -Stop 사용하여 문제가 재현되면 추적을 중지합니다.
-CollectLog 이 매개 변수는 일반적으로 인수 DND_SetupReport와 함께 사용됩니다.

예:
.\TSS.ps1 -Collectlog DND_SetupReport

추적과 관련된 로그는 데이터 수집을 중지하면 자동으로 수집됩니다.

TSS 도구 집합을 사용하는 구문

매개 변수 설명
<placeholder> 자리 표시자에 대한 꺾쇠 괄호(<>)의 문자열을 실제 시나리오 이름, 추적 구성 요소, 명령 또는 값으로 대체해야 합니다.
[optional] 대괄호([ ])의 키워드(keyword) 또는 값은 선택 사항입니다. 예를 들어 는 [module:int] 모듈과 간격이 선택 사항이라는 것을 의미합니다. 가 생략되면 [<xx>:<yy>] 기본값이 사용됩니다.
| 이 매개 변수는 을 의미합니다 'OR'. 사용 가능한 옵션 중 하나를 선택할 수 있습니다.
: 두 값 사이의 구분 기호 문자입니다.

Cmdlet 예제

PowerShell cmdlet 설명
.\TSS.ps1 -PerfMon [General:10] 이 매개 변수는 및 초를 의미합니다PerfMon CounterSetName= = IntervalGeneral10. [General:10] 이 생략되면 기본값이 시작되므로 -PerfMon 와 같은 효과가 -PerfMon General -PerfIntervalSec 10적용됩니다.
.\TSS.ps1 [-StopWaitTimeInSec <N>] 이 매개 변수는 인수 -StopWaitTimeInSec 가 선택 사항이지만 지정된 경우 ="초 수"에 대한 <N> 값이 필수임을 의미합니다.

ETW(Windows용 이벤트 추적) 추적

ETW 추적 PowerShell cmdlet 설명
시나리오 추적을 사용하도록 설정합니다. .\TSS.ps1 -Scenario <ScenarioName> 지원되는 시나리오 이름은 cmdlet을 TSS.ps1 -ListSupportedScenarioTrace 사용하여 나열됩니다.
구성 요소 추적을 사용하도록 설정합니다. .\TSS.ps1 <-ComponentName> <-ComponentName> ... 지원 <-componentName> 되는 는 cmdlet을 TSS.ps1 -ListSupportedTrace 사용하여 나열됩니다.
대기 모드 없이 추적을 시작합니다. .\TSS.ps1 -StartNoWait -Scenario <ScenarioName>

.\TSS.ps1 -Stop
프롬프트가 즉시 반환되므로 과 같은 Shutdowncmdlet을 로그아웃하거나 사용할 수 있습니다.

cmdlet .\TSS.ps1 -Stop 은 추적을 중지합니다.

참고

구성 요소 및/또는 시나리오의 모든 공급자 GUID를 나열하려면 cmdlet을 -ListETWProviders 사용합니다. 예를 들면

.\TSS.ps1 -ListETWProviders <component-/scenario-name>

지원 도구 및 명령

지원 도구 또는 명령(예: ProcMon, ProcDump, netsh, 성능 모니터(PerfMon), WPR 또는 Radar)을 시작하여 특수 캡처를 위한 추가 도구를 사용하여 로그 수집을 향상시킵니다.

PowerShell cmdlet 설명
-Fiddler Fiddler 추적을 수집합니다. Fiddler를 설치해야 합니다.

도구>옵션을 선택하고 HTTPS 탭에서 HTTPS 트래픽 암호 해독을 선택하여 트래픽 암호 해독 옵션을 사용하도록 설정합니다.
-GPresult <Start|Stop|Both> 단계 start, stop또는 both에서 SysInternals Handle.exe 출력을 수집합니다.
-Handle <Start|Stop|Both> 단계 start, stop또는 both에서 SysInternals Handle.exe 출력을 수집합니다.
-LiveKD <Start|Stop|Both> SysInternals LiveKD -ml (라이브 커널 덤프)를 시작합니다.
<Start>: 재현이 시작될 때 덤프가 수행됩니다.
<Stop>: 덤프가 중지 시 수행됩니다.
<Both>: 덤프는 시작과 중지 모두에서 수행됩니다.
-Netsh
1. -NetshOptions '<Option string>'
2. -NetshMaxSizeMB <Int>
3. -noPacket
네트워크 패킷 캡처를 시작합니다.

1. 에 대한 추가 옵션을 지정합니다 Netsh. 예를 들면 'capturetype=both captureMultilayer=yes provider=Microsoft-Windows-PrimaryNetworkIcon provider={<GUID>}'와 같습니다.
2. 의 최대 로그 크기 Netsh (MB)입니다(예: -NetshMaxSizeMB 4096). 기본값은 2048입니다.
3. 패킷이 캡처 Netsh 되지 않도록 합니다(의 ScenarioName ETW 추적만 캡처됨).
-NetshScenario
1. -NetshOptions '<Option string>'
2. -NetshMaxSizeMB <Int>
3. -noPacket
시나리오 추적을 Netsh 시작합니다. 지원 <ScenarioName> 되는 는 cmdlet을 -ListSupportedNetshScenario 사용하여 나열됩니다.

1. 에 대한 추가 옵션을 지정합니다 Netsh. 예를 들면 'capturetype=both captureMultilayer=yes provider=Microsoft-Windows-PrimaryNetworkIcon provider={<GUID>}'와 같습니다.
2. 의 최대 로그 크기 Netsh (예: -NetshMaxSizeMB 4096)입니다. 기본값은 2048입니다.
3. 패킷이 캡처 Netsh 되지 않도록 합니다(시나리오 이름의 ETW 추적만 캡처됨).
-PerfMon <CounterSetName> [-PerfIntervalSec N] [-PerfMonMaxMB <N>] [-PerfMonCNF <[[hh:]mm:]ss>]
1. -PerfIntervalSec <Interval in sec>
2. -PerfMonMaxMB <N>
3. -PerfMonCNF <[[hh:]mm:]ss>
성능 모니터 로그를 시작합니다. cmdlet <CounterSetName> 을 사용하여 -ListSupportedPerfCounter 를 나열할 수 있습니다.

1. 로그에 대한 간격을 PerfMon 설정합니다(기본값은 10초).
2. 최대 Perfmon 로그 크기에 대한 int 값을 MB로 지정합니다(기본값은 2048).
3. 지정된 시간이 경과하거나 의 최대 크기를 <PerfMonMaxMB> 초과하는 경우 새 파일을 만듭니다.
-PerfMonLong <CounterSetName> [-PerfLongIntervalMin N] [-PerfMonMaxMB <N>] [-PerfMonCNF <[[hh:]mm:]ss>]
1. -PerfLongIntervalMin <Interval in min>
긴 간격으로 성능 모니터.

1. 로그에 대한 간격을 PerfMonLong 설정합니다(기본값은 10분).
-PktMon 패킷 모니터링 데이터(Windows Server 2019, Windows 10, 버전 1809 이상 버전)를 수집합니다. PktMon:Drop 는 삭제된 패킷만 수집합니다.
-PoolMon <Start|Stop|Both> , stop또는 both에서 start를 수집 PoolMon 합니다.
-ProcDump <PID[]|ProcessName.exe[]|ServiceName[]>
1. -ProcDumpOption<Start|Stop|Both>-ProcDumpInterval <N>:<Interval in sec>
2. -ProcDumpInterval <N>:<Interval in sec>
3. -ProcDumpAppCrash
SysInternals ProcDump.exe사용하여 단일 항목 또는 쉼표로 구분된 항목 목록의 사용자 덤프를 캡처합니다. 기본적으로 덤프는 재현 및 중지가 시작될 때 수행됩니다. 확장으로 를 입력 ProcessName합니다 .exe .

1. Start: 재현이 시작될 때 덤프가 수행됩니다.
Stop: 덤프가 중지 시 수행됩니다.
Both (기본값): 덤프는 시작과 중지 모두에서 수행됩니다.
2. 덤프를 반복적으로 캡처해야 하는 경우 이 옵션을 사용합니다.
N: 덤프 수
Int: 간격(초)입니다.
기본값은 3:10입니다.
3. 이 스위치는 ProcDump -ma -e프로세스에서 처리되지 않은 예외가 발생할 때 전체 덤프를 작성하는 를 사용하도록 설정합니다.
-ProcMon
1. -ProcmonAltitude <N>
2. -ProcmonPath <folder path to Procmon.exe>
3. -ProcmonFilter <filter-file.pmc>
SysInternals Procmon.exe시작합니다.

1. 의 문자열 값을 ProcmonAltitude 지정합니다(기본값은 385200). 필터 드라이버 고도를 표시하는 데 사용합니다 fltmc instances . 의심되는 특정 드라이버보다 낮은 숫자를 사용합니다. 값 45100은 거의 모든 것을 표시합니다.
2. Procmon.exe 경로를 지정합니다(기본적으로 TSS는 기본 제공 프러몬을 사용).
3. \config 폴더에 있는 Procmon용 구성 파일(예: ProcmonConfiguration.pmc)을 지정합니다.
-PSR 문제 단계 레코더를 시작합니다.
-Radar <PID[]|ProcessName[]|ServiceName[]> 누수 진단 정보(rdrleakdiag.exe)를 수집합니다.

예를 들면 -Radar AppIDSvc와 같습니다.
-RASdiag 추적을 수집합니다. Netsh Ras 진단 집합 추적이 사용하도록 설정됩니다.
-SDP <SpecialityName[]>
1. -SkipSDPList "<xxx>","<yyy>"
2. <SpecialityName>
지정된 전문 분야에 대한 SDP(지원 진단 패키지)를 수집합니다. 및 SkipSDPListSpecialityNames 전체 목록은 cmdlet을 .\tss -help 사용합니다.

SDP 보고서를 실행하는 동안 사용자 환경에 중단된 SDP 모듈 이름의 쉼표로 구분된 목록을 건너뜁니다.
-SysMon SysMon(SysMon) 로그(기본적으로 config 폴더의sysmonConfig.xml )를 수집합니다.
-TTD <PID[]|ProcessName.exe[]|ServiceName[]>
1. -TTDPath <Folder path to tttracer.exe>
2. -TTDMode<Full|Ring|onLaunch>
3. -TTDMaxFile <size in MB>
4. -TTDOptions '<String of TTD options>'
기본 -Full 모드를 사용하여 TTD(Time Travel Debugging)(TTT/iDNA)를 시작합니다. ProcessName확장, 단일 항목(PID/이름) 또는 쉼표로 .exe 구분된 항목 목록을 사용하여 를 입력합니다.

참고:
Windows 10 이전의 하위 수준 운영 체제 버전 1703에는 TSS_TTD.zip 패키지가 필요합니다.

1. tttracer.exe (PartnerTTD)가 포함된 폴더 경로를 지정합니다. 일반적으로 이 스위치는 특정 경로를 강제 적용하려는 경우에만 필요합니다.
2. Full = -dumpfull(=default)
Ring = 링 버퍼 모드
onLaunch = -onLaunch(TSS_TTD 필요)
3. 최대 로그 파일 크기입니다. 작업은 에 -TTDMode따라 달라집니다. Full 는 최대 크기에 도달하면 중지되고 Ring 링 버퍼의 최대 크기를 유지합니다.
4. TTD(TTT/iDNA)에 대한 추가 옵션을 추가하려면 이 옵션을 사용합니다.
-Video 비디오 캡처를 시작합니다(.NET 3.5를 설치해야 합니다).
-WFPdiag 명령을 사용하여 추적을 netsh Wfp capture 수집합니다.
-WireShark WireShark를 시작합니다. 다음 매개 변수는 tss_config.cfg 파일을 통해 구성할 수 있습니다.

1. : 에 -i사용됩니다. WS_IF 인터페이스 번호를 지정합니다(예: _WS_IF=1).
2. : 에 -f사용됩니다. WS_Filter 인터페이스를 필터링합니다(예: _WS_Filter="port 443").
3. : 에 -s사용됩니다. WS_Snaplen 각 프레임의 데이터 양을 제한합니다. 이 매개 변수는 성능이 향상되며 부하가 높은 상황(예: _WS_Snaplen=128)에 유용합니다.
4. WS_TraceBufferSizeInMB: 에 -b FileSize 사용됩니다(1024 곱하기). 메가바이트 수 이후의 다음 파일로 전환합니다. (예: _WS_TraceBufferSizeInMB=512, default=512MB)
5. : 에 -b files사용됩니다. WS_PurgeNrFilesToKeep 파일 수 다음에 를 바꿉다. (예: _WS_PurgeNrFilesToKeep=20)
6. WS_Options: 에 대한 -i 다른 옵션(예: _WS_Options="-P").

예:
인터페이스 15 및 11에서 WireShark를 수집하려면 TSS에서 인터페이스 번호를 15 -i 11묻는 메시지가 표시되면 를 입력합니다.

기본적으로 Wireshark는 를 시작합니다 dumpcap.exe -i <all NICs> -B 1024 -n -t -w _WireShark-packetcapture.pcap -b files:10 -b filesize:524288.
-WPR <WPRprofile>
1. -SkipPdbGen
2. -WPROptions '<Option string>'
WPR 프로필 추적을 시작합니다. <WPRprofile>는 중 General|Storage|Registry||Network|MemoryWait|Device||GraphicXaml|VSOD_CPU|||VSOD_LeakBootGeneralCPU|SQL하나입니다.

1. 기호 파일(PDB 파일) 생성을 건너뜁니다.
2. WPR.exe옵션을 지정합니다. 예를 들면 -WPROptions '-onoffproblemdescription "test description"'와 같습니다.

예제 1:
.\TSS.ps1 -StartAutoLogger -WPR BootGeneral -WPROptions '-addboot CPU'는 및 CPU 프로필을 사용하여 WPR 부팅 추적을 General 캡처합니다.

예제 2:
.\TSS.ps1 -WPR General -WPROptions '-Start CPU -start Network -start Minifilter'는 프로필(General, , CPUNetwork및 )을 Minifilter결합합니다.
-Xperf <Profile>
1. -XperfMaxFileMB <Size>
2. -XperfTag <Pool Tag>
3. -XperfPIDs <PID>
4. -XperfOptions <Option string>
Xperf를 시작합니다. <Profile>는 중 General||Network|MemoryPool|Leak||RegistrySMB2|SBSL|||SBSLbootCPUDisk|PoolNPP하나입니다.

1. 최대 로그 크기를 MB로 지정합니다(기본값은 2048MB). SBSL* 시나리오의 기본값은 16384입니다(ADS_/NET_SBSL 동일).
2. 기록되도록 지정 PoolTag 합니다. 이 매개 변수는 또는 PoolNPP 프로필(Pool예: -Xperf Pool -XperfTag TcpE+AleE+AfdE+AfdX)과 함께 사용됩니다.
3. 를 지정합니다 ProcessID. 이 매개 변수는 프로필과 Leak 함께 사용됩니다(예: -Xperf Leak -XperfPIDs <PID>).
4. 에 Xperf대한 다른 옵션 문자열을 지정합니다.
-xray xray를 시작하여 알려진 문제에 대한 시스템을 진단합니다.

다음 예제에서는 동일한 추적 중에 여러 지원 도구(명령)를 활성화하는 방법을 보여 줍니다.

.\TSS.ps1 -WPR <WPRprofile> -Procmon -Netsh|-NetshScenario <NetshScenario> -PerfMon <CounterSetName> -ProcDump <PID> -PktMon -SysMon -SDP <specialty> -xray -PSR -Video -TTD <PID[]|ProcessName[]|ServiceName[]>  

TSS 옵션 내의 매개 변수

데이터 수집을 제어, 향상 또는 간소화하는 TSS 옵션 내에서 특정 매개 변수를 정의합니다.

매개 변수 설명
-AcceptEula 처음에는 묻지 마세요. 을 실행하여 고지 사항을 수락합니다(실행에 유용 -RemoteRun ).
-AddDescription <description> 재현 문제에 대한 간략한 설명을 추가합니다. 결과 zip 파일의 이름에는 이러한 설명이 포함됩니다.
-Assist 접근성 모드.
-BasicLog 전체 기본 로그를 수집합니다(미니 기본 로그는 항상 기본적으로 수집됨).
-CollectComponentLog 와 함께 -Scenario를 사용합니다. 기본적으로 구성 요소 수집 함수는 추적에서 -Scenario 호출되지 않습니다. 이 스위치를 사용하면 구성 요소 수집 함수를 호출할 수 있습니다.
-CollectDump 모든 추적을 중지한 후 시스템 덤프(memory.dmp)를 수집합니다. -CollectDump-Stop와 함께 -Start 사용할 수 있습니다.
-CollectEventLog <Eventlog[]> 지정된 이벤트 로그를 수집합니다. 별표(*) 와일드카드 문자를 이벤트 로그 이름에 사용할 수 있습니다.

예:
-CollectEventLog Security,*Cred*
보안 및 와 같은 'Microsoft-Windows-CertificateServicesClient-CredentialRoaming/Operational'일치하는 *Cred* 모든 이벤트 로그를 수집합니다.
-CommonTask <<POD>|Full|Mini> 추적을 시작하기 전과 중지한 후 일반적인 작업을 실행합니다.

<POD>: 현재 "NET"만 사용할 수 있습니다. 추적을 시작하기 전과 중지한 후 추가 정보를 수집합니다.
Full: 추적을 중지한 후 전체 기본 로그가 수집됩니다.
Mini: 추적을 중지한 후 미니 기본 로그가 수집됩니다.
-Crash 재현 중지 시 또는 와 함께 NotMyFault 사용되는 경우 모든 이벤트가 신호를 받은 후 로 -WaitEvent시스템 충돌을 트리거합니다.

주의:
이 스위치는 메모리 덤프(시스템이 다시 시작됨)를 강제로 적용하므로 열려 있는 파일은 저장되지 않습니다.
-CustomETL 사용자 지정 ETL 추적 공급자를 추가합니다. 예를 들어 .\TSS.ps1 -WIN_CustomETL -CustomETL '{<GUID>}','Microsoft-Windows-PrimaryNetworkIcon' (쉼표로 구분된 작은따옴표 및/또는 'Provider-Name')입니다'{GUID}'.
-DebugMode 개발자를 위한 디버그 모드로 실행합니다.
-VerboseMode TSS 함수를 처리하는 동안 자세한 정보 출력 또는 정보 출력을 표시합니다.
-Discard 단계에서 -Stop데이터 세트를 삭제하는 데 사용됩니다. *Stop- 또는 *Collect- 함수가 실행되지 않습니다. xraypsSDP 는 건너뜁습니다.
-EnableCOMDebug COM 디버그 모드를 설정하는 모듈입니다.
-ETLOptions<circular|newfile>:<ETLMaxSizeMB>:<ETLNumberToKeep>:<ETLFileMax> 명령에 전달된 logman 옵션을 설정합니다. 의 circular ETLMaxSizeMB 기본값은 1024이고 의 기본값 newfile ETLMaxSizeMB 은 512입니다.

-StartAutologger 만 지원 -ETLOptions circular:<ETLMaxSize>:<ETLNumberToKeep>:<ETLFileMax>하지만 ETLNumberToKeep 예상대로 실행되지는 않습니다.

예제.1:
-ETLOptions newfile:2048:5

2048MB 크기의 로그를 실행 newfile 합니다. 마지막 5개 파일만 유지합니다 *.etl . 순환 모드의 기본 설정은 이 circular:1024고, newfile 모드의 경우 은 입니다 newfile:512:10.

예제 2:
-StartAutologger -ETLOptions circular:4096
Autologger 는 순종 :<ETLNumberToKeep> 하지 않으며 모드 순환만 허용합니다.

예제 3:
-StartAutologger -ETLOptions circular:4096:10:3
Autologger 는 순종 :<ETLNumberToKeep> 하지 않으며 모드 순환 및 "3"만 세대 수 autologger 로 허용합니다.
-ETWlevel <Info|Warning|Error> 이벤트 추적 수준을 설정합니다. 기본값은 0xFF.
-EvtDaysBack <N> 지난 N일 동안만 이벤트 로그를 변환합니다. 기본값은 30일입니다. SDP 보고서에도 적용됩니다.

참고:
보안 이벤트 로그는 건너뜁니다.
-ExternalScript <path to external PS file> 추적을 시작하기 전에 지정된 PowerShell 스크립트를 실행합니다.
-LogFolderPath <Drive:\path to log folder> 기본 위치(C:\MS_DATA) 대신 결과 출력 데이터에 다른 로그 폴더 경로를 사용합니다. C: 드라이브가 사용 가능한 디스크 공간이 부족한 경우에 유용합니다.
-MaxEvents <N> 에 대한 '-WaitEvent Evt:..'인수로서 매개 변수는 동일한 이벤트 ID를 가진 마지막 N 개수의 이벤트를 조사합니다(기본값은 1).
-Mini 최소 데이터만 수집합니다. , , noSDP, noVideonoXray, noZipnoBasicLog를 건너뜁니다noPSR.
-Mode <Basic|Medium|Advanced|Full|Verbose|VerboseEx|Hang|Restart
|Swarm|Kube|GetFarmdata|Permission|traceMS>
데이터 수집에 대한 , Medium, Advanced, Full또는 Verbose(Ex) 모드에서 Basic스크립트를 실행합니다. Restart 는 연결된 서비스를 다시 시작합니다.
-RemoteRun 원격 호스트(예: PsExec, Azure 직렬 콘솔 또는 PowerShell 원격 사용)에서 TSS가 실행되는 경우에 사용합니다. 이 매개 변수는 PSR, 비디오 녹화, TssClock 시작 및 최종 결과로 Explorer 열지 않습니다. 이러한 경우 도 고려합니다 -AcceptEula.
-StartNoWait 기다리지 않고 프롬프트가 즉시 반환됩니다. 이 매개 변수는 사용자가 로그오프해야 하는 시나리오에 유용합니다.
-WaitEvent 지정된 이벤트 또는 중지 트리거를 모니터링합니다. 신호를 받으면 추적이 자동으로 중지됩니다.

자동 중지를 트리거하는 다양한 옵션이 있습니다. 를 실행 .\TSS.ps1 -Find Monitoring 하여 사용량을 확인합니다.
-Update
1. -UpdMode<Online|Lite>
TSS 패키지를 업데이트합니다. 와 -UpdMode Online|Lite함께 사용할 수 있습니다.

Online 는 기본값이며 Lite 라이트 버전입니다 Upd .
-Help
1. Common
2. ALL
3. Monitoring
4. Config
5. Keyword
다양한 시나리오에 대한 도움말 메시지를 제공합니다.

1. 일반적인 일반적인 도움말 메시지입니다.
2. 사용 가능한 모든 옵션.
3. 모니터링 및 원격 기능에 대한 도움말 메시지를 표시합니다.
4. 모든 구성 매개 변수에 대한 도움말
5. 키워드(keyword) 입력하면 해당 키워드(keyword) 대한 도움말 정보가 표시됩니다.
-Status 실행 중인 추적의 상태 표시합니다(있는 경우).

도우미 스크립트 및 도구 포함

도우미 스크립트 및 도구 설명
\scripts\tss_EventCreate.ps1 이벤트 ID를 사용하여 이벤트 로그 파일에 이벤트 로그 항목을 만듭니다.
\scripts\tss_SMB_Fix-SmbBindings.ps1 손상된 SMB 바인딩(LanmanServer, LanmanWorkstation 또는 NetBT)을 수정하는 데 유용합니다. 도 -Collect NET_SMBsrvBinding참조하세요.
\BINx64\kdbgctrl.exe 스위치 -sd <dump type> 를 사용하여 커널 크래시 덤프 유형 Full|Kernel(예: kdbgctrl -sd Full)을 설정합니다.
\BINx64\NTttcp.exe 성능 테스트. 자세한 내용은 NTTTCP를 사용하여 VM 네트워크 처리량 테스트를 참조하세요.
\BINx64\latte.exe 대기 시간 테스트. 자세한 내용은 Azure VM 간의 네트워크 대기 시간 테스트를 참조하세요.
\BINx64\notmyfaultc.exe 메모리 덤프를 강제로 적용합니다. TSS 명령줄에 가 포함되어 -Crash있으면 NotMyFault v4.21을 참조하세요.

예기치 않은 PowerShell 오류 문제 해결

  1. 실패 후 다음 cmdlet을 실행합니다.

    .\TSS.ps1 -Stop -noBasiclog -noXray
    
  2. 열린 관리자 권한 PowerShell 창을 닫고 새 관리자 권한 PowerShell 창을 시작합니다.

  3. 적절한 ExecutionPolicy를 사용하여 시스템에서 PowerShell 스크립트를 실행할 수 있도록 허용합니다.

  4. 실행 중인 스크립트를 사용할 수 없음을 나타내는 오류가 발생하면 다음 메서드를 시도해 보세요.

방법 1

  1. 다음 cmdlet을 실행합니다.

    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -force -Scope Process
    
  2. 더 높은 우선 순위가 Get-ExecutionPolicy -List 없는 ExecutionPolicy cmdlet이 이 스크립트의 실행을 차단하는 설정을 확인합니다.

  3. cmdlet을 .\TSS.ps1 <Desired Parameters> 다시 실행합니다.

메서드 2(대체)

스크립트가 에 의해 MachinePolicy차단된 경우 관리자 권한 PowerShell 창에서 다음 cmdlet을 실행합니다.

  1. Set-ItemProperty -Path HKLM:\Software\Policies\Microsoft\Windows\PowerShell -Name ExecutionPolicy -Value RemoteSigned
    
  2. Set-ItemProperty -Path HKLM:\Software\Policies\Microsoft\Windows\PowerShell -Name EnableScripts  -Value 1 -Type DWord
    

메서드 3(대체)

스크립트가 에 의해 UserPolicy차단된 경우 관리자 권한 PowerShell 창에서 다음 cmdlet을 실행합니다.

  1. Set-ItemProperty -Path HKLM:\Software\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell -Name ExecutionPolicy -Value RemoteSigned
    
  2. Set-ItemProperty -Path HKLM:\Software\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell -Name EnableScripts  -Value 1 -Type DWord
    

참고

메서드 2는 정책 MachinePolicy - RemoteSigned에 대한 해결 방법일 뿐입니다. 이 표시되는 UserPolicy - RemoteSigned경우 도메인 관리자에게 GPO(임시 그룹 정책 개체) 예외를 요청합니다.

드문 경우지만 cmdlet을 -ExecutionPolicy Bypass 사용해 볼 수 있습니다.

organization GPO PowerShell 제한 언어 모드()System.Management.Automation.EngineIntrinsics.SessionState.LanguageMode -ne 'FullLanguage'를 강제로 적용하는 경우 도메인 관리자에게 임시 GPO 예외를 요청합니다.

질문과 대답(FAQ)

  • Q1: TSS 스크립트가 내 시스템의 설정 또는 구성을 변경하나요?

    A1: 아니요이지만 일부 시나리오에서 디버그 로깅을 사용하도록 설정하려면 레지스트리 설정이 필요합니다. 스크립트는 데이터 컬렉션의 시작 부분에 필요한 키를 설정하고 데이터 컬렉션의 끝에 있는 기본값으로 키를 되돌려 줍니다. 데이터 수집 시작 시 일부 캐시(예: ARP 캐시 또는 이름 확인 캐시)를 삭제하여 로그에서 문제를 관찰할 수도 있습니다.

  • Q2: TSS 도구 집합이 서버에 추가 부하를 발생하나요?

    A2: TSS 도구 집합에서 시작하는 일부 로깅(예: 네트워크 캡처, ETW 추적 컬렉션 등)은 시스템에 약간의 부하를 가할 수 있습니다. 부하는 일반적으로 무시할 수 있는 수준입니다. TSS 도구 집합을 시작한 후 높은 CPU, 메모리 또는 디스크 사용량이 표시되면 지원 담당자에게 문의하세요.

  • Q3: TSS 도구 집합이 실행 중일 때 문제를 재현할 수 없는 이유는 무엇인가요?

    A3: TSS 도구 집합은 처음에 캐시된 모든 정보를 삭제할 수 있습니다. 또한 NIC(네트워크 인터페이스 카드) 기본 동작을 변경하는 난잡한 모드에서 네트워크 캡처를 시작합니다. 이러한 변경 내용은 문제에 영향을 줄 수 있으며 문제가 사라질 수 있습니다. 특히 특정 타이밍 문제의 경우 TSS 도구 집합의 데이터 수집으로 인해 문제가 사라집니다. 데이터 수집은 로깅을 시작하여 문제에 간접적으로 영향을 미치고 상황을 변경할 수 있습니다.

  • Q4: TSS 도구 집합이 오랫동안 응답하지 않는 이유는 무엇인가요?

    A4: 경우에 따라 TSS 도구 집합에서 실행하는 운영 체제의 기본 제공 명령이 응답하지 않거나 완료하는 데 시간이 오래 걸릴 수 있습니다. 이 문제가 발생하면 지원 담당자에게 문의하세요.

  • Q5: 오랫동안 TSS 도구 집합을 실행할 때 디스크 공간이나 다른 것에 대해 걱정해야 하나요?

    A5: 모든 TSS 추적은 링 버퍼로 실행되도록 구성되므로 필요한 경우 오랫동안 도구 집합을 실행할 수 있습니다. 또한 TSS 도구 집합은 데이터 수집의 시작 부분에 있는 디스크 공간을 계산하며 디스크 공간이 충분하지 않으면 종료될 수 있습니다. TSS 도구 집합을 시작한 후 디스크 사용량이 높거나 도구 집합의 디스크 사용에 대한 다른 문제가 있는 경우 지원 담당자에게 문의하세요.

  • Q6: .\TSS.ps1 스크립트를 실행할 때 다음 보안 경고가 표시되면 어떻게 해야 하나요?

    Security Warning: Run only scripts that you trust. While scripts from the Internet can be useful, this script can potentially harm your computer. Do you want to run .\TSS.ps1? [D] Do not run [R] Run once [S] Suspend [?] Help (default is "D")

    A6: 드문 경우지만 이 보안 경고가 표시될 수 있습니다. cmdlet PS C:\> Unblock-File -Path C:\TSS\TSS.ps1을 사용하여 스크립트의 차단을 해제할 수 있습니다. 이 스크립트는 cmdlet Get-ChildItem -Recurse -Path C:\TSS\*.ps* | Unblock-File -Confirm:$false을 사용하여 다른 모든 모듈의 차단을 해제합니다.

EULA(최종 사용자 사용권 계약)

아래를 선택하여 MICROSOFT 소프트웨어 사용 조건을 확인합니다.

Microsoft 진단 스크립트 및 유틸리티

These license terms are an agreement between you and Microsoft Corporation (or one of its affiliates). IF YOU COMPLY WITH THESE LICENSE TERMS, YOU HAVE THE RIGHTS BELOW. BY USING THE SOFTWARE, YOU ACCEPT THESE TERMS.

  1. INSTALLATION AND USE RIGHTS. 이 라이선스에 명시된 사용 약관 및 제한 사항에 따라 Microsoft Corporation("Microsoft")은 Microsoft가 하나 이상의 Microsoft 제품 문제를 해결하는 데 도움을 주기 위해 본 라이선스("소프트웨어")에 따라 제공된 스크립트 또는 유틸리티를 사용하고 재현할 수 있는 비독점적이고 할당할 수 없는 완전 유료 라이선스를 귀하("고객" 또는 "귀하")에게 부여합니다. 소프트웨어에 대한 이러한 라이선스에 다른 Microsoft 기술(예: 제품 또는 서비스)에 대한 권한이 포함되지 않은 경우. "사용"은 소프트웨어 복사, 설치, 실행, 액세스, 표시, 실행 또는 기타 상호 작용을 의미합니다.

    배포, 네트워크 액세스 또는 기타를 통해 소프트웨어 또는 소프트웨어를 사용하지 않을 수 있습니다. Microsoft는 암시적, 중지 또는 기타 여부에 관계없이 여기에 명시적으로 부여되지 않은 다른 모든 권한을 보유합니다. 소프트웨어에 포함될 수 있는 특정 오픈 소스 구성 요소의 사용을 제어하는 타사 라이선스 조건에 따라 소프트웨어에 대한 소스 코드를 리버스 엔지니어링, 디컴파일 또는 디스어셈블하거나 소프트웨어에 대한 소스 코드를 파생시키려고 시도하거나 소프트웨어에서 Microsoft 또는 해당 공급업체의 통지를 제거, 최소화, 차단 또는 수정할 수 없습니다. 귀하와 귀하의 대리인은 본 명세서에서 제공하는 소프트웨어를 사용할 수 없습니다. (i) 법률, 규정, 정부 명령 또는 법령에 의해 금지되는 방식으로; (ii) 다른 사람의 권리를 침해하는 경우; (iii) 서비스, 디바이스, 데이터, 계정 또는 네트워크에 무단으로 액세스하거나 중단하려고 시도합니다. (iv) 스팸 또는 맬웨어를 배포하는 경우 (v) Microsoft의 IT 시스템에 해를 끼치거나 다른 사람의 사용을 저해할 수 있는 방법; (vi) 소프트웨어를 사용하면 사람의 사망 또는 심각한 신체 상해 또는 신체적 또는 환경적 손상으로 이어질 수 있는 모든 응용 프로그램 또는 상황에서; 또는 (vii) 누군가가 위의 작업을 수행하도록 돕거나 격려하거나 활성화할 수 있습니다.

  2. 데이터. 고객은 소프트웨어를 사용하여 Microsoft와 공유하도록 선택할 수 있는 데이터에 대한 모든 권한을 소유합니다. 데이터 수집 및 사용에 대한 자세한 내용은 도움말 설명서 및 의 개인정보처리방침에서 https://aka.ms/privacy확인할 수 있습니다. 소프트웨어 사용은 이러한 사례에 대한 사용자의 동의로 작동합니다.

  3. FEEDBACK. Microsoft에 소프트웨어에 대한 피드백을 제공하는 경우 어떤 용도로든 피드백을 사용, 공유 및 상용화할 수 있는 권한을 무료로 Microsoft에 부여합니다. 귀하는 Microsoft가 소프트웨어 또는 설명서의 피드백을 포함하여 Microsoft의 소프트웨어 또는 설명서를 제3자에게 라이선스하도록 요구하는 라이선스가 적용되는 피드백을 제공하지 않습니다.

  4. EXPORT RESTRICTIONS. 고객은 대상, 최종 사용자 및 최종 사용에 대한 제한을 포함하는 소프트웨어에 적용되는 모든 국내 및 국제 수출법 및 규정을 준수해야 합니다. For further information on export restrictions, visit https://aka.ms/exporting.

  5. 표현 및 보증. 고객은 모든 데이터의 배달 및 사용을 포함하여 본 계약에 따른 모든 관련 법률을 준수합니다. 법인을 대신하여 본 약관에 동의하는 고객 또는 설계자는 (i) 본 계약에 따라 의무를 체결하고 이행할 수 있는 모든 권한과 권한을 가지고 있으며, (ii) 계열사 또는 organization 본 계약조건에 바인딩할 수 있는 완전한 권한과 권한을 가지고 있으며, (iii) 소스 코드를 제공하는 방식으로 소스 코드를 제공하기 전에 상대방의 허가를 확보합니다. 다른 당사자의 지적 재산권을 다른 사용 조건에 사용하거나 상대방이 소스 코드를 해당 기술에 배포하도록 요구합니다.

  6. 보증의 면책 조항. 소프트웨어는 상품성, 특정 목적에 대한 적합성 및 비침해의 보증을 포함하되 이에 국한되지 않는 어떠한 종류의 명시적 또는 묵시적 보증 없이 "있는 그대로" 제공됩니다. 어떠한 경우에도 MICROSOFT 또는 그 라이선스는 직접, 간접, 부수적, 특별, 모범적 또는 결과적 손해(대체 상품 또는 서비스의 조달을 포함하되 이에 국한되지 않음)에 대해 책임을 지지 않습니다. 사용, 데이터 또는 이익 손실; 또는 비즈니스 중단) 그러나 계약, 엄격한 책임 또는 불법 행위 (과실 또는 기타 포함)에서 그러한 손상의 가능성을 권고하더라도 소프트웨어 사용에서 어떤 식으로든 발생하는 책임 이론에 기인하고 있습니다.

  7. 손해에 대한 제한 및 제외. 이전의 보증 면책 조항에도 불구하고 손해 배상을 복구할 근거가 있는 경우 MICROSOFT 및 해당 공급업체로부터 미국까지의 직접 손해만 복구할 수 있습니다. 00. 결과적, 손실된 이익, 특별, 간접 또는 부수적 손해를 포함한 다른 손해는 복구할 수 없습니다. 이 제한은 (i) 타사 인터넷 사이트 또는 타사 애플리케이션의 소프트웨어, 서비스, 콘텐츠(코드 포함)와 관련된 모든 항목에 적용됩니다. 및 (ii) 계약, 보증, 보증 또는 조건 위반에 대한 청구 엄격한 책임, 과실 또는 기타 불법 행위; 또는 다른 클레임; 적용 가능한 법률에서 허용하는 범위까지 각 경우에 적용됩니다. It also applies even if Microsoft knew or should have known about the possibility of the damages. The above limitation or exclusion may not apply to you because your state, province, or country may not allow the exclusion or limitation of incidental, consequential, or other damages.

  8. BINDING ARBITRATION AND CLASS ACTION WAIVER. 이 섹션은 사용자가 미국 거주하는 경우(또는 비즈니스의 주요 비즈니스 위치에 있는 경우) 적용됩니다. If you and Microsoft have a dispute, you and Microsoft agree to try for 60 days to resolve it informally. If you and Microsoft can't, you and Microsoft agree to binding individual arbitration before the American Arbitration Association under the Federal Arbitration Act ("FAA"), and not to sue in court in front of a judge or jury. Instead, a neutral arbitrator will decide. Class action lawsuits, class-wide arbitrations, private attorney-general actions, and any other proceeding where someone acts in a representative capacity are not allowed; nor is combining individual proceedings without the consent of all parties. The complete Arbitration Agreement contains more terms and is at https://aka.ms/arb-agreement-4. You and Microsoft agree to these terms.

  9. 법률 및 장소. If U.S. federal jurisdiction exists, you and Microsoft consent to exclusive jurisdiction and venue in the federal court in King County, Washington for all disputes heard in court (excluding arbitration). If not, you and Microsoft consent to exclusive jurisdiction and venue in the Superior Court of King County, Washington for all disputes heard in court (excluding arbitration).

  10. ENTIRE AGREEMENT. This agreement, and any other terms Microsoft may provide for supplements, updates, or third-party applications, is the entire agreement for the software.