Wprowadzenie do zestawu narzędzi języka TroubleShootingScript (TSS)
W tym artykule przedstawiono zestaw narzędzi TroubleShootingScript (TSS) i zawiera 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 pomaga w wydajnym i bezpiecznym rozwiązywaniu przypadków.
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 witryny https://aka.ms/getTSS.
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. Uruchomienie zestawu narzędzi TSS w zintegrowanym środowisku skryptów programu Windows PowerShell (ISE) nie jest obsługiwane. Należy zaakceptować umowę licencyjną użytkownika końcowego (EULA). Po zaakceptowaniu umowy LICENCYJNEj zestaw narzędzi TSS nie będzie ponownie monitował o umowy EULA.
Zasady wykonywania skryptu programu PowerShell powinny być ustawione na
RemoteSigned
poziomie procesu, uruchamiając polecenie cmdletSet-ExecutionPolicy -scope Process -ExecutionPolicy RemoteSigned -Force
z wiersza polecenia programu PowerShell z podwyższonym poziomem uprawnień.Uwaga 16.
Zmiany na poziomie procesu mają wpływ tylko na bieżącą sesję programu PowerShell.
Jak uruchomić zestaw narzędzi TSS
Możesz uruchomić TSS.ps1 z różnymi przełącznikami w zależności od scenariusza. Czasownik -Start
jest czasownikiem domyślnym i opcjonalnym i może zostać zastąpiony czasownikiem uzupełniającym zgodnie z potrzebami. Czasowniki uzupełniające -Start
to -StartAutoLogger
, , -StartNoWait
-StartDiag
i -CollectLog
.
Czasownik | opis |
---|---|
-Start |
Czasownik -Start uruchamia śledzenie zdarzeń dla śladów składników systemu Windows (ETW) lub narzędzia obsługi, takie jak Windows Performance Recorder (WPR).Czasownik [-Start] jest opcjonalny, ale można go zastąpić opcjami uzupełniającymi -start . |
-StartAutoLogger |
Aby zebrać te dzienniki w czasie rozruchu, użyj polecenia -StartAutoLogger , aby zastąpić -Start element .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 dużego użycia w obecnej sytuacji, ma być używany w przyszłości w wielu scenariuszach. Obecnie można połączyć go z innymi argumentami, takimi jak NET_DFSn uzyskanie diagnostyki przestrzeni nazw DFSN. |
-StartNoWait |
Ten parametr umożliwia zachowanie aktywności śladów nawet po wylogowaniu. 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 podczas zatrzymywania 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 opcjonalne. 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. Po [General:10] pominięciu wartość domyślna rozpoczyna się, 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, wymagana jest wartość <N> ="liczba sekund". |
Śledzenie zdarzeń dla śledzenia systemu Windows (ETW)
Ślad ETW | Polecenie cmdlet programu PowerShell | opis |
---|---|---|
Włącz śledzenie scenariusza. | .\TSS.ps1 -Scenario <ScenarioName> |
Obsługiwane nazwy 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> polecenie jest wyświetlane przy użyciu TSS.ps1 -ListSupportedTrace polecenia cmdlet . |
Uruchom ślady bez trybu 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 śledzenie. |
Uwaga 16.
Aby wyświetlić listę wszystkich identyfikatorów GUID składników i/lub scenariuszy, użyj -ListETWProviders
polecenia cmdlet . Na przykład:
.\TSS.ps1 -ListETWProviders <component-/scenario-name>
Narzędzia i polecenia pomocy technicznej
Uruchom narzędzia obsługi lub polecenia (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ę Narzędzia>Opcje i wybierając pozycję Odszyfruj ruch HTTPS na karcie HTTPS. |
-GPresult <Start |Stop |Both > |
Zbierz GPresult dane wyjściowe w fazie start , stop lub both . |
-Handle <Start |Stop |Both > |
Zbierz dane wyjściowe sysInternals Handle.exe w fazie start , stop lub both . |
-LiveKD <Start |Stop |Both > |
Uruchom plik SysInternals LiveKD -ml (zrzut jądra na żywo).<Start> : zrzut jest pobierany na początku odtworzenia.<Stop> : zrzut zostanie zatrzymany.<Both> : zrzut jest pobierany zarówno na początku, jak i na zatrzymaniu. |
-Netsh 1. -NetshOptions '<Option string>' 2. -NetshMaxSizeMB <Int> 3. -noPacket |
Uruchom przechwytywanie pakietów sieciowych. 1. Określ dodatkowe opcje dla elementu Netsh . Na przykład 'capturetype=both captureMultilayer=yes provider=Microsoft-Windows-PrimaryNetworkIcon provider={<GUID>}' .2. Maksymalny rozmiar dziennika dla Netsh w megabajtach (MB) (na przykład -NetshMaxSizeMB 4096 ). Wartość domyślna to 2048.3. Zapobiegaj przechwyceniu Netsh pakietów (przechwytywane są tylko ślady ETW w elemecie ScenarioName ). |
-NetshScenario 1. -NetshOptions '<Option string>' 2. -NetshMaxSizeMB <Int> 3. -noPacket |
Rozpocznij śledzenie scenariusza Netsh . Obsługiwane <ScenarioName> polecenie jest wyświetlane przy użyciu -ListSupportedNetshScenario polecenia cmdlet .1. Określ dodatkowe opcje dla elementu Netsh . Na przykład 'capturetype=both captureMultilayer=yes provider=Microsoft-Windows-PrimaryNetworkIcon provider={<GUID>}' .2. Maksymalny rozmiar dziennika dla Netsh w MB (na przykład -NetshMaxSizeMB 4096 ). Wartość domyślna to 2048.3. Zapobiegaj przechwytywaniu pakietów za pomocą Netsh funkcji (przechwytywane będą 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> |
Uruchom dzienniki monitor wydajności. Element <CounterSetName> można wymienić przy -ListSupportedPerfCounter użyciu polecenia cmdlet .1. Ustaw interwał dziennika PerfMon (wartość domyślna to 10 sekund).2. Określ wartość int 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ł dziennika PerfMonLong (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 > |
Zbierz PoolMon wartości , start stop lub 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 rozdzielone przecinkami listy elementów przy użyciu ProcDump.exe SysInternals. Domyślnie zrzut jest pobierany na początku odtworzenia i zatrzymywania. Wprowadź ProcessName (s) z .exe rozszerzeniem .1. Start : zrzut jest pobierany na początku odtworzenia.Stop : zrzut zostanie zatrzymany.Both (ustawienie domyślne): zrzut jest pobierany zarówno przy uruchamianiu, jak i zatrzymaniu.2. Użyj tej opcji, gdy zrzut musi zostać przechwycony wielokrotnie. N : liczba zrzutówInt : interwał w sekundachWartość domyślna to 3:10. 3. Ten przełącznik włącza ProcDump -ma -e funkcję , która zapisuje pełny zrzut, gdy proces napotka nieobsługiwany wyjątek. |
-ProcMon 1. -ProcmonAltitude <N> 2. -ProcmonPath <folder path to Procmon.exe> 3. -ProcmonFilter <filter-file.pmc> |
Uruchom Procmon.exe SysInternals. 1. Określ wartość ciągu ( ProcmonAltitude wartość domyślna to 385200). Służy fltmc instances do pokazywania wysokości sterownika filtru. Użyj mniejszej liczby niż podejrzany konkretny sterownik. Wartość 45100 spowoduje wyświetlenie praktycznie wszystkiego.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 narzędzia Procmon (na przykład ProcmonConfiguration.pmc) znajdujący się w folderze \config . |
-PSR |
Rozpocznij rejestrowanie kroków problemów. |
-Radar <PID[] |ProcessName[] |ServiceName[] > |
Zbierz informacje diagnostyczne dotyczące wycieku (rdrleakdiag.exe). Na przykład -Radar AppIDSvc . |
-RASdiag |
Zbieranie danych śledzenia. Śledzenie zestawu diagnostycznego Netsh Ras jest włączone. |
-SDP <SpecialityName[]> 1. -SkipSDPList "<xxx>","<yyy>" 2. <SpecialityName> |
Zbierz pakiet diagnostyczny pomocy technicznej (SDP) dla określonej specjalizacji. 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 danym środowisku podczas uruchamiania raportu SDP. |
-SysMon |
Zbierz dzienniki programu SysInternals System Monitor (SysMon) (sysmonConfig.xml domyślnie w folderze config). |
-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>' |
Debugowanie podróży w czasie rozpoczęcia (TTD) (TTT/iDNA) z trybem domyślnym -Full . ProcessName Wprowadź (s) z .exe rozszerzeniem, pojedynczym elementem (PID/name) lub rozdzielaną przecinkami listą elementów.Nuta: System operacyjny na poziomie podrzędnym przed systemem Windows 10 w wersji 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ć konkretną ścieżkę. 2. Full = -dumpfull (=default)Ring = tryb buforu pierścieniowegoonLaunch = -onLaunch (wymaga TSS_TTD)3. Maksymalny rozmiar pliku dziennika. Operacja zależy -TTDMode od . Full zatrzymuje się po osiągnięciu maksymalnego rozmiaru i Ring utrzymuje maksymalny rozmiar w buforze pierścieniowym.4. Użyj tej opcji, aby dodać wszelkie dodatkowe opcje dla TTD (TTT/iDNA). |
-Video |
Rozpocznij przechwytywanie wideo (wymaga zainstalowania programu .NET 3.5). |
-WFPdiag |
Zbierz ślady za netsh Wfp capture pomocą polecenia . |
-WireShark |
Uruchom narzędzie WireShark. Następujące parametry można skonfigurować za pomocą pliku tss_config.cfg . 1. WS_IF : używany dla elementu -i . Określ numer interfejsu (na przykład _WS_IF=1 ).2. WS_Filter : używany dla elementu -f . Filtruj dla interfejsu (na przykład _WS_Filter="port 443" ).3. WS_Snaplen : używane dla elementu -s . Ogranicz ilość danych dla każdej ramki. Ten parametr ma lepszą wydajność i jest pomocny w sytuacjach dużego obciążenia (na przykład _WS_Snaplen=128 ).4. WS_TraceBufferSizeInMB : używany do -b FileSize (pomnożony przez 1024). Przejdź do następnego pliku po liczbie megabajtów. (na przykład , _WS_TraceBufferSizeInMB=512 default=512 MB)5. WS_PurgeNrFilesToKeep : używany dla elementu -b files . Zastąp wartość po liczbie plików. (na przykład _WS_PurgeNrFilesToKeep=20 )6. WS_Options : wszelkie inne opcje dla -i (na przykład _WS_Options="-P" ).Przykład: Aby zebrać narzędzie WireShark w interfejsach 15 i 11, wprowadź, 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>' |
Uruchom ślad profilu WPR. <WPRprofile> jest jednym z General VSOD_Leak |CPU VSOD_CPU |||Device SQL ||Xaml Wait ||Graphic |Storage |Registry Network Memory ||BootGeneral |.1. Pomiń generowanie plików symboli (pliki 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' funkcja przechwytuje ś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 General SBSLboot ||Disk Registry ||SBSL PoolNPP ||SMB2 |Pool |Network Memory Leak ||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 , aby 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 wartość ProcessID . Ten parametr jest używany z profilem Leak (na przykład -Xperf Leak -XperfPIDs <PID> ).4. Określ inne ciągi opcji dla elementu Xperf . |
-xray |
Uruchom program xray, aby zdiagnozować system pod kątem 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 opcjach TSS w celu kontrolowania, ulepszania lub upraszczania zbierania 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 odtworzeniem. Nazwa wynikowego pliku zip będzie zawierać taki opis. |
-Assist |
Tryb ułatwień dostępu. |
-BasicLog |
Zbierz pełny dziennik podstawowy (dziennik mini basic jest zawsze zbierany domyślnie). |
-CollectComponentLog |
Użyj z -Scenario . Domyślnie funkcje zbierania składników nie są wywoływane w śladzie -Scenario . 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 i -Start -Stop . |
-CollectEventLog <Eventlog[]> |
Zbierz określone dzienniki zdarzeń. Gwiazdka (*) symbol wieloznaczny może służyć dla nazwy dziennika zdarzeń. Przykład: -CollectEventLog Security,*Cred* Zbierz zabezpieczenia i wszystkie dzienniki zdarzeń, które są zgodne *Cred* z .'Microsoft-Windows-CertificateServicesClient-CredentialRoaming/Operational' |
-CommonTask <<POD> |Full |Mini > |
Uruchom typowe zadania przed rozpoczęciem i po zatrzymaniu śledzenia.<POD> : obecnie jest dostępny tylko "NET". Zbierz dodatkowe informacje przed rozpoczęciem i po zatrzymaniu śledzenia.Full : pełny dziennik podstawowy jest zbierany po zatrzymaniu śledzenia.Mini : mini dziennik podstawowy jest zbierany po zatrzymaniu śledzenia. |
-Crash |
Wyzwalanie awarii systemu z NotMyFault zatrzymaniem ponownego odtworzenia lub po tym, jak wszystkie zdarzenia są sygnalizowane, jeśli są używane z -WaitEvent programem .Przestroga: 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' (rozdzielona przecinkami lista jednocytowych '{GUID}' i/lub 'Provider-Name' ). |
-DebugMode |
Uruchom polecenie w trybie debugowania dla dewelopera. |
-VerboseMode |
Pokaż więcej pełnych lub informacyjnych danych wyjściowych podczas przetwarzania funkcji TSS. |
-Discard |
Służy do odrzucania zestawu danych w fazie -Stop . *Stop- lub *Collect- funkcje nie zostaną uruchomione. 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 to circular ETLMaxSizeMB 1024, a wartość newfile ETLMaxSizeMB domyślna to 512.-StartAutologger obsługuje tylko funkcję -ETLOptions circular:<ETLMaxSize>:<ETLNumberToKeep>:<ETLFileMax> , ale ETLNumberToKeep nie będzie wykonywana w oczekiwany sposób.Przykład.1: -ETLOptions newfile:2048:5 Uruchamianie newfile dzienników o rozmiarze 2048 MB. Zachowaj tylko pięć *.etl ostatnich plików. Ustawieniem domyślnym dla trybu cyklicznego jest circular:1024 , a dla trybu newfile to newfile:512:10 .Przykład 2: -StartAutologger -ETLOptions circular:4096 Autologger nie będzie przestrzegać :<ETLNumberToKeep> i akceptuje tylko tryb okrągły.Przykład 3: -StartAutologger -ETLOptions circular:4096:10:3 Autologger nie będzie przestrzegać :<ETLNumberToKeep> i akceptuje tylko tryb okrągły i "3" jako liczbę autologger pokoleń. |
-ETWlevel <Info |Warning |Error > |
Ustaw poziom śledzenia zdarzeń. Wartość domyślna to 0xFF. |
-EvtDaysBack <N> |
Konwertuj dzienniki zdarzeń tylko w ciągu 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> |
Uruchom określony skrypt programu PowerShell przed rozpoczęciem śledzenia. |
-LogFolderPath <Drive:\path to log folder> |
Użyj innej ścieżki folderu dziennika dla wynikowych danych wyjściowych zamiast lokalizacji domyślnej (C:\MS_DATA). Jest to przydatne, gdy dysk C: jest niski na wolnym dysku. |
-MaxEvents <N> |
Jako argument dla '-WaitEvent Evt:..' parametru parametr zbada ostatni N zdarzeń o tym samym identyfikatorze zdarzenia (wartość domyślna to 1). |
-Mini |
Zbieranie tylko minimalnych danych. Pomiń noPSR , , noSDP , noVideo noXray , noZip , i noBasicLog . |
-Mode <Basic |Medium |Advanced |Full |Verbose |VerboseEx |Hang |Restart | Swarm |Kube |GetFarmdata |Permission |traceMS > |
Uruchamianie skryptów w Basic trybie , Medium , Advanced , Full lub Verbose(Ex) na potrzeby zbierania danych. Restart spowoduje ponowne uruchomienie skojarzonej usługi. |
-RemoteRun |
Użyj polecenia , gdy TSS jest wykonywany na hoście zdalnym, na przykład za pośrednictwem programu PsExec, w konsoli szeregowej platformy Azure lub komunikacji zdalnej programu PowerShell. Ten parametr będzie hamować PSR, nagrywanie wideo, uruchamianie TssClock i otwieranie Eksploratora z końcowymi wynikami. W takim przypadku należy również rozważyć wartość -AcceptEula . |
-StartNoWait |
Nie czekaj, a monit zostanie zwrócony natychmiast. Ten parametr jest przydatny w scenariuszu, w którym użytkownik musi wylogować się. |
-WaitEvent |
Monitorowanie określonego zdarzenia lub wyzwalacza zatrzymania; jeśli zostanie zasygnalizowana, ślady zostaną automatycznie zatrzymane. Istnieje wiele 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 -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. Wspólny 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 wyświetli informacje pomocy dotyczące tego słowa kluczowego. |
-Status |
Pokaż stan uruchomionego śledzenia, jeśli istnieje. |
Dołączone skrypty i narzędzia pomocnika
Skrypt i narzędzie pomocnika | 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ń protokołu SMB (LanmanServer, LanmanWorkstation lub NetBT). Zobacz też -Collect NET_SMBsrvBinding . |
\BINx64\kdbgctrl.exe |
Użyj przełącznika -sd <dump type> , aby ustawić typ Full|Kernel zrzutu 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 maszyn wirtualnych przy użyciu narzędzia 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 TSS zawiera polecenie -Crash . |
Rozwiązywanie problemów z nieoczekiwanymi błędami programu PowerShell
Uruchom to polecenie cmdlet po niepowodzeniu:
.\TSS.ps1 -Stop -noBasiclog -noXray
Zamknij otwarte okno programu PowerShell z podwyższonym poziomem uprawnień i uruchom nowe okno programu PowerShell z podwyższonym poziomem uprawnień.
Zezwól na uruchamianie skryptów programu PowerShell w systemie przy użyciu odpowiedniego polecenia
ExecutionPolicy
.Jeśli wystąpi błąd wskazujący, że uruchomiony skrypt jest wyłączony, spróbuj wykonać następujące metody.
Metoda 1
Uruchom następujące polecenia cmdlet:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -force -Scope Process
Sprawdź ustawienia za pomocą
Get-ExecutionPolicy -List
polecenia cmdlet , że żadne z wyższym priorytetem nieExecutionPolicy
blokuje wykonywania tego skryptu..\TSS.ps1 <Desired Parameters>
Uruchom ponownie polecenie cmdlet.
Metoda 2 (alternatywna)
Jeśli skrypty są blokowane przez MachinePolicy
program , uruchom następujące polecenia cmdlet w oknie programu PowerShell z podwyższonym poziomem uprawnień:
Set-ItemProperty -Path HKLM:\Software\Policies\Microsoft\Windows\PowerShell -Name ExecutionPolicy -Value RemoteSigned
Set-ItemProperty -Path HKLM:\Software\Policies\Microsoft\Windows\PowerShell -Name EnableScripts -Value 1 -Type DWord
Metoda 3 (alternatywna)
Jeśli skrypty są blokowane przez UserPolicy
program , uruchom następujące polecenia cmdlet w oknie programu PowerShell z podwyższonym poziomem uprawnień:
Set-ItemProperty -Path HKLM:\Software\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell -Name ExecutionPolicy -Value RemoteSigned
Set-ItemProperty -Path HKLM:\Software\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell -Name EnableScripts -Value 1 -Type DWord
Uwaga 16.
Metoda 2 jest tylko obejściem zasad MachinePolicy - RemoteSigned
. Jeśli zostanie również wyświetlony komunikat UserPolicy - RemoteSigned
, poproś administratora domeny o tymczasowe wykluczenie obiektu zasad grupy (GPO).
W rzadkich sytuacjach możesz wypróbować -ExecutionPolicy Bypass
polecenie cmdlet .
Jeśli Organizacja wymusza tryb języka ograniczonego przez program PowerShell obiektu zasad grupy (System.Management.Automation.EngineIntrinsics.SessionState.LanguageMode -ne 'FullLanguage'
), poproś administratora domeny o tymczasowe wykluczenie obiektu zasad grupy.
Często zadawane pytania (FAQ)
Pytanie 1: Czy skrypt TSS zmienia konfigurację lub konfigurację systemu?
1: 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 zaobserwować problem z dzienników.
Q2: Czy zestaw narzędzi TSS nakłada dodatkowe obciążenie na serwer?
2: Niektóre rejestrowanie (na przykład przechwytywanie sieci, zbieranie śledzenia ETW itd.), które są uruchamiane przez zestaw narzędzi TSS, może spowodować niewielkie obciążenie systemu. Obciążenie jest zwykle na nieumyślnych poziomach. 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, gdy zestaw narzędzi TSS jest uruchomiony?
3: Zestaw narzędzi TSS może usunąć wszystkie buforowane informacje na początku. Uruchamia również przechwytywanie sieci w trybie promiscuous, który zmienia domyślne zachowania karty interfejsu sieciowego. 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ć wpływ na problem pośrednio i zmienić sytuację.
Q4: Dlaczego zestaw narzędzi TSS nie odpowiada przez długi czas?
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.
Pytanie5: Czy muszę martwić się o miejsce na dysku lub cokolwiek innego, gdy uruchamiam zestaw narzędzi TSS przez długi czas?
A5: Wszystkie śledzenie TSS jest skonfigurowane do uruchamiania z pierścienia, dzięki czemu można uruchomić zestaw narzędzi przez długi czas w razie potrzeby. Zestaw narzędzi TSS oblicza również miejsce na dysku na początku zbierania danych i może zakończyć działanie, jeśli nie ma wystarczającej ilości miejsca na dysku. Jeśli po uruchomieniu zestawu narzędzi TSS widzisz wysokie użycie dysku lub masz inne obawy dotyczące użycia dysku zestawu narzędzi, skontaktuj się z przedstawicielem pomocy technicznej.
Pytanie 6: Co należy zrobić, jeśli podczas uruchamiania skryptu .\TSS.ps1 otrzymuję 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")
6: 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 spowoduje odblokowanie wszystkich innych modułów przy użyciu polecenia cmdletGet-ChildItem -Recurse -Path C:\TSS\*.ps* | Unblock-File -Confirm:$false
.
Umowa licencyjna użytkownika końcowego (EULA)
Wybierz poniżej, aby wyświetlić POSTANOWIENIA LICENCYJNE DOTYCZĄCE OPROGRAMOWANIA FIRMY MICROSOFT.
Skrypty i narzędzia diagnostyczne firmy Microsoft
Niniejsze postanowienia licencyjne stanowią umowę między Licencjobiorcą a Microsoft Corporation (albo jednym z podmiotów stowarzyszonych Microsoft Corporation). JEŚLI LICENCJOBIORCA PRZESTRZEGA NINIEJSZYCH POSTANOWIEŃ LICENCYJNYCH, UZYSKUJE OPISANE PONIŻEJ PRAWA. KORZYSTANIE PRZEZ LICENCJOBIORCĘ Z OPROGRAMOWANIA OZNACZA, ŻE AKCEPTUJE ON NINIEJSZE POSTANOWIENIA.
PRAWA DO INSTALACJI I UŻYWANIA. Z zastrzeżeniem postanowień i ograniczeń określonych w niniejszej licencji firma Microsoft Corporation ("Microsoft") udziela Użytkownikowi ("Klientowi" lub "Tobie") nieuprzyłączalnej, nieprzydzielonej, w pełni płatnej licencji na korzystanie ze skryptu lub narzędzia udostępnianego na podstawie niniejszej licencji (oprogramowanie"), wyłącznie w celach 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). "Użyj" oznacza kopiowanie, instalowanie, wykonywanie, uzyskiwanie dostępu, wyświetlanie, uruchamianie lub w inny sposób interakcja z oprogramowaniem.
Użytkownik nie może sublicencjonowania oprogramowania ani korzystania z niego za pośrednictwem dystrybucji, dostępu do sieci lub w inny sposób. Firma Microsoft zastrzega sobie wszelkie inne prawa, które nie są wyraźnie przyznane w niniejszym dokumencie, zarówno przez implikację, estoppel, jak i w inny sposób. Użytkownik nie może odtworzyć oprogramowania, dekompilować ani dezasemblować oprogramowania, ani w inny sposób próbować uzyskać kod źródłowy oprogramowania, z wyjątkiem zakresu wymaganego przez postanowienia licencyjne innych firm, które regulują korzystanie z niektórych składników typu open source, które mogą być zawarte w oprogramowaniu, lub usunąć, zminimalizować, zablokować lub zmodyfikować wszelkie powiadomienia firmy Microsoft lub jej dostawców w oprogramowaniu. Ani Ty, ani Twoi przedstawiciele nie mogą korzystać z oprogramowania dostarczonego tutaj: (i) w sposób zabroniony przez prawo, regulacje, porządek rządowy lub dekret; ii) naruszać prawa innych osób; (iii) próba uzyskania nieautoryzowanego dostępu do dowolnej usługi, urządzenia, danych, konta lub sieci albo zakłócenia dostępu do usługi, urządzenia, konta lub sieci; (iv) do rozpowszechniania spamu lub złośliwego oprogramowania; (v) w sposób, który może zaszkodzić systemom IT firmy Microsoft lub utrudnić korzystanie z nich przez inną osobę; (vi) w jakiejkolwiek aplikacji lub sytuacji, w której korzystanie z Oprogramowania może prowadzić do śmierci lub poważnego uszkodzenia ciała jakiejkolwiek osoby, lub do szkód fizycznych lub środowiskowych; lub (vii) w celu pomocy, zachęcania lub umożliwienia każdemu wykonania któregokolwiek z powyższych czynności.
DANE. Klient posiada wszelkie prawa do danych, które mogą zdecydować się na udostępnienie firmie Microsoft za pośrednictwem oprogramowania. Więcej informacji na temat zbierania i używania danych można uzyskać w dokumentacji pomocy i zasadach zachowania poufności informacji na stronie https://aka.ms/privacy. Korzystanie z oprogramowania działa zgodnie z twoją zgodą na te praktyki.
UWAGI. Jeśli przekażesz opinię na temat oprogramowania do firmy Microsoft, udzielasz firmie Microsoft bez opłat prawa do korzystania, udostępniania i komercjalizowania opinii w dowolny sposób i w dowolnym celu. Nie przekażesz żadnych opinii, które podlegają licencji, która wymaga od firmy Microsoft licencji na jego oprogramowanie lub dokumentację osobom trzecim ze względu na to, że firma Microsoft w tym opinie dotyczące takiego oprogramowania lub dokumentacji.
OGRANICZENIA EKSPORTOWE. Klient musi przestrzegać wszystkich krajowych i międzynarodowych przepisów eksportowych mających zastosowanie do oprogramowania, które obejmują ograniczenia dotyczące miejsc docelowych, użytkowników końcowych i użytkowania końcowego. Aby uzyskać więcej informacji na temat ograniczeń eksportu, odwiedź stronę https://aka.ms/exporting.
REPREZENTACJE I GWARANCJE. Klient będzie przestrzegać wszystkich obowiązujących przepisów wynikających z niniejszej umowy, w tym do dostarczania i wykorzystywania wszystkich danych. Klient lub osoba określająca zgodę na niniejsze warunki w imieniu jednostki reprezentuje i gwarantuje, że (i) ma pełną władzę i uprawnienia do zawarcia i wykonania zobowiązań wynikających z niniejszej umowy, (ii) ma pełną moc i uprawnienia do powiązania jej podmiotów partnerskich lub organizacji z warunkami niniejszej umowy, a (iii) zabezpieczy zgodę drugiej strony przed dostarczeniem jakiegokolwiek kodu źródłowego w sposób, który podlegałby własności intelektualnej drugiej strony do wszelkich innych postanowień licencyjnych lub wymagają od drugiej strony dystrybucji kodu źródłowego do dowolnej z jego technologii.
ODRZUCENIE ODPOWIEDZIALNOŚCI Z TYTUŁU RĘKOJMI I GWARANCJI. OPROGRAMOWANIE JEST DOSTARCZANE "W STANIE TAKIM, W JAKIM JEST", BEZ GWARANCJI JAKIEGOKOLWIEK RODZAJU, WYRAŹNYCH LUB DOMNIEMANYCH, W TYM, ALE NIE TYLKO DO GWARANCJI PRZYDATNOŚCI HANDLOWEJ, PRZYDATNOŚCI DO OKREŚLONEGO CELU I NIEUWZGLĘDNIANIA. W ŻADNYM PRZYPADKU MICROSOFT LUB JEGO LICENCJODAWCY NIE PONOSI ODPOWIEDZIALNOŚCI ZA WSZELKIE BEZPOŚREDNIE, POŚREDNIE, PRZYPADKOWE, SPECJALNE, WZOROWE LUB WTÓRNE SZKODY (W TYM, ALE NIE TYLKO, ZAOPATRZENIE W TOWARY ZASTĘPCZE LUB USŁUGI; UTRATA UŻYCIA, DANYCH LUB ZYSKÓW; LUB PRZERWY W DZIAŁALNOŚCI BIZNESOWEJ) JEDNAK SPOWODOWANE I NA JAKIEJKOLWIEK TEORII ODPOWIEDZIALNOŚCI, NIEZALEŻNIE OD TEGO, CZY W UMOWIE, ŚCISŁEJ ODPOWIEDZIALNOŚCI LUB CZYNU NIEDOZWOLONEGO (W TYM ZANIEDBANIA LUB W INNY SPOSÓB) WYNIKAJĄCEGO Z KORZYSTANIA Z OPROGRAMOWANIA, NAWET JEŚLI POINFORMOWANO O MOŻLIWOŚCI WYSTĄPIENIA TAKICH SZKÓD.
OGRANICZENIE I WYŁĄCZENIE ODPOWIEDZIALNOŚCI ZA SZKODY. JEŚLI MASZ JAKIEKOLWIEK PODSTAWY DO ODZYSKANIA SZKÓD POMIMO POWYŻSZEGO ZASTRZEŻENIA DO 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; i (ii) roszczenia dotyczące naruszenia umowy, gwarancji, gwarancji lub warunku; ścisłej odpowiedzialności, zaniedbania lub innego czynu niedozwolonego; lub wszelkie inne roszczenia; w każdym przypadku w zakresie dozwolonym przez obowiązujące prawo. Ograniczenia te mają zastosowanie także wówczas, gdy możliwości pojawienia się takich szkód były znane lub powinny być znane Microsoft. Powyższe ograniczenie lub wyłączenie może nie dotyczyć Licencjobiorcy w przypadku, gdy na mocy przepisów prawa obowiązującego w stanie, prowincji lub kraju Licencjobiorcy nie jest dozwolone wyłączenie lub ograniczenie odpowiedzialności za szkody uboczne, wtórne itp.
WIĄZANIE ARBITRAŻU I ZWOLNIENIA Z AKCJI ZBIOROWYCH. Ta sekcja ma zastosowanie, jeśli mieszkasz (lub, jeśli firma, twoje główne miejsce działalności znajduje się w) Stany Zjednoczone. Jeśli Ty i Microsoft masz spór, ty i Firma Microsoft zgadzają się na próbę rozwiązania go nieformalnie przez 60 dni. Jeśli Ty i Microsoft nie możesz, Ty i Microsoft zgadzają się na powiązanie indywidualnego arbitrażu przed American Arbitration Association zgodnie z Federal Arbitration Act ("FAA"), a nie pozwać w sądzie przed sędzią lub ławą przysięgłych. Zamiast tego będzie decydował neutralny arbitr. Pozwy zbiorowych, arbitraże w całej klasie, działania prywatne prokuratora generalnego i wszelkie inne postępowania, w których ktoś działa w charakterze przedstawiciela, nie są dozwolone; ani nie łączy postępowania indywidualnego bez zgody wszystkich stron. Pełna umowa arbitrażowa zawiera więcej warunków i znajduje się pod adresem https://aka.ms/arb-agreement-4. Użytkownik i firma Microsoft zgadzają się na te warunki.
PRAWO I MIEJSCE. Jeśli jurysdykcja federalna USA istnieje, Ty i Microsoft wyrażasz zgodę na wyłączną jurysdykcję i miejsce postępowania w sądzie federalnym w King County, Waszyngton dla wszystkich sporów wysłuchanych w sądzie (z wyłączeniem arbitrażu). Jeśli nie, Użytkownik i Firma Microsoft wyrażają zgodę na wyłączną jurysdykcję i miejsce postępowania w Sądzie Najwyższym King County, Waszyngton dla wszystkich sporów wysłuchanych w sądzie (z wyłączeniem arbitrażu).
CAŁOŚĆ UMOWY. Niniejsza umowa oraz wszelkie postanowienia, które Microsoft może przedstawić w odniesieniu do uzupełnień, aktualizacji lub aplikacji innych firm, stanowią całość umowy dotyczącej oprogramowania.