Wprowadzenie do zestawu narzędzi TroubleShootingScript (TSS)

W tym artykule przedstawiono zestaw narzędzi TroubleShootingScript (TSS) i przedstawiono odpowiedzi na często zadawane pytania.

Dotyczy: Obsługiwane wersje systemu Windows Server i klienta systemu Windows

Zestaw narzędzi TSS zawiera narzędzia oparte na programie PowerShell oraz strukturę zbierania i diagnostyki danych. Zestaw narzędzi ma na celu uproszczenie zbierania danych i ułatwienie efektywnego i bezpiecznego rozwiązywania spraw.

Zestaw narzędzi zawiera kilka skryptów programu PowerShell i plików wykonywalnych, które są podpisane przez firmę Microsoft. Na podstawie wybranych przełączników usługa TSS używa co najmniej jednego skryptu i plików wykonywalnych do zbierania żądanych dzienników.

Zestaw narzędzi można pobrać jako plik zip (TSS.zip) z https://aka.ms/getTSSprogramu .

Wymagania wstępne

Poniżej przedstawiono niektóre wymagania wstępne dotyczące prawidłowego działania zestawu narzędzi:

  • Zestaw narzędzi TSS musi być uruchamiany w oknie programu PowerShell z podwyższonym poziomem uprawnień przez konta z uprawnieniami administratora w systemie lokalnym. Uruchamianie zestawu narzędzi TSS w środowisku Windows PowerShell Integrated Scripting Environment (ISE) nie jest obsługiwane. Umowa licencyjna użytkownika końcowego (EULA) musi zostać zaakceptowana. Po zaakceptowaniu umowy EULA zestaw narzędzi TSS nie będzie monitował ponownie o umowę EULA.

  • Zasady wykonywania skryptu programu PowerShell należy ustawić na RemoteSigned poziomie procesu, uruchamiając polecenie cmdlet Set-ExecutionPolicy -scope Process -ExecutionPolicy RemoteSigned -Force z wiersza polecenia programu PowerShell z podwyższonym poziomem uprawnień.

    Uwaga

    Zmiany poziomu procesu mają wpływ tylko na bieżącą sesję programu PowerShell.

Jak uruchomić zestaw narzędzi TSS

Możesz rozpocząć TSS.ps1 z różnymi przełącznikami w zależności od scenariusza. Czasownik -Start jest czasownikiem domyślnym i opcjonalnym i w razie potrzeby można go zamienić na czasownik uzupełniający. Czasowniki -Start uzupełniające to -StartAutoLogger, -StartDiag, -StartNoWaiti -CollectLog.

Czasownik Opis
-Start Czasownik -Start uruchamia śledzenie zdarzeń dla śledzenia składników systemu Windows (ETW) lub narzędzi obsługi, takich jak Rejestrator wydajności systemu Windows (WPR).

Czasownik [-Start] jest opcjonalny, ale można go zastąpić opcjami uzupełniającymi -start .
-StartAutoLogger Aby zebrać te dzienniki w czasie rozruchu, zastąp -Startelement -StartAutoLogger .

Użyj go w połączeniu z poleceniem .\TSS.ps1 -Stop cmdlet, aby zatrzymać ślady po odtworzeniu problemu.
-StartDiag Chociaż ten przełącznik nie ma obecnie zbyt dużego zastosowania, ma być używany w przyszłości w wielu scenariuszach. Obecnie można go łączyć z innymi argumentami, takimi jak NET_DFSn uzyskanie diagnostyki przestrzeni nazw DFSN.
-StartNoWait Ten parametr umożliwia, aby ślady pozostały aktywne nawet po wylogowyniu.

Użyj go w połączeniu z poleceniem .\TSS.ps1 -Stop cmdlet, aby zatrzymać ślady po odtworzeniu problemu.
-CollectLog Ten parametr jest często używany wraz z argumentem DND_SetupReport.

Przykład:
.\TSS.ps1 -Collectlog DND_SetupReport

Dzienniki związane ze śladami są również automatycznie zbierane po zatrzymaniu zbierania danych.

Składnia do korzystania z zestawu narzędzi TSS

Parametr Opis
<placeholder> Ciąg w nawiasach kątowych (<>) dla symboli zastępczych musi zostać zastąpiony rzeczywistą nazwą scenariusza, składnikiem śledzenia, poleceniem lub wartością.
[optional] Słowo kluczowe lub wartość w nawiasach kwadratowych ([ ]) jest opcjonalna. Na przykład oznacza, [module:int] że moduł i interwał są opcjonalne. Wartość domyślna jest używana, jeśli [<xx>:<yy>] zostanie pominięta.
| Ten parametr oznacza 'OR'. Możesz wybrać jedną z dostępnych opcji.
: Znak separatora między dwiema wartościami.

Przykłady poleceń cmdlet

Polecenie cmdlet programu PowerShell Opis
.\TSS.ps1 -PerfMon [General:10] Ten parametr oznacza PerfMon CounterSetName= General i Interval= 10 sekundy. W [General:10] przypadku pominięcia wartość domyślna jest uruchamiana, więc -PerfMon ma taki sam efekt jak -PerfMon General -PerfIntervalSec 10.
.\TSS.ps1 [-StopWaitTimeInSec <N>] Ten parametr oznacza, że argument -StopWaitTimeInSec jest opcjonalny, ale jeśli został określony, wartość = <N> "liczba sekund" jest obowiązkowa.

Śledzenie zdarzeń dla śledzenia systemu Windows (ETW)

Ślad ETW Polecenie cmdlet programu PowerShell Opis
Włączanie śledzenia scenariusza. .\TSS.ps1 -Scenario <ScenarioName> Nazwy obsługiwanych scenariuszy są wyświetlane przy użyciu TSS.ps1 -ListSupportedScenarioTrace polecenia cmdlet.
Włącz ślady składników. .\TSS.ps1 <-ComponentName> <-ComponentName> ... Obsługiwane <-componentName> elementy są wyświetlane przy użyciu TSS.ps1 -ListSupportedTrace polecenia cmdlet.
Rozpocznij śledzenie w trybie bez oczekiwania. .\TSS.ps1 -StartNoWait -Scenario <ScenarioName>

.\TSS.ps1 -Stop
Monit zostanie zwrócony natychmiast, aby można było wylogować się lub użyć polecenia cmdlet, takiego jak Shutdown.

Polecenie cmdlet .\TSS.ps1 -Stop zatrzymuje ślad.

Uwaga

Aby wyświetlić listę wszystkich identyfikatorów GUID dostawców składników i/lub scenariuszy, użyj -ListETWProviders polecenia cmdlet. Przykład:

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

Narzędzia i polecenia pomocy technicznej

Rozpocznij obsługę narzędzi lub poleceń (na przykład ProcMon, ProcDump, netsh, monitor wydajności (PerfMon), WPR lub Radar), aby ulepszyć zbieranie dzienników za pomocą dodatkowych narzędzi do wyspecjalizowanych przechwytywania.

Polecenie cmdlet programu PowerShell Opis
-Fiddler Zbierz ślad programu Fiddler. Wymaga zainstalowania programu Fiddler.

Włącz opcję odszyfrowywania ruchu, wybierając pozycję Opcje narzędzi> i wybierając pozycję Odszyfruj ruch HTTPS na karcie HTTPS.
-GPresult <Start|Stop|Both> Zbierz dane wyjściowe Handle.exe SysInternals w fazie start, stoplub both.
-Handle <Start|Stop|Both> Zbierz dane wyjściowe Handle.exe SysInternals w fazie start, stoplub both.
-LiveKD <Start|Stop|Both> Uruchom dysk SysInternals LiveKD -ml (zrzut jądra na żywo).
<Start>: zrzut jest pobierany na początku repro.
<Stop>: zrzut jest wykonywany na przystanku.
<Both>: zrzut jest wykonywany zarówno podczas uruchamiania, jak i zatrzymywania.
-Netsh
1. -NetshOptions '<Option string>'
2. -NetshMaxSizeMB <Int>
3. -noPacket
Rozpocznij przechwytywanie pakietów sieciowych.

1. Określ dodatkowe opcje dla Netshelementu . Na przykład 'capturetype=both captureMultilayer=yes provider=Microsoft-Windows-PrimaryNetworkIcon provider={<GUID>}'.
2. Maksymalny rozmiar dziennika w Netsh megabajtach (MB) (na przykład -NetshMaxSizeMB 4096). Wartość domyślna to 2048.
3. Zapobiegaj przechwytywaniu pakietów przy użyciu Netsh (zostaną przechwycone tylko ślady ETW w pliku ScenarioName ).
-NetshScenario
1. -NetshOptions '<Option string>'
2. -NetshMaxSizeMB <Int>
3. -noPacket
Rozpocznij śledzenie scenariusza Netsh . Obsługiwane <ScenarioName> elementy są wyświetlane przy użyciu -ListSupportedNetshScenario polecenia cmdlet.

1. Określ dodatkowe opcje dla Netshelementu . Na przykład 'capturetype=both captureMultilayer=yes provider=Microsoft-Windows-PrimaryNetworkIcon provider={<GUID>}'.
2. Maksymalny rozmiar dziennika w Netsh MB (na przykład -NetshMaxSizeMB 4096). Wartość domyślna to 2048.
3. Zapobiegaj przechwytywaniu pakietów przy użyciu Netsh (zostaną przechwycone tylko ślady ETW w nazwie scenariusza).
-PerfMon <CounterSetName> [-PerfIntervalSec N] [-PerfMonMaxMB <N>] [-PerfMonCNF <[[hh:]mm:]ss>]
1. -PerfIntervalSec <Interval in sec>
2. -PerfMonMaxMB <N>
3. -PerfMonCNF <[[hh:]mm:]ss>
Uruchamianie dzienników monitor wydajności. Element <CounterSetName> można wyświetlić na -ListSupportedPerfCounter liście przy użyciu polecenia cmdlet.

1. Ustaw interwał dla PerfMon dziennika (wartość domyślna to 10 sekund).
2. Określ wartość całkowitą maksymalnego Perfmon rozmiaru dziennika w MB (wartość domyślna to 2048).
3. Utwórz nowy plik po upływie określonego czasu lub przekroczeniu maksymalnego rozmiaru <PerfMonMaxMB> .
-PerfMonLong <CounterSetName> [-PerfLongIntervalMin N] [-PerfMonMaxMB <N>] [-PerfMonCNF <[[hh:]mm:]ss>]
1. -PerfLongIntervalMin <Interval in min>
monitor wydajności z długim interwałem.

1. Ustaw interwał dla PerfMonLong dziennika (wartość domyślna to 10 minut).
-PktMon Zbieranie danych monitorowania pakietów (w systemie Windows Server 2019, Windows 10, wersja 1809 i nowszych wersjach). PktMon:Drop zbiera tylko porzucone pakiety.
-PoolMon <Start|Stop|Both> Zbieraj PoolMon w systemie start, stoplub both.
-ProcDump <PID[]|ProcessName.exe[]|ServiceName[]>
1. -ProcDumpOption<Start|Stop|Both>-ProcDumpInterval <N>:<Interval in sec>
2. -ProcDumpInterval <N>:<Interval in sec>
3. -ProcDumpAppCrash
Przechwyć zrzuty użytkowników pojedynczego elementu lub rozdzielaną przecinkami listę elementów przy użyciu funkcji SysInternals ProcDump.exe. Domyślnie zrzut jest wykonywany na początku odtwarzania i zatrzymywania. Wprowadź ProcessName(s) z rozszerzeniem .exe .

1. Start: zrzut jest pobierany na początku repro.
Stop: zrzut jest wykonywany na przystanku.
Both (ustawienie domyślne): zrzut jest wykonywany zarówno na początku, jak i na przystanku.
2. Użyj tej opcji, gdy zrzut musi być przechwytywany wielokrotnie.
N: liczba zrzutów
Int: interwał w sekundach
Wartość domyślna to 3:10.
3. Ten przełącznik umożliwia zapis pełnego zrzutu, gdy proces napotka nieobsługiwany ProcDump -ma -ewyjątek.
-ProcMon
1. -ProcmonAltitude <N>
2. -ProcmonPath <folder path to Procmon.exe>
3. -ProcmonFilter <filter-file.pmc>
Uruchom program SysInternals Procmon.exe.

1. Określ wartość ciągu ( ProcmonAltitude wartość domyślna to 385200). Użyj polecenia fltmc instances , aby wyświetlić wysokość sterownika filtru. Użyj mniejszej liczby niż podejrzewany konkretny sterownik. Wartość 45100 pokaże praktycznie wszystko.
2. Określ ścieżkę do Procmon.exe (domyślnie usługa TSS używa wbudowanego narzędzia Procmon).
3. Określ plik konfiguracji dla aplikacji Procmon (na przykład ProcmonConfiguration.pmc) znajdujący się w folderze \config .
-PSR Uruchamianie rejestratora kroków problemów.
-Radar <PID[]|ProcessName[]|ServiceName[]> Zbierz informacje diagnostyczne o wycieku (rdrleakdiag.exe).

Na przykład -Radar AppIDSvc.
-RASdiag Zbieranie śledzenia. Śledzenie zestawu Netsh diagnostyki ras jest włączone.
-SDP <SpecialityName[]>
1. -SkipSDPList "<xxx>","<yyy>"
2. <SpecialityName>
Zbierz pakiet diagnostyczny pomocy technicznej (SDP) dla określonej specjalności. Aby uzyskać pełną listę elementów SpecialityNames i SkipSDPList, użyj .\tss -help polecenia cmdlet.

Pomiń rozdzielaną przecinkami listę nazw modułów SDP, które zawieszają się w środowisku podczas uruchamiania raportu SDP.
-SysMon Zbierz dzienniki programu SysInternals System Monitor (SysMon) (domyślniesysmonConfig.xml w folderze konfiguracji).
-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>'
Uruchamianie debugowania podróży w czasie (TTD) (TTT/iDNA) z trybem domyślnym -Full . ProcessNameWprowadź wartości (s) z .exe rozszerzeniem, pojedynczym elementem (PID/name) lub listą elementów rozdzielaną przecinkami.

Uwaga:
System operacyjny niższego poziomu przed Windows 10 wersja 1703 wymaga pakietu TSS_TTD.zip.

1. Określ ścieżkę folderu zawierającą tttracer.exe (PartnerTTD). Zazwyczaj ten przełącznik jest wymagany tylko wtedy, gdy chcesz wymusić określoną ścieżkę.
2. Full = -dumpfull (=default)
Ring = tryb buforu pierścieniowego
onLaunch = -onLaunch (wymaga TSS_TTD)
3. Maksymalny rozmiar pliku dziennika. Operacja zależy od -TTDMode. Full zatrzymuje się po osiągnięciu maksymalnego rozmiaru i Ring zachowuje maksymalny rozmiar w buforze pierścieniowym.
4. Użyj tej opcji, aby dodać dodatkowe opcje dla TTD (TTT/iDNA).
-Video Rozpocznij przechwytywanie wideo (wymaga zainstalowania platformy .NET 3.5).
-WFPdiag Zbierz ślady za pomocą netsh Wfp capture polecenia .
-WireShark Uruchom narzędzie WireShark. Następujące parametry można skonfigurować za pośrednictwem pliku tss_config.cfg .

1. WS_IF: używany w systemie -i. Określ numer interfejsu (na przykład _WS_IF=1).
2. WS_Filter: używane w systemie -f. Filtruj dla interfejsu (na przykład _WS_Filter="port 443").
3. WS_Snaplen: używany w systemie -s. Ogranicz ilość danych dla każdej ramki. Ten parametr ma lepszą wydajność i jest przydatny w sytuacjach o dużym obciążeniu (na przykład _WS_Snaplen=128).
4. WS_TraceBufferSizeInMB: używane dla -b FileSize (pomnożone przez 1024). Przełącz się do następnego pliku po liczbie megabajtów. (na przykład _WS_TraceBufferSizeInMB=512, default=512 MB)
5. WS_PurgeNrFilesToKeep: używany w systemie -b files. Zastąp element po liczbie plików. (na przykład _WS_PurgeNrFilesToKeep=20)
6. WS_Options: wszelkie inne opcje ( -i na przykład _WS_Options="-P").

Przykład:
Aby zebrać narzędzie WireShark w interfejsach 15 i 11, wprowadź dane wejściowe, gdy usługa TSS wyświetli monit o numer interfejsu: 15 -i 11.

Domyślnie program Wireshark uruchamia polecenie 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>'
Uruchamianie śledzenia profilu WPR. <WPRprofile>jest jednym z elementów GeneralCPUVSOD_Leak||Device|SQL||MemoryGraphic||VSOD_CPUXaml|Wait|Storage|||Registry|BootGeneralNetwork.

1. Pomiń generowanie plików symboli (plików PDB).
2. Określ opcje dla WPR.exe. Na przykład -WPROptions '-onoffproblemdescription "test description"'.

Przykład 1:
.\TSS.ps1 -StartAutoLogger -WPR BootGeneral -WPROptions '-addboot CPU' będzie przechwytywać ślady rozruchu funkcji WPR za General pomocą profilów i CPU .

Przykład 2:
.\TSS.ps1 -WPR General -WPROptions '-Start CPU -start Network -start Minifilter' połączy profile (General, CPU, Network, i Minifilter).
-Xperf <Profile>
1. -XperfMaxFileMB <Size>
2. -XperfTag <Pool Tag>
3. -XperfPIDs <PID>
4. -XperfOptions <Option string>
Uruchom plik Xperf. <Profile>jest jednym z elementów GeneralDisk|||Registry||SBSLPoolNPPSBSLboot|SMB2|Pool|NetworkMemoryLeak||CPU|.

1. Określ maksymalny rozmiar dziennika w MB (wartość domyślna to 2048 MB). Wartość domyślna dla scenariuszy SBSL* to 16384 (taka sama dla ADS_/NET_SBSL).
2. Określ PoolTag , czy ma być rejestrowane. Ten parametr jest używany z profilem Pool lub PoolNPP (na przykład -Xperf Pool -XperfTag TcpE+AleE+AfdE+AfdX).
3. Określ ProcessID. Ten parametr jest używany z profilem Leak (na przykład -Xperf Leak -XperfPIDs <PID>).
4. Określ inne ciągi opcji dla Xperfelementu .
-xray Uruchom program xray, aby zdiagnozować system znanych problemów.

W poniższym przykładzie pokazano, jak aktywować wiele narzędzi obsługi (poleceń) podczas tego samego śledzenia.

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

Parametry w opcjach TSS

Definiuje określone parametry w ramach opcji usług TSS, aby kontrolować, ulepszać lub upraszczać zbieranie danych.

Parametr Opis
-AcceptEula Nie pytaj na początku; uruchom polecenie , aby zaakceptować zastrzeżenie (przydatne do -RemoteRun wykonania).
-AddDescription <description> Dodaj krótki opis problemu z odtwarzaniem. Nazwa wynikowego pliku zip będzie zawierać taki opis.
-Assist Tryb ułatwień dostępu.
-BasicLog Zbierz pełny dziennik podstawowy (minimalny dziennik podstawowy jest zawsze zbierany domyślnie).
-CollectComponentLog Użyj z elementem -Scenario. Domyślnie funkcje zbierania składników nie są wywoływane w -Scenario śledzeniu. Ten przełącznik umożliwia wywoływanie funkcji zbierania składników.
-CollectDump Zbierz zrzut systemu (memory.dmp) po zatrzymaniu wszystkich śladów. -CollectDump można używać z elementami -Start i -Stop.
-CollectEventLog <Eventlog[]> Zbierz określone dzienniki zdarzeń. Symbol wieloznaczny gwiazdki (*) może być używany dla nazwy dziennika zdarzeń.

Przykład:
-CollectEventLog Security,*Cred*
Zbierz zabezpieczenia i wszystkie dzienniki zdarzeń, które pasują *Cred* do .'Microsoft-Windows-CertificateServicesClient-CredentialRoaming/Operational'
-CommonTask <<POD>|Full|Mini> Przed uruchomieniem i po zatrzymaniu śledzenia uruchom typowe zadania.

<POD>: obecnie dostępna jest tylko opcja "NET". Zbierz dodatkowe informacje przed rozpoczęciem i po zatrzymaniu śledzenia.
Full: pełny dziennik podstawowy jest zbierany po zatrzymaniu śledzenia.
Mini: minimalny dziennik podstawowy jest zbierany po zatrzymaniu śledzenia.
-Crash Wyzwól awarię systemu przy NotMyFault zatrzymaniu repro lub po zasygnalizowanie wszystkich zdarzeń, jeśli są one używane z programem -WaitEvent.

Ostrożność:
Ten przełącznik wymusi zrzut pamięci (system zostanie uruchomiony ponownie), więc otwarte pliki nie zostaną zapisane.
-CustomETL Dodaj niestandardowych dostawców śledzenia ETL. Na przykład .\TSS.ps1 -WIN_CustomETL -CustomETL '{<GUID>}','Microsoft-Windows-PrimaryNetworkIcon' (rozdzielana przecinkami lista pojedynczych cudzysłów '{GUID}' i/lub 'Provider-Name').
-DebugMode Uruchamianie z trybem debugowania dla dewelopera.
-VerboseMode Pokaż bardziej pełne lub informacyjne dane wyjściowe podczas przetwarzania funkcji TSS.
-Discard Służy do odrzucania zestawu danych w fazie -Stop. *Stop- lub *Collect- funkcje nie będą uruchamiane. xray i psSDP zostaną pominięte.
-EnableCOMDebug Moduł umożliwiający włączenie trybu debugowania COM.
-ETLOptions<circular|newfile>:<ETLMaxSizeMB>:<ETLNumberToKeep>:<ETLFileMax> Ustaw opcje przekazywane do logman poleceń. Wartość domyślna parametru circular ETLMaxSizeMB to 1024, a wartość domyślna to newfile ETLMaxSizeMB 512.

-StartAutologger Obsługuje -ETLOptions circular:<ETLMaxSize>:<ETLNumberToKeep>:<ETLFileMax>tylko , ale ETLNumberToKeep nie zostanie wykonana w oczekiwany sposób.

Przykład.1:
-ETLOptions newfile:2048:5

Uruchom newfile dzienniki o rozmiarze 2048 MB. Zachowaj tylko pięć *.etl ostatnich plików. Domyślnym ustawieniem trybu cyklicznego jest circular:1024, a dla trybu newfile jest newfile:512:10.

Przykład 2:
-StartAutologger -ETLOptions circular:4096
Autologger nie będzie posłuszny i akceptuje tylko tryb cykliczny :<ETLNumberToKeep> .

Przykład 3:
-StartAutologger -ETLOptions circular:4096:10:3
Autologger nie będzie przestrzegane i akceptuje tylko tryb cykliczny :<ETLNumberToKeep> i "3" jako liczbę pokoleń autologger .
-ETWlevel <Info|Warning|Error> Ustaw poziom śledzenia zdarzeń. Wartość domyślna to 0xFF.
-EvtDaysBack <N> Konwertuj dzienniki zdarzeń tylko dla ostatnich N dni. Wartość domyślna to 30 dni. Dotyczy to również raportu SDP.

Uwaga:
Dzienniki zdarzeń zabezpieczeń zostaną pominięte.
-ExternalScript <path to external PS file> Przed uruchomieniem śledzenia uruchom określony skrypt programu PowerShell.
-LogFolderPath <Drive:\path to log folder> Użyj innej ścieżki folderu dziennika dla wynikowych danych wyjściowych zamiast domyślnej lokalizacji (C:\MS_DATA). Jest to przydatne, gdy na dysku C: brakuje wolnego miejsca na dysku.
-MaxEvents <N> Jako argument dla '-WaitEvent Evt:..'parametru zbada ostatnią N liczbę zdarzeń o tym samym identyfikatorze zdarzenia (wartość domyślna to 1).
-Mini Zbierz tylko minimalne dane. Pomiń noPSRelementy , noSDP, noVideo, noXray, noZipi noBasicLog.
-Mode <Basic|Medium|Advanced|Full|Verbose|VerboseEx|Hang|Restart
|Swarm|Kube|GetFarmdata|Permission|traceMS>
Uruchom skrypty w Basictrybie , Medium, Advanced, Fulllub Verbose(Ex) na potrzeby zbierania danych. Restart spowoduje ponowne uruchomienie skojarzonej usługi.
-RemoteRun Użyj funkcji, gdy usługa TSS jest wykonywana na hoście zdalnym, na przykład za pośrednictwem programu PsExec, konsoli szeregowej platformy Azure lub zdalnego korzystania z programu PowerShell. Ten parametr hamuje psr, nagrywanie wideo, uruchamianie funkcji TssClock i otwieranie Eksploratora z wynikami końcowymi. W takim przypadku należy również wziąć pod uwagę .-AcceptEula
-StartNoWait Nie czekaj, a monit zostanie zwrócony natychmiast. Ten parametr jest przydatny w scenariuszu, w którym użytkownik musi się wylogować.
-WaitEvent Monitoruj pod kątem określonego zdarzenia lub wyzwalacza zatrzymania; Jeśli zostanie on zasygnalizowane, ślady zostaną zatrzymane automatycznie.

Istnieje wiele różnych opcji wyzwalania automatycznego zatrzymywania. Uruchom polecenie .\TSS.ps1 -Find Monitoring , aby wyświetlić użycie.
-Update
1. -UpdMode<Online|Lite>
Zaktualizuj pakiet TSS. Można go używać razem z programem -UpdMode Online|Lite.

Online jest wartością domyślną i Lite jest wersją Upd lite.
-Help
1. Common
2. ALL
3. Monitoring
4. Config
5. Keyword
Podaj komunikaty pomocy dotyczące różnych scenariuszy.

1. Typowy ogólny komunikat pomocy.
2. Wszystkie dostępne opcje.
3. Pokaż komunikaty pomocy dotyczące monitorowania i funkcji zdalnych.
4. Pomoc dotycząca wszystkich parametrów konfiguracji.
5. Możesz wprowadzić dowolne słowo kluczowe i będzie ono zawierać informacje o pomocy dotyczące tego słowa kluczowego.
-Status Pokaż stan uruchomionego śledzenia, jeśli istnieje.

Dołączone skrypty i narzędzia pomocnika

Skrypt pomocnika i narzędzie Opis
\scripts\tss_EventCreate.ps1 Utwórz wpis dziennika zdarzeń w plikach dziennika zdarzeń z identyfikatorami zdarzeń.
\scripts\tss_SMB_Fix-SmbBindings.ps1 Przydatne do naprawiania uszkodzonych powiązań SMB (LanmanServer, LanmanWorkstation lub NetBT). Zobacz również -Collect NET_SMBsrvBinding.
\BINx64\kdbgctrl.exe Użyj przełącznika -sd <dump type> , aby ustawić typ Full|Kernelzrzutu awaryjnego jądra , na przykład kdbgctrl -sd Full.
\BINx64\NTttcp.exe Testy wydajnościowe. Aby uzyskać więcej informacji, zobacz Testowanie przepływności sieci maszyny wirtualnej przy użyciu protokołu NTTTCP.
\BINx64\latte.exe Testy opóźnienia. Aby uzyskać więcej informacji, zobacz Testowanie opóźnienia sieci między maszynami wirtualnymi platformy Azure.
\BINx64\notmyfaultc.exe Wymuś zrzut pamięci. Zobacz NotMyFault w wersji 4.21 , jeśli wiersz polecenia usługi TSS zawiera -Crashpolecenie .

Rozwiązywanie problemów z nieoczekiwanymi błędami programu PowerShell

  1. Uruchom to polecenie cmdlet po awarii:

    .\TSS.ps1 -Stop -noBasiclog -noXray
    
  2. Zamknij otwarte okno programu PowerShell z podwyższonym poziomem uprawnień i uruchom nowe okno programu PowerShell z podwyższonym poziomem uprawnień.

  3. Zezwalaj na uruchamianie skryptów programu PowerShell w systemie przy użyciu odpowiedniego ExecutionPolicyelementu .

  4. Jeśli wystąpi błąd wskazujący, że uruchomiony skrypt jest wyłączony, wypróbuj następujące metody.

Metoda 1

  1. Uruchom następujące polecenie cmdlet:

    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -force -Scope Process
    
  2. Sprawdź ustawienia za Get-ExecutionPolicy -List pomocą polecenia cmdlet, że polecenie cmdlet nie ExecutionPolicy ma wyższego pierwszeństwa blokuje wykonanie tego skryptu.

  3. .\TSS.ps1 <Desired Parameters> Uruchom ponownie polecenie cmdlet.

Metoda 2 (alternatywna)

Jeśli skrypty są blokowane przez MachinePolicyprogram , uruchom następujące polecenia cmdlet w oknie programu PowerShell z podwyższonym poziomem uprawnień:

  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
    

Metoda 3 (alternatywna)

Jeśli skrypty są blokowane przez UserPolicyprogram , uruchom następujące polecenia cmdlet w oknie programu PowerShell z podwyższonym poziomem uprawnień:

  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
    

Uwaga

Metoda 2 jest tylko obejściem zasad MachinePolicy - RemoteSigned. Jeśli zobaczysz UserPolicy - RemoteSignedrównież polecenie , poproś administratora domeny o tymczasowe wykluczenie obiektu zasady grupy (GPO).

W rzadkich sytuacjach możesz wypróbować -ExecutionPolicy Bypass polecenie cmdlet.

Jeśli organizacja wymusza ograniczony tryb języka programu PowerShell dla obiektu zasad grupy (System.Management.Automation.EngineIntrinsics.SessionState.LanguageMode -ne 'FullLanguage'), poproś administratora domeny o tymczasowe wykluczenie obiektu zasad grupy.

Często zadawane pytania

  • P1: Czy skrypt TSS zmienia konfigurację lub konfigurację mojego systemu?

    A1: Nie, ale ustawienie rejestru jest wymagane do włączenia rejestrowania debugowania w niektórych scenariuszach. Skrypt ustawia niezbędny klucz na początku zbierania danych i przywraca klucz do wartości domyślnej na końcu zbierania danych. Może również usunąć niektóre pamięci podręczne (na przykład pamięć podręczną ARP lub pamięć podręczną rozpoznawania nazw) na początku zbierania danych, aby obserwować problem z dzienników.

  • P2: Czy zestaw narzędzi TSS nakłada dodatkowe obciążenie na serwer?

    A2: Niektóre rejestrowania (na przykład przechwytywanie sieci, zbieranie śledzenia ETW itd.), które są uruchamiane przez zestaw narzędzi TSS, mogą spowodować niewielkie obciążenie systemu. Obciążenie jest zwykle na poziomach, które można zignorować. Skontaktuj się z przedstawicielem pomocy technicznej, gdy po uruchomieniu zestawu narzędzi TSS zobaczysz wysokie użycie procesora CPU, pamięci lub dysku.

  • P3: Dlaczego nie możemy odtworzyć problemu po uruchomieniu zestawu narzędzi TSS?

    A3: Zestaw narzędzi TSS może usunąć wszystkie buforowane informacje na początku. Uruchamia również przechwytywanie sieci w trybie rozwiązłym, który zmienia domyślne zachowania karty interfejsu sieciowego.It also starts the network capturing in a promiscuous mode, which changes the Network Interface Card (NIC) default behaviors( Network Interface Card( karta sieciowa) default behaviors. Te zmiany mogą mieć wpływ na problem, a problemy mogą zniknąć. Szczególnie w przypadku konkretnych problemów z chronometrażem problemy znikają z powodu zbierania danych zestawu narzędzi TSS. Zbieranie danych rozpoczyna rejestrowanie, co może mieć pośredni wpływ na problem i zmienić sytuację.

  • P4: Dlaczego zestaw narzędzi TSS nie odpowiada przez długi czas?

    Odpowiedź 4: W niektórych przypadkach wbudowane polecenia systemu operacyjnego uruchamiane przez zestaw narzędzi TSS mogą nie odpowiadać lub trwać długo. Jeśli wystąpi ten problem, skontaktuj się z przedstawicielem pomocy technicznej.

  • P5: Czy podczas długiego uruchamiania zestawu narzędzi TSS muszę martwić się o miejsce na dysku lub cokolwiek innego?

    A5: Wszystkie śledzenie TSS jest skonfigurowane do uruchamiania z buforami pierścieniowymi, dzięki czemu w razie potrzeby można uruchomić zestaw narzędzi przez długi czas. Zestaw narzędzi TSS oblicza również miejsce na dysku na początku zbierania danych i może zakończyć się, jeśli nie ma wystarczającej ilości miejsca na dysku. Jeśli po uruchomieniu zestawu narzędzi TSS występuje wysokie użycie dysku lub masz inne obawy dotyczące użycia zestawu narzędzi na dysku, skontaktuj się z przedstawicielem pomocy technicznej.

  • P6: Co należy zrobić, jeśli podczas uruchamiania skryptu .\TSS.ps1 zostanie wyświetlone następujące ostrzeżenie o zabezpieczeniach?

    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: W rzadkich sytuacjach może zostać wyświetlone ostrzeżenie o zabezpieczeniach. Skrypt można odblokować przy użyciu polecenia cmdlet PS C:\> Unblock-File -Path C:\TSS\TSS.ps1. Ten skrypt odblokuje wszystkie inne moduły przy użyciu polecenia cmdlet Get-ChildItem -Recurse -Path C:\TSS\*.ps* | Unblock-File -Confirm:$false.

Umowa licencyjna użytkownika końcowego (EULA)

Wybierz poniższą pozycję, aby wyświetlić postanowienia licencyjne dotyczące oprogramowania firmy MICROSOFT.

Microsoft Diagnostic Scripts and Utilities

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. Z zastrzeżeniem postanowień i ograniczeń określonych w niniejszej licencji firma Microsoft Corporation ("Microsoft") udziela Użytkownikowi ("Klientowi" lub "Użytkownikowi") niewyłączanej, niezdelegalnej, w pełni płatnej licencji na korzystanie i odtwarzanie skryptu lub narzędzia dostarczonego w ramach tej licencji ("Oprogramowanie"), wyłącznie do wewnętrznych celów biznesowych Klienta, aby pomóc firmie Microsoft w rozwiązywaniu problemów z co najmniej jednym produktem firmy Microsoft, pod warunkiem, że taka licencja na Oprogramowanie nie obejmuje żadnych praw do innych technologii firmy Microsoft (takich jak produkty lub usługi). "Use" oznacza kopiowanie, instalowanie, wykonywanie, uzyskiwanie dostępu, wyświetlanie, uruchamianie lub w inny sposób interakcję z Oprogramowaniem.

    Użytkownik nie może podlicytować Oprogramowania ani używać go poprzez dystrybucję, dostęp do sieci lub w inny sposób. Firma Microsoft zastrzega sobie wszelkie inne prawa, które nie zostały wyraźnie przyznane w tym miejscu, niezależnie od tego, czy są to implikacje, estoppel, czy też w inny sposób. Użytkownik nie może odtworzyć, dekompilować ani dezasemblować Oprogramowania ani w inny sposób próbować uzyskać kodu źródłowego Oprogramowania, z wyjątkiem i w zakresie wymaganym przez postanowienia licencyjne innych firm regulujące korzystanie z niektórych składników open source, które mogą być zawarte w Oprogramowaniu, lub usuwać, minimalizować, blokować lub modyfikować wszelkie powiadomienia firmy Microsoft lub jego dostawców w Oprogramowaniu. Ani Użytkownik, ani Jego przedstawiciele nie mogą korzystać z Oprogramowania dostarczonego poniżej: (i) w sposób zabroniony przez prawo, regulacje, porządek rządowy lub dekret; (ii) naruszanie praw innych osób; (iii) próby uzyskania nieautoryzowanego dostępu do dowolnej usługi, urządzenia, danych, konta lub sieci lub zakłócania dostępu do niej; (iv) rozpowszechniania spamu lub złośliwego oprogramowania; (v) w sposób, który może zaszkodzić systemom INFORMATYCZNYm firmy Microsoft lub zakłócić korzystanie z nich przez inne osoby; (vi) w każdym wniosku lub sytuacji, w której korzystanie z Oprogramowania może prowadzić do śmierci lub poważnych obrażeń ciała jakiejkolwiek osoby, lub do szkód fizycznych lub środowiskowych; lub (vii), aby pomóc, zachęcić lub umożliwić każdemu wykonanie któregokolwiek z powyższych czynności.

  2. DANYCH. Klient jest właścicielem wszystkich praw do danych, które może zdecydować się udostępnić firmie Microsoft za pośrednictwem Oprogramowania. Więcej informacji na temat zbierania i używania danych można znaleźć w dokumentacji pomocy i oświadczeniu o ochronie prywatności pod adresem https://aka.ms/privacy. Korzystanie z Oprogramowania działa jako zgoda na te praktyki.

  3. FEEDBACK. Jeśli przekazujesz firmie Microsoft opinię na temat Oprogramowania, udzielasz firmie Microsoft, bez opłat, prawa do używania, udostępniania i komercjalizacji opinii w jakikolwiek sposób i w dowolnym celu. Nie będziesz przekazywać żadnych opinii, które podlegają licencji, która wymagałaby od firmy Microsoft licencjonowania oprogramowania lub dokumentacji osobom trzecim ze względu na firmę Microsoft, w tym opinii użytkownika w takim oprogramowaniu lub dokumentacji.

  4. EXPORT RESTRICTIONS. Klient musi przestrzegać wszystkich krajowych i międzynarodowych przepisów eksportowych, które mają zastosowanie do Oprogramowania, które obejmują ograniczenia dotyczące miejsc docelowych, użytkowników końcowych i użytkowania końcowego. For further information on export restrictions, visit https://aka.ms/exporting.

  5. OŚWIADCZENIA I GWARANCJE. Klient będzie przestrzegać wszystkich obowiązujących przepisów niniejszej umowy, w tym w zakresie dostarczania i wykorzystywania wszystkich danych. Klient lub osoba projektująca zgadzająca się na niniejsze warunki w imieniu jednostki reprezentuje i gwarantuje, że (i) ma pełne uprawnienia i uprawnienia do wprowadzania i wykonywania swoich zobowiązań wynikających z niniejszej umowy, (ii) ma pełne uprawnienia i uprawnienia do powiązania swoich podmiotów stowarzyszonych lub organizacji z warunkami niniejszej umowy, a (iii) zapewni zgodę drugiej strony przed dostarczeniem jakiegokolwiek kodu źródłowego w sposób, który podlegałby własności intelektualnej drugiej strony do innych postanowień licencyjnych lub wymagać od drugiej strony dystrybucji kodu źródłowego do dowolnej z jej technologii.

  6. ZASTRZEŻENIE GWARANCJI. OPROGRAMOWANIE JEST DOSTARCZANE "TAK, JAK JEST", BEZ JAKIEJKOLWIEK GWARANCJI, EKSPRESOWEJ LUB DOROZUMIANEJ, W TYM MIĘDZY INNYMI GWARANCJI ZBYWALNOŚCI, PRZYDATNOŚCI DO OKREŚLONEGO CELU I NIEUBEZWŁASNOŚCI. W ŻADNYM WYPADKU FIRMA MICROSOFT ANI JEJ LICENCJODAWCY NIE PONOSZĄ ODPOWIEDZIALNOŚCI ZA JAKIEKOLWIEK BEZPOŚREDNIE, POŚREDNIE, PRZYPADKOWE, SPECJALNE, PRZYKŁADOWE LUB WTÓRNE SZKODY (W TYM MIĘDZY INNYMI ZA ZAKUP TOWARÓW LUB USŁUG ZASTĘPCZYCH; UTRATA UŻYCIA, DANYCH LUB ZYSKÓW; LUB PRZERW W DZIAŁALNOŚCI GOSPODARCZEJ) JEDNAK SPOWODOWANE I NA WSZELKIE TEORIE ODPOWIEDZIALNOŚCI, CZY W UMOWIE, ODPOWIEDZIALNOŚCI ŚCISŁEJ LUB CZYNU NIEDOZWOLONEGO (W TYM ZANIEDBANIA LUB W INNY SPOSÓB) WYNIKAJĄCE W JAKIKOLWIEK SPOSÓB Z KORZYSTANIA Z OPROGRAMOWANIA, NAWET JEŚLI POINFORMOWANI O MOŻLIWOŚCI TAKIEJ SZKODY.

  7. OGRANICZENIE I WYKLUCZENIE SZKÓD. JEŚLI MASZ JAKIEKOLWIEK PODSTAWY DO ODZYSKANIA ODSZKODOWANIA POMIMO POWYŻSZEGO ZASTRZEŻENIA GWARANCJI, MOŻESZ ODZYSKAĆ OD FIRMY MICROSOFT I JEJ DOSTAWCÓW TYLKO BEZPOŚREDNIE SZKODY DO USA. 00. NIE MOŻNA ODZYSKAĆ ŻADNYCH INNYCH SZKÓD, W TYM KONSEKWENCJI, UTRACONYCH ZYSKÓW, SPECJALNYCH, POŚREDNICH LUB PRZYPADKOWYCH SZKÓD. To ograniczenie dotyczy (i) wszelkich elementów związanych z Oprogramowaniem, usługami, zawartością (w tym kodem) w witrynach internetowych innych firm lub aplikacjach innych firm; oraz (ii) roszczeń z tytułu naruszenia umowy, gwarancji, gwarancji lub warunku; ścisłej odpowiedzialności, zaniedbania lub innego czynu niedozwolonego; lub jakiekolwiek inne roszczenia; w każdym przypadku w zakresie dozwolonym przez prawo właściwe. 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. Ta sekcja ma zastosowanie, jeśli mieszkasz w (lub, jeśli firma, twoje główne miejsce działalności jest w) Stany Zjednoczone. If you and Microsoft have a dispute, you and Microsoft agree to try for 60 days to resolve it informally. Jeśli ty i firma Microsoft nie mogą, Ty i Firma Microsoft wyrażają zgodę na wiązanie indywidualnego arbitrażu przed Amerykańskim Stowarzyszeniem Arbitrażowym na mocy federalnej ustawy arbitrażowej ("FAA"), a nie pozwać w sądzie przed sędzią lub ławą przysięgłych. 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. PRAWO I MIEJSCE. 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.