Einführung in das TroubleShootingScript-Toolset (TSS)
Dieser Artikel führt das Toolset TroubleShootingScript (TSS) ein und bietet Antworten auf häufig gestellte Fragen.
Gilt für: Unterstützte Versionen von Windows Server und Windows Client
Das TSS-Toolset enthält PowerShell-basierte Tools und ein Framework für die Datensammlung und Diagnose. Das Toolset zielt darauf ab, die Datenerfassung zu vereinfachen und Fälle effizient und sicher aufzulösen.
Das Toolset enthält mehrere PowerShell-Skripts und ausführbare Dateien, die alle von Microsoft signiert sind. Basierend auf den ausgewählten Switches verwendet TSS ein oder mehrere Skripts und ausführbare Dateien, um die gewünschten Protokolle zu sammeln.
Sie können das Toolset als ZIP-Datei (TSS.zip) herunterladen.https://aka.ms/getTSS
Voraussetzungen
Hier sind einige Voraussetzungen für die ordnungsgemäße Ausführung des Toolsets:
Das TSS-Toolset muss in einem PowerShell-Fenster mit erhöhten Rechten von Konten mit Administratorrechten im lokalen System ausgeführt werden. Das Ausführen des TSS-Toolsets in der integrierten Skriptumgebung (ISE) von Windows PowerShell wird nicht unterstützt. Der Endbenutzer-Lizenzvertrag (EULA) muss akzeptiert werden. Sobald der EULA akzeptiert wurde, fordert das TSS-Toolset die EULA nicht erneut auf.
Die PowerShell-Skriptausführungsrichtlinie sollte auf Prozessebene festgelegt
RemoteSigned
werden, indem Sie das CmdletSet-ExecutionPolicy -scope Process -ExecutionPolicy RemoteSigned -Force
über eine PowerShell-Eingabeaufforderung mit erhöhten Rechten ausführen.Notiz
Änderungen auf Prozessebene wirken sich nur auf die aktuelle PowerShell-Sitzung aus.
So starten Sie das TSS-Toolset
Sie können TSS.ps1 je nach Szenario mit unterschiedlichen Schaltern starten. Das -Start
Verb ist das Standard- und optionale Verb und kann bei Bedarf durch ein ergänzendes Verb ersetzt werden. Die komplementaren -Start
Verben sind -StartAutoLogger
, -StartDiag
, -StartNoWait
, und -CollectLog
.
Verb | Beschreibung |
---|---|
-Start |
Das -Start Verb startet Ereignisablaufverfolgung für Windows (ETW)-Komponentenablaufverfolgungen oder Supporttools wie Windows Performance Recorder (WPR).Das [-Start] Verb ist optional, kann aber durch ergänzende -start Optionen ersetzt werden. |
-StartAutoLogger |
Verwenden Sie -StartAutoLogger zum Ersetzen -Start , um diese Protokolle zur Startzeit zu sammeln.Verwenden Sie sie in Kombination mit dem .\TSS.ps1 -Stop Cmdlet, um die Ablaufverfolgungen nach der Vervielfältigung des Problems zu beenden. |
-StartDiag |
Obwohl dieser Switch in der Gegenwart nicht viel verwendet, sollte er in mehreren Szenarien in Zukunft verwendet werden. Ab heute kann es mit anderen Argumenten kombiniert werden, z NET_DFSn . B. die Diagnose des DFSN-Namespaces. |
-StartNoWait |
Mit diesem Parameter können die Ablaufverfolgungen auch dann aktiv bleiben, wenn Sie sich abmelden. Verwenden Sie sie in Kombination mit dem .\TSS.ps1 -Stop Cmdlet, um die Ablaufverfolgungen nach der Vervielfältigung des Problems zu beenden. |
-CollectLog |
Dieser Parameter wird häufig zusammen mit dem Argument DND_SetupReport verwendet.Beispiel: .\TSS.ps1 -Collectlog DND_SetupReport |
Protokolle im Zusammenhang mit den Ablaufverfolgungen werden auch automatisch gesammelt, wenn Sie die Datensammlung beenden.
Syntax zur Verwendung des TSS-Toolsets
Parameter | Beschreibung |
---|---|
<placeholder> |
Die Zeichenfolge in eckigen Klammern (<>) für Platzhalter muss durch einen tatsächlichen Szenarionamen, eine Ablaufverfolgungskomponente, einen Befehl oder einen Wert ersetzt werden. |
[optional] |
Das Schlüsselwort oder der Wert in eckigen Klammern ([ ]) ist optional. Bedeutet beispielsweise, [module:int] dass das Modul und das Intervall optional sind. Der Standardwert wird verwendet, wenn [<xx>:<yy>] nicht angegeben wird. |
| | Dieser Parameter bedeutet 'OR' . Sie können eine der verfügbaren Optionen auswählen. |
: |
Das Trennzeichen zwischen zwei Werten. |
Cmdlet-Beispiele
PowerShell-Cmdlet | Beschreibung |
---|---|
.\TSS.ps1 -PerfMon [General:10] |
Dieser Parameter bedeutet PerfMon CounterSetName = General und Interval = 10 sekunden. Wenn [General:10] dieser Wert weggelassen wird, wird der Standardwert ausgelöst. Dies hat also -PerfMon die gleiche Wirkung wie -PerfMon General -PerfIntervalSec 10 . |
.\TSS.ps1 [-StopWaitTimeInSec <N>] |
Dieser Parameter bedeutet, dass das Argument -StopWaitTimeInSec optional ist, aber wenn es angegeben ist, ist ein Wert für <N> ="die Anzahl der Sekunden" obligatorisch. |
Ereignisablaufverfolgung für Windows (ETW)-Ablaufverfolgung
ETW-Ablaufverfolgung | PowerShell-Cmdlet | Beschreibung |
---|---|---|
Aktivieren Sie eine Szenarioablaufverfolgung. | .\TSS.ps1 -Scenario <ScenarioName> |
Die unterstützten Szenarionamen werden mithilfe des TSS.ps1 -ListSupportedScenarioTrace Cmdlets aufgelistet. |
Aktivieren Sie Komponentenablaufverfolgungen. | .\TSS.ps1 <-ComponentName> <-ComponentName> ... |
Die unterstützte <-componentName> Version wird mithilfe des TSS.ps1 -ListSupportedTrace Cmdlets aufgelistet. |
Starten Sie Ablaufverfolgungen mit dem Modus "Ohne Wartezeit". | .\TSS.ps1 -StartNoWait -Scenario <ScenarioName> .\TSS.ps1 -Stop |
Die Eingabeaufforderung wird sofort zurückgegeben, sodass Sie sich abmelden oder ein Cmdlet wie Shutdown ein Cmdlet verwenden können.Das Cmdlet .\TSS.ps1 -Stop beendet die Ablaufverfolgung. |
Notiz
Verwenden Sie das -ListETWProviders
Cmdlet, um alle Anbieter-GUIDs von Komponenten und/oder Szenarien aufzulisten. Zum Beispiel:
.\TSS.ps1 -ListETWProviders <component-/scenario-name>
Supporttools und -befehle
Starten Sie Supporttools oder -befehle (z. B. ProcMon, ProcDump, netsh, Leistungsmonitor (PerfMon), WPR oder Radar), um die Protokollsammlung mit zusätzlichen Tools für spezielle Erfassungen zu verbessern.
PowerShell-Cmdlet | Beschreibung |
---|---|
-Fiddler |
Sammeln einer Fiddler-Ablaufverfolgung. Es muss Fiddler installiert werden. Aktivieren Sie die Option "Datenverkehrsentschlüsselung", indem Sie "Extras>"-Optionen und auf der Registerkarte "HTTPS" die Option "HTTPS-Datenverkehr entschlüsseln" auswählen. |
-GPresult <Start |Stop |Both > |
Sammeln der GPresult Ausgabe in Phase start , stop , oder both . |
-Handle <Start |Stop |Both > |
SysInternals Handle.exe Ausgabe in Phase start , oder stop both . |
-LiveKD <Start |Stop |Both > |
Starten Sie SysInternals LiveKD -ml (Live Kernel Dump).<Start> : Das Dump wird am Anfang des Repros übernommen.<Stop> : Der Dump wird angehalten.<Both> : Das Dump wird sowohl am Anfang als auch am Ende genommen. |
-Netsh 1. -NetshOptions '<Option string>' 2. -NetshMaxSizeMB <Int> 3. -noPacket |
Starten Sie die Netzwerkpaketerfassung. 1. Geben Sie zusätzliche Optionen für Netsh . Beispiel: 'capturetype=both captureMultilayer=yes provider=Microsoft-Windows-PrimaryNetworkIcon provider={<GUID>}' .2. Die maximale Protokollgröße für Netsh megabytes (MB) (z. B -NetshMaxSizeMB 4096 . ). Der Standardwert ist 2048.3. Verhindern, dass Pakete erfasst Netsh werden (nur ETW-Ablaufverfolgungen in der ScenarioName Datei werden erfasst). |
-NetshScenario 1. -NetshOptions '<Option string>' 2. -NetshMaxSizeMB <Int> 3. -noPacket |
Starten Sie die Netsh Szenarioablaufverfolgung. Die unterstützte <ScenarioName> Version wird mithilfe des -ListSupportedNetshScenario Cmdlets aufgelistet.1. Geben Sie zusätzliche Optionen für Netsh . Beispiel: 'capturetype=both captureMultilayer=yes provider=Microsoft-Windows-PrimaryNetworkIcon provider={<GUID>}' .2. Die maximale Protokollgröße für Netsh in MB (z. B -NetshMaxSizeMB 4096 . ). Der Standardwert ist 2048.3. Verhindern, dass Pakete erfasst Netsh werden (nur ETW-Ablaufverfolgungen im Szenarionamen werden erfasst). |
-PerfMon <CounterSetName> [-PerfIntervalSec N] [-PerfMonMaxMB <N>] [-PerfMonCNF <[[hh:]mm:]ss>] 1. -PerfIntervalSec <Interval in sec> 2. -PerfMonMaxMB <N> 3. -PerfMonCNF <[[hh:]mm:]ss> |
Starten Sie Leistungsmonitor Protokolle. Die <CounterSetName> Liste kann mithilfe des -ListSupportedPerfCounter Cmdlets erfolgen.1. Legen Sie das Intervall für das PerfMon Protokoll fest (der Standardwert ist 10 Sekunden).2. Geben Sie einen Int-Wert für die maximale Perfmon Protokollgröße in MB an (der Standardwert ist 2048).3. Erstellen Sie eine neue Datei, wenn die angegebene Zeit verstrichen ist oder wenn die maximale Größe <PerfMonMaxMB> überschritten wird. |
-PerfMonLong <CounterSetName> [-PerfLongIntervalMin N] [-PerfMonMaxMB <N>] [-PerfMonCNF <[[hh:]mm:]ss>] 1. -PerfLongIntervalMin <Interval in min> |
Leistungsmonitor mit einem langen Intervall. 1. Legen Sie das Intervall für das PerfMonLong Protokoll fest (der Standardwert ist 10 Minuten). |
-PktMon |
Sammeln von Paketüberwachungsdaten (unter Windows Server 2019, Windows 10, Version 1809 und höher). PktMon:Drop sammelt nur verworfene Pakete. |
-PoolMon <Start |Stop |Both > |
Sammeln sie PoolMon auf start , stop , oder both . |
-ProcDump <PID[] |ProcessName.exe[] |ServiceName[] >1. -ProcDumpOption <Start |Stop |Both >-ProcDumpInterval <N>:<Interval in sec> 2. -ProcDumpInterval <N>:<Interval in sec> 3. -ProcDumpAppCrash |
Erfassen Von Benutzerabbildern eines einzelnen Elements oder einer durch Trennzeichen getrennten Liste von Elementen mithilfe von SysInternals ProcDump.exe. Standardmäßig wird das Dump am Anfang des Repros übernommen und beendet. Geben Sie ProcessName (s) mit der .exe Erweiterung ein.1. Start : Das Dump wird zu Beginn des Repros übernommen.Stop : Der Dump wird angehalten.Both (Standardeinstellung): Das Dump wird sowohl beim Start als auch beim Beenden übernommen.2. Verwenden Sie diese Option, wenn das Dump wiederholt erfasst werden muss. N : Die Anzahl der DumpsInt : das Intervall in SekundenDer Standardwert ist 3:10. 3. Dieser Schalter aktiviert ProcDump -ma -e , der ein vollständiges Dump schreibt, wenn der Prozess auf eine unbehandelte Ausnahme stößt. |
-ProcMon 1. -ProcmonAltitude <N> 2. -ProcmonPath <folder path to Procmon.exe> 3. -ProcmonFilter <filter-file.pmc> |
Starten Sie sysInternals Procmon.exe. 1. Geben Sie einen Zeichenfolgenwert an ProcmonAltitude (der Standardwert ist 385200). Wird verwendet fltmc instances , um die Höhe des Filtertreibers anzuzeigen. Verwenden Sie eine niedrigere Zahl als den verdächtigen spezifischen Treiber. Wert 45100 zeigt Ihnen praktisch alles.2. Geben Sie einen Pfad zu Procmon.exe an (standardmäßig verwendet TSS das integrierte Procmon). 3. Geben Sie eine Konfigurationsdatei für Procmon an (z . B. ProcmonConfiguration.pmc), die sich im Ordner \config befindet. |
-PSR |
Start Problems Steps Recorder. |
-Radar <PID[] |ProcessName[] |ServiceName[] > |
Sammeln Sie die Leckdiagnoseinformationen (rdrleakdiag.exe). Beispiel: -Radar AppIDSvc . |
-RASdiag |
Ablaufverfolgung sammeln. Die Netsh Ras-Diagnosesatzablaufverfolgung ist aktiviert. |
-SDP <SpecialityName[]> 1. -SkipSDPList "<xxx>","<yyy>" 2. <SpecialityName> |
Sammeln Sie Support Diagnostic Package (SDP) für die angegebene Spezialität. Verwenden Sie das Cmdlet, um die vollständige Liste der SpecialityNames und SkipSDPList des Cmdlets .\tss -help zu verwenden.Überspringen Sie die durch Trennzeichen getrennte Liste der SDP-Modulnamen, die in Ihrer Umgebung hängen, während Sie den SDP-Bericht ausführen. |
-SysMon |
Sammeln Sie SysInternals System Monitor (SysMon)-Protokolle (sysmonConfig.xml standardmäßig im Konfigurationsordner). |
-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>' |
Start Time Travel Debugging (TTD) (TTT/iDNA) mit dem Standardmodus -Full . Geben Sie die ProcessName (n) mit der .exe Erweiterung, ein einzelnes Element (PID/Name) oder eine durch Trennzeichen getrennte Liste von Elementen ein.Hinweis: Vor Windows 10, Version 1703, ist das TSS_TTD.zip-Paket erforderlich. 1. Geben Sie den Ordnerpfad an, der tttracer.exe (PartnerTTD) enthält. Normalerweise ist diese Option nur erforderlich, wenn Sie einen bestimmten Pfad erzwingen möchten. 2. Full = -dumpfull (=standard)Ring = RingpuffermodusonLaunch = -onLaunch (erfordert TSS_TTD)3. Die maximale Protokolldateigröße. Der Vorgang hängt von -TTDMode . Full stoppt, wenn die maximale Größe erreicht ist, und Ring behält die maximale Größe im Ringpuffer bei.4. Verwenden Sie diese Option, um zusätzliche Optionen für TTD (TTT/iDNA) hinzuzufügen. |
-Video |
Starten Sie die Videoaufnahme (erfordert die Installation von .NET 3.5). |
-WFPdiag |
Sammeln Sie Ablaufverfolgungen mit dem netsh Wfp capture Befehl. |
-WireShark |
Starten Sie WireShark. Die folgenden Parameter können über die Datei tss_config.cfg konfiguriert werden. 1. WS_IF : verwendet für -i . Geben Sie die Schnittstellennummer an (z. B _WS_IF=1 . ).2. WS_Filter : verwendet für -f . Filter für die Schnittstelle (z. B _WS_Filter="port 443" . ).3. WS_Snaplen : verwendet für -s . Beschränken Sie die Datenmenge für jeden Frame. Dieser Parameter hat eine bessere Leistung und ist hilfreich für Situationen mit hoher Auslastung (z. B _WS_Snaplen=128 . ).4. WS_TraceBufferSizeInMB : wird für -b FileSize (multipliziert mit 1024) verwendet. Wechseln Sie nach der Anzahl von Megabytes zur nächsten Datei. (z. B. _WS_TraceBufferSizeInMB=512 , default=512 MB)5. WS_PurgeNrFilesToKeep : verwendet für -b files . Ersetzen Sie nach der Anzahl der Dateien. (Beispiel: _WS_PurgeNrFilesToKeep=20 )6. : alle anderen Optionen für -i (z. B_WS_Options="-P" . WS_Options ).Beispiel: Um WireShark an den Schnittstellen 15 und 11 zu sammeln, geben Sie die Eingabe ein, wenn TSS zur Eingabe einer Schnittstellennummer auffordert: 15 -i 11 .Wireshark wird standardmäßig gestartet 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>' |
Starten Sie eine WPR-Profilablaufverfolgung. <WPRprofile> ist einer von General VSOD_Leak |CPU VSOD_CPU |||Device SQL ||Xaml Wait ||Graphic |Storage |Registry Network Memory ||BootGeneral |.1. Generieren von Symboldateien (PDB-Dateien) überspringen 2. Geben Sie Optionen für WPR.exe an. Beispiel: -WPROptions '-onoffproblemdescription "test description"' .Beispiel 1: .\TSS.ps1 -StartAutoLogger -WPR BootGeneral -WPROptions '-addboot CPU' erfasst WPR-Startablaufverfolgungen mit den General Und CPU Profilen.Beispiel 2: .\TSS.ps1 -WPR General -WPROptions '-Start CPU -start Network -start Minifilter' kombiniert Profile (General , CPU , Network und Minifilter ). |
-Xperf <Profile> 1. -XperfMaxFileMB <Size> 2. -XperfTag <Pool Tag> 3. -XperfPIDs <PID> 4. -XperfOptions <Option string> |
Starten Sie Xperf. <Profile> ist einer von General SBSLboot ||Disk Registry ||SBSL PoolNPP ||SMB2 |Pool |Network Memory Leak ||CPU |.1. Geben Sie die maximale Protokollgröße in MB an (der Standardwert ist 2048 MB). Der Standardwert für SBSL*-Szenarien ist 16384 (identisch für ADS_/NET_SBSL). 2. Geben Sie an PoolTag , dass protokolliert werden soll. Dieser Parameter wird mit dem Pool Oder PoolNPP Profil (z. B -Xperf Pool -XperfTag TcpE+AleE+AfdE+AfdX . ) verwendet.3. Geben Sie ProcessID an. Dieser Parameter wird mit dem Leak Profil verwendet (z. B -Xperf Leak -XperfPIDs <PID> . ).4. Geben Sie weitere Optionszeichenfolgen für Xperf . |
-xray |
Starten Sie xray, um ein System für bekannte Probleme zu diagnostizieren. |
Im folgenden Beispiel wird veranschaulicht, wie mehrere Supporttools (Befehle) während derselben Ablaufverfolgung aktiviert werden.
.\TSS.ps1 -WPR <WPRprofile> -Procmon -Netsh|-NetshScenario <NetshScenario> -PerfMon <CounterSetName> -ProcDump <PID> -PktMon -SysMon -SDP <specialty> -xray -PSR -Video -TTD <PID[]|ProcessName[]|ServiceName[]>
Parameter in TSS-Optionen
Definiert bestimmte Parameter innerhalb der TSS-Optionen zum Steuern, Verbessern oder Vereinfachen der Datensammlung.
Parameter | Beschreibung |
---|---|
-AcceptEula |
Fragen Sie nicht zuerst. run to accept the Disclaimer (useful for the -RemoteRun execution). |
-AddDescription <description> |
Fügen Sie eine kurze Beschreibung des Repro-Problems hinzu. Der Name der resultierenden ZIP-Datei enthält eine solche Beschreibung. |
-Assist |
Barrierefreiheitsmodus. |
-BasicLog |
Sammeln Sie das vollständige Basisprotokoll (das Minigrundprotokoll wird immer standardmäßig erfasst). |
-CollectComponentLog |
Verwendung mit -Scenario . Standardmäßig werden Funktionen zum Sammeln von Komponenten nicht in der -Scenario Ablaufverfolgung aufgerufen. Mit diesem Schalter kann die Komponente Funktionen sammeln, die aufgerufen werden. |
-CollectDump |
Erfassen Sie das Systemabbild (memory.dmp), nachdem alle Ablaufverfolgungen beendet wurden. -CollectDump kann mit -Start und -Stop verwendet werden. |
-CollectEventLog <Eventlog[]> |
Erfassen Sie angegebene Ereignisprotokolle. Das Sternchen (*) platzhalterzeichen kann für den Namen des Ereignisprotokolls verwendet werden. Beispiel: -CollectEventLog Security,*Cred* Sammeln Sie Sicherheit und alle Ereignisprotokolle, die wie folgt 'Microsoft-Windows-CertificateServicesClient-CredentialRoaming/Operational' übereinstimmen*Cred* . |
-CommonTask <<POD> |Full |Mini > |
Führen Sie allgemeine Aufgaben vor dem Starten und nach dem Beenden der Ablaufverfolgung aus.<POD> : Derzeit ist nur "NET" verfügbar. Sammeln Sie zusätzliche Informationen vor dem Starten und nach dem Beenden der Ablaufverfolgung.Full : Das vollständige Basisprotokoll wird gesammelt, nachdem die Ablaufverfolgung beendet wurde.Mini : Das Minigrundprotokoll wird nach dem Beenden der Ablaufverfolgung erfasst. |
-Crash |
Auslösen eines Systemabsturzes mit NotMyFault dem Stopp der Vorführung oder nach dem Signal aller Ereignisse bei Verwendung mit -WaitEvent .Vorsicht: Diese Option erzwingt ein Speicherabbild (das System wird neu gestartet), sodass geöffnete Dateien nicht gespeichert werden. |
-CustomETL |
Fügen Sie benutzerdefinierte ETL-Ablaufverfolgungsanbieter hinzu. Beispiel: .\TSS.ps1 -WIN_CustomETL -CustomETL '{<GUID>}','Microsoft-Windows-PrimaryNetworkIcon' (eine kommagetrennte Liste mit ein- und/oder 'Provider-Name' aus).'{GUID}' |
-DebugMode |
Führen Sie den Debugmodus für einen Entwickler aus. |
-VerboseMode |
Zeigen Sie ausführlichere oder informationale Ausgabe beim Verarbeiten von TSS-Funktionen an. |
-Discard |
Wird verwendet, um ein Dataset in Phase -Stop zu verwerfen. *Stop- oder *Collect- Funktionen werden nicht ausgeführt. xray und psSDP wird übersprungen. |
-EnableCOMDebug |
Modul zum Aktivieren des COM-Debugmodus. |
-ETLOptions <circular |newfile >:<ETLMaxSizeMB >::<ETLNumberToKeep ><ETLFileMax > |
Legen Sie an Befehle übergebene Optionen fest logman . Der Standardwert für circular ETLMaxSizeMB 1024 und der Standardwert für newfile ETLMaxSizeMB 512.-StartAutologger -ETLOptions circular:<ETLMaxSize>:<ETLNumberToKeep>:<ETLFileMax> unterstützt nur , aber ETLNumberToKeep wird nicht erwartet ausgeführt.Beispiel.1: -ETLOptions newfile:2048:5 Führen Sie Protokolle mit einer Größe von 2048 MB aus newfile . Behalten Sie nur die letzten fünf *.etl Dateien bei. Die Standardeinstellung für den Zirkelmodus lautet circular:1024 , und für den neuen Dateimodus ist newfile:512:10 .Beispiel 2: -StartAutologger -ETLOptions circular:4096 Autologger wird nicht gehorchen :<ETLNumberToKeep> und akzeptiert nur moduskreisförmig.Beispiel 3: -StartAutologger -ETLOptions circular:4096:10:3 Autologger wird nicht gehorchen :<ETLNumberToKeep> und akzeptiert nur moduskreisförmig und "3" als Die Anzahl der autologger Generationen. |
-ETWlevel <Info |Warning |Error > |
Legen Sie die Ereignisablaufverfolgungsebene fest. Der Standardwert ist 0xFF. |
-EvtDaysBack <N> |
Konvertieren Sie Ereignisprotokolle nur für die letzten N Tage. Die Standardeinstellung beträgt 30 Tage. Sie gilt auch für den SDP-Bericht. Hinweis: Sicherheitsereignisprotokolle werden übersprungen. |
-ExternalScript <path to external PS file> |
Führen Sie das angegebene PowerShell-Skript aus, bevor Sie die Ablaufverfolgung starten. |
-LogFolderPath <Drive:\path to log folder> |
Verwenden Sie einen anderen Protokollordnerpfad für die resultierenden Ausgabedaten anstelle des Standardspeicherorts (C:\MS_DATA). Es ist nützlich, wenn Laufwerk C: wenig freien Speicherplatz hat. |
-MaxEvents <N> |
Als Argument für '-WaitEvent Evt:..' , der Parameter untersucht die letzte N-Anzahl von Ereignissen mit derselben Ereignis-ID (der Standardwert ist 1). |
-Mini |
Sammeln Sie nur minimale Daten. ÜberspringennoPSR , , noSDP , noVideo , noXray , und noBasicLog noZip . |
-Mode <Basic |Medium |Advanced |Full |Verbose |VerboseEx |Hang |Restart | Swarm |Kube |GetFarmdata |Permission |traceMS > |
Ausführen von Skripts in Basic , Medium , Advanced , , Full oder Verbose(Ex) Modus für die Datensammlung. Restart startet den zugehörigen Dienst neu. |
-RemoteRun |
Wird verwendet, wenn TSS auf einem Remotehost ausgeführt wird, z. B. über PsExec, in der seriellen Azure-Konsole oder mit PowerShell-Remoting. Dieser Parameter hemmt PSR, Videoaufzeichnung, Starten von TssClock und Öffnen von Explorer mit enden Ergebnissen. Berücksichtigen Sie -AcceptEula in einem solchen Fall auch . |
-StartNoWait |
Warten Sie nicht, und die Eingabeaufforderung wird sofort zurückgegeben. Dieser Parameter ist nützlich für das Szenario, in dem sich ein Benutzer abmelden muss. |
-WaitEvent |
Überwachen des angegebenen Ereignisses oder Stopptriggers; Wenn es signalisiert ist, werden Ablaufverfolgungen automatisch beendet. Es gibt eine Vielzahl von Optionen zum Auslösen eines automatischen Stopps. Führen Sie die Ausführung .\TSS.ps1 -Find Monitoring aus, um die Verwendung anzuzeigen. |
-Update 1. -UpdMode <Online |Lite > |
Aktualisieren Sie das TSS-Paket. Es kann zusammen mit -UpdMode Online|Lite .Online ist der Standardwert und Lite die Upd Lite-Version. |
-Help 1. Common 2. ALL 3. Monitoring 4. Config 5. Keyword |
Stellen Sie Hilfenachrichten in verschiedenen Szenarien bereit. 1. Allgemeine allgemeine Hilfenachricht. 2. Alle verfügbaren Optionen. 3. Hilfemeldungen zur Überwachung und Remotefunktionen anzeigen. 4. Hilfe zu allen Konfigurationsparametern. 5. Sie können ein beliebiges Schlüsselwort eingeben, und es werden die Hilfeinformationen zu diesem Schlüsselwort angezeigt. |
-Status |
Zeigen Sie ggf. den Status der ausgeführten Ablaufverfolgung an. |
Enthaltene Hilfsskripts und Tools
Hilfsskript und -tool | Beschreibung |
---|---|
\scripts\tss_EventCreate.ps1 |
Erstellen Sie einen Ereignisprotokolleintrag in Ereignisprotokolldateien mit Ereignis-IDs. |
\scripts\tss_SMB_Fix-SmbBindings.ps1 |
Nützlich zum Beheben beschädigter SMB-Bindungen (LanmanServer, LanmanWorkstation oder NetBT). Siehe auch -Collect NET_SMBsrvBinding . |
\BINx64\kdbgctrl.exe |
Verwenden Sie den Switch -sd <dump type> , um den Kernelabbildtyp Full|Kernel festzulegen, kdbgctrl -sd Full z. B. . |
\BINx64\NTttcp.exe |
Leistungstests. Weitere Informationen finden Sie unter Testen des VM-Netzwerkdurchsatzes mithilfe von NTTTCP. |
\BINx64\latte.exe |
Latenztests. Weitere Informationen finden Sie unter Testen der Netzwerklatenz zwischen Azure-VMs. |
\BINx64\notmyfaultc.exe |
Erzwingen Sie ein Speicherabbild. Siehe NotMyFault v4.21 , wenn die TSS-Befehlszeile enthält -Crash . |
Behandeln unerwarteter PowerShell-Fehler
Führen Sie dieses Cmdlet nach einem Fehler aus:
.\TSS.ps1 -Stop -noBasiclog -noXray
Schließen Sie das geöffnete PowerShell-Fenster mit erhöhten Rechten, und starten Sie ein neues PowerShell-Fenster mit erhöhten Rechten.
Zulassen, dass PowerShell-Skripts auf Ihrem System mit der richtigen
ExecutionPolicy
Ausgeführt werden.Wenn ein Fehler auftritt, der angibt, dass das ausgeführte Skript deaktiviert ist, probieren Sie die folgenden Methoden aus.
Methode 1
Führen Sie das folgende Cmdlet aus:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -force -Scope Process
Überprüfen Sie die Einstellungen mit dem
Get-ExecutionPolicy -List
Cmdlet, dass die Ausführung dieses Skripts nichtExecutionPolicy
mit höherer Rangfolge blockiert wird.Führen Sie das Cmdlet
.\TSS.ps1 <Desired Parameters>
noch einmal aus.
Methode 2 (Alternative)
Wenn Skripts durch MachinePolicy
blockiert werden, führen Sie die folgenden Cmdlets in einem PowerShell-Fenster mit erhöhten Rechten aus:
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
Methode 3 (Alternative)
Wenn Skripts durch UserPolicy
blockiert werden, führen Sie die folgenden Cmdlets in einem PowerShell-Fenster mit erhöhten Rechten aus:
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
Notiz
Methode 2 ist nur eine Problemumgehung für die Richtlinie MachinePolicy - RemoteSigned
. Wenn sie auch sehen UserPolicy - RemoteSigned
, bitten Sie den Domänenadministrator um eine temporäre Gruppenrichtlinienobjekt(GPO)-Ausnahme.
In seltenen Situationen können Sie das -ExecutionPolicy Bypass
Cmdlet ausprobieren.
Wenn Ihre Organisation den GPO PowerShell-Eingeschränkten Sprachmodus (System.Management.Automation.EngineIntrinsics.SessionState.LanguageMode -ne 'FullLanguage'
) erzwingt, bitten Sie den Domänenadministrator um eine temporäre GPO-Ausnahme.
Häufig gestellte Fragen (FAQs)
F1: Ändert das TSS-Skript Setup oder Konfiguration meines Systems?
A1: Nein, aber eine Registrierungseinstellung ist erforderlich, um die Debugprotokollierung in einigen Szenarien zu aktivieren. Das Skript legt den erforderlichen Schlüssel am Anfang der Datensammlung fest und setzt den Schlüssel am Ende der Datensammlung auf den Standardwert zurück. Es kann auch einige Caches (z. B. den ARP-Cache oder den Namensauflösungscache) am Anfang der Datensammlung löschen, um das Problem aus den Protokollen zu beobachten.
F2: Setzt das TSS-Toolset eine zusätzliche Last auf den Server?
A2: Einige Protokollierungen (z. B. Netzwerkerfassung, ETW-Ablaufverfolgungsauflistung usw.), die vom TSS-Toolset gestartet werden, führen möglicherweise zu einer geringfügigen Belastung des Systems. Die Last liegt in der Regel auf ignorierbaren Ebenen. Wenden Sie sich an Ihren Supportmitarbeiter, wenn nach dem Starten des TSS-Toolsets eine hohe CPU-, Arbeitsspeicher- oder Datenträgerauslastung angezeigt wird.
F3: Warum können wir das Problem nicht reproduzieren, wenn das TSS-Toolset ausgeführt wird?
A3: Das TSS-Toolset kann alle zwischengespeicherten Informationen am Anfang löschen. Außerdem wird die Netzwerkaufnahme in einem promiscuous Modus gestartet, wodurch das Standardverhalten der Netzwerkschnittstellenkarte (Network Interface Card, NIC) geändert wird. Diese Änderungen können sich auf das Problem auswirken, und die Probleme werden möglicherweise nicht mehr angezeigt. Insbesondere bei bestimmten Zeitproblemen verschwinden Probleme aufgrund der Datensammlung des TSS-Toolsets. Die Datenerfassung beginnt mit der Protokollierung, die sich indirekt auf das Problem auswirken und die Situation ändern kann.
F4: Warum reagiert das TSS-Toolset nicht lange?
A4: In einigen Fällen reagieren die integrierten Befehle des Betriebssystems, die vom TSS-Toolset ausgeführt werden, möglicherweise nicht oder nehmen lange Zeit in Anspruch. Wenden Sie sich an Ihren Supportmitarbeiter, wenn sie dieses Problem haben.
F5: Muss ich mich um speicherplatz oder etwas anderes kümmern, wenn ich das TSS-Toolset lange ausführen?
A5: Die gesamte TSS-Ablaufverfolgung ist so konfiguriert, dass sie mit Ringpuffern ausgeführt wird, sodass Sie das Toolset bei Bedarf lange ausführen können. Das TSS-Toolset berechnet außerdem speicherplatz am Anfang der Datensammlung und kann beendet werden, wenn nicht genügend Speicherplatz vorhanden ist. Wenn nach dem Starten des TSS-Toolsets eine hohe Datenträgerauslastung angezeigt wird oder andere Bedenken hinsichtlich der Datenträgernutzung des Toolsets bestehen, wenden Sie sich an Ihren Supportmitarbeiter.
F6: Was sollte ich tun, wenn ich beim Ausführen des Skripts .\TSS.ps1 die folgende Sicherheitswarnung erhalte?
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: In seltenen Situationen erhalten Sie möglicherweise diese Sicherheitswarnung. Sie können die Blockierung des Skripts mithilfe des Cmdlets
PS C:\> Unblock-File -Path C:\TSS\TSS.ps1
aufheben. Dieses Skript entsperrt alle anderen Module mithilfe des CmdletsGet-ChildItem -Recurse -Path C:\TSS\*.ps* | Unblock-File -Confirm:$false
.
Lizenzbedingungen
Wählen Sie unten aus, um DIE MICROSOFT-SOFTWARELIZENZBEDINGUNGEN anzuzeigen.
Microsoft-Diagnoseskripts und -Dienstprogramme
Die vorliegenden Lizenzbedingungen stellen eine Vereinbarung zwischen Ihnen und Microsoft Corporation bzw. einem verbundenen Unternehmen dar. SOLANGE SIE DIESE LIZENZBEDINGUNGEN EINHALTEN, STEHEN IHNEN DIE NACHFOLGEND AUFGEFÜHRTEN RECHTE ZU. DURCH DIE VERWENDUNG DER SOFTWARE AKZEPTIEREN SIE DIESE BEDINGUNGEN.
INSTALLATIONS- UND NUTZUNGSRECHTE. Vorbehaltlich der in dieser Lizenz festgelegten Bedingungen und Einschränkungen gewährt Ihnen Die Microsoft Corporation ("Microsoft") eine nicht exklusive, nicht zuweisungsfähige, vollständig bezahlte Lizenz, um das unter dieser Lizenz (die "Software") bereitgestellte Skript oder Hilfsprogramm zu verwenden und zu reproduzieren (die "Software"), ausschließlich für interne Geschäftszwecke des Kunden, um Microsoft bei der Behandlung von Problemen mit einem oder mehreren Microsoft-Produkten zu unterstützen, sofern diese Lizenz für die Software keine Rechte an anderen Microsoft-Technologien (z. B. Produkte oder Dienste) enthält. "Verwendung" bedeutet, dass sie die Software kopieren, installieren, ausführen, darauf zugreifen, anzeigen, ausführen oder anderweitig mit der Software interagieren.
Sie dürfen die Software nicht unterlizenzieren oder sie über Verteilung, Netzwerkzugriff oder anderweitige Nutzung dieser Software nicht unterlizenzieren. Microsoft behält sich alle anderen Rechte vor, die hierin nicht ausdrücklich gewährt werden, sei es imPlikations-, Estoppel- oder anderweitigen. Sie dürfen den Quellcode für die Software nicht rückgängig machen, dekompilieren oder dekompilieren oder anderweitig versuchen, den Quellcode für die Software abzuleiten, es sei denn, die Lizenzbedingungen von Drittanbietern, die die Verwendung bestimmter Open Source-Komponenten regeln, die in der Software enthalten sein können, oder entfernen, minimieren, blockieren oder ändern alle Hinweise von Microsoft oder seinen Lieferanten in der Software. Weder Sie noch Ihre Vertreter dürfen die hier bereitgestellte Software verwenden: (i) in einer Weise, die gesetzlich, verordnungs-, regierungs- oder dekret verboten ist; ii) gegen die Rechte anderer personen zu verstoßen; iii) zu versuchen, unbefugten Zugriff auf Dienste, Geräte, Daten, Konten oder Netzwerke zu erlangen oder zu unterbrechen; iv) zur Verteilung von Spam oder Schadsoftware; (v) in einer Weise, die die IT-Systeme von Microsoft beschädigen oder die Nutzung anderer Personen beeinträchtigen könnte; vi) in jeder Anwendung oder Situation, in der die Nutzung der Software zu einem Tod oder einer schweren Körperverletzung einer Person oder zu körperlichen oder umweltbedingten Schäden führen könnte; oder (vii) um jemanden zu unterstützen, zu ermutigen oder zu ermöglichen, eine der oben genannten Aktionen zu erledigen.
DATEN. Der Kunde besitzt alle Rechte an Daten, die er über die Nutzung der Software für Microsoft freigeben kann. Weitere Informationen zur Datenerfassung und -verwendung finden Sie in der Hilfedokumentation und in den Datenschutzbestimmungen unter https://aka.ms/privacy. Ihre Nutzung der Software funktioniert als Ihre Zustimmung zu diesen Praktiken.
FEEDBACK. Wenn Sie Microsoft Feedback zu der Software geben, gewähren Sie Microsoft das Recht, Ihr Feedback auf irgendeine Weise und für jeden Zweck zu verwenden, freizugeben und zu kommerziellen Zwecken zu nutzen, freizugeben und zu kommerziellen Zwecken. Sie geben kein Feedback an, das einer Lizenz unterliegt, für die Microsoft ihre Software oder Dokumentation an Dritte lizenzieren muss, einschließlich Ihres Feedbacks in diese Software oder Dokumentation.
EXPORTBESCHRÄNKUNGEN. Der Kunde muss alle nationalen und internationalen Exportgesetze und -vorschriften einhalten, die für die Software gelten, einschließlich Einschränkungen für Ziele, Endbenutzer und Endnutzung. Weitere Informationen zu Exporteinschränkungen finden Sie unter https://aka.ms/exporting.
VERTRETUNGEN UND GARANTIEN. Der Kunde hält alle anwendbaren Gesetze gemäß diesem Vertrag ein, einschließlich der Lieferung und Nutzung aller Daten. Der Kunde oder ein Entwurfsempfänger, der diesen Bedingungen im Namen einer Entität zugestimmt hat, stellt dar und garantiert, dass er (i) die volle Befugnis und Autorität hat, seine Verpflichtungen nach diesem Vertrag einzugehen und auszuführen, (ii) hat volle Befugnis und Autorität, seine Verbundenen oder Organisationen an die Bedingungen dieses Vertrags zu binden, und (iii) sichert die Berechtigung der anderen Partei, bevor sie Quellcode in einer Weise bereitstellt, die gegenstandsmäßig wäre. das geistige Eigentum der anderen Partei an alle anderen Lizenzbedingungen oder verlangen, dass die andere Partei Quellcode an eine seiner Technologien verteilen kann.
GEWÄHRLEISTUNGSAUSSCHLUSS. DIE SOFTWARE WIRD OHNE JEGLICHE GARANTIE JEGLICHER ART, AUSDRÜCKLICH ODER IMPLIZIERT BEREITGESTELLT, EINSCHLIEßLICH, ABER NICHT BESCHRÄNKT AUF DIE GEWÄHRLEISTUNG DER HANDELSÜBLICHKEIT, EIGNUNG FÜR EINEN BESTIMMTEN ZWECK UND NICHTVERLETZUNG. IN KEINEM FALL HAFTET MICROSOFT ODER SEINE LIZENZGEBER FÜR DIREKTE, INDIREKTE, ZUFÄLLIGE, BESONDERE, EXEMPLARISCHE ODER FOLGESCHÄDEN (EINSCHLIEßLICH, ABER NICHT BESCHRÄNKT AUF DIE BESCHAFFUNG VON ERSATZGÜTERN ODER DIENSTLEISTUNGEN; VERLUST DER NUTZUNG, DATEN ODER GEWINNE; ODER BETRIEBSUNTERBRECHUNGEN) JEDOCH VERURSACHT UND AUF JEGLICHE HAFTUNGSTHEORIE, SEI ES IN VERTRAG, STRENGER HAFTUNG ODER DELIKT (EINSCHLIEßLICH FAHRLÄSSIGKEIT ODER ANDERWEITIG), DIE AUS DER NUTZUNG DER SOFTWARE ENTSTEHEN, AUCH WENN DIE MÖGLICHKEIT EINES SOLCHEN SCHADENS MITGETEILT WIRD.
BESCHRÄNKUNGEN UND AUSSCHLUSS VON SCHADENSERSATZ. WENN SIE TROTZ DES VORSTEHENDEN GARANTIEAUSSCHLUSSES EINE GRUNDLAGE FÜR DIE WIEDERHERSTELLUNG VON SCHÄDEN HABEN, KÖNNEN SIE VON MICROSOFT UND SEINEN LIEFERANTEN NUR DIREKTE SCHÄDEN BIS ZU DEN USA WIEDERHERSTELLEN. 00. SIE KÖNNEN KEINEN SCHADENSERSATZ FÜR ANDERE SCHÄDEN GELTEND MACHEN, EINSCHLIESSLICH FOLGESCHÄDEN, SCHÄDEN AUS ENTGANGENEM GEWINN SOWIE SPEZIELLE, INDIREKTE ODER ZUFÄLLIG ENTSTANDENE SCHÄDEN. Diese Einschränkung bezieht sich auf (i) alles, was mit der Software, Diensten, Inhalten (einschließlich Code) auf Internetwebsites von Drittanbietern oder Anwendungen von Drittanbietern in Zusammenhang steht; und (ii) Ansprüche auf Vertragsverletzung, Garantie, Garantie oder Bedingung; strikte Haftung, Fahrlässigkeit oder sonstiges Delikt; oder andere Ansprüche; in jedem Fall in dem durch das anwendbare Recht zulässigen Umfang. Sie gilt selbst dann, wenn Microsoft von der Möglichkeit der Schäden gewusst hat oder hätte wissen müssen. Die oben genannten Einschränkungs- oder Ausschlussklauseln sind für Sie möglicherweise nicht gültig, da Ihr Bundesstaat, Ihre Provinz oder Ihr Land den Ausschluss oder die Beschränkung von Entschädigungen für zufällig entstandene Schäden, Folgeschäden oder andere Schäden nicht zulässt.
VERBINDLICHE SCHIEDSKLAUSEL UND VERZICHT AUF SAMMELKLAGEN. Dieser Abschnitt gilt, wenn Sie in der USA leben (oder, wenn ein Unternehmen, Ihr Hauptgeschäftsort ist). Besteht zwischen Ihnen und Microsoft eine Streitigkeit, stimmen Sie und Microsoft zu, sich für einen Zeitraum von 60 Tagen um eine informelle Beilegung zu bemühen. Sollte Ihnen und Microsoft dies nicht gelingen, erklären Sie und Microsoft sich mit der verbindlichen als Einzelverfahren durchgeführten Schlichtung vor der US-amerikanischen Schiedsinstitution, der American Arbitration Association, gemäß der Schiedsordnung Federal Arbitration Act („FAA“) einverstanden, und stimmen zu, nicht vor einem Gericht oder einer Jury zu klagen. In diesem Fall wird stattdessen ein neutraler Mediator entscheiden. Sammelklagen, Schlichtungen im Rahmen von Sammelverfahren, allgemeine Verfahren mit Wahlverteidigern und sonstige Gerichtsverfahren, in denen eine Person in Vertretung eines Antragsstellers handelt, sind nicht zulässig; dies gilt auch für Einzelverfahren ohne Zustimmung aller Parteien. Die vollständige Schiedsvereinbarung, die weitere Bedingungen enthält, finden Sie unter https://aka.ms/arb-agreement-4. Sie und Microsoft erklären sich mit diesen Bedingungen einverstanden.
RECHT UND GERICHTSSTAND. Wenn ein US-Bundesgerichtshof vorhanden ist, stimmen Sie und Microsoft zu, dass alle vor Gericht geführten Rechtsstreitigkeiten (ausgenommen Schlichtungen) ausschließlich vor dem Bundesgericht in King County, Washington, USA, ausgetragen werden. Falls Sie dem nicht zustimmen sollten, erklären Sie und Microsoft hiermit Ihr Einverständnis, dass alle vor Gericht geführten Rechtsstreitigkeiten (ausgenommen Schlichtungen) ausschließlich vor dem Obersten Gerichtshof in King County, Washington, USA, ausgetragen werden.
GESAMTER VERTRAG. Diese Vereinbarung und sonstige Bedingungen, die Microsoft für Erweiterungen, Updates oder Drittanbieteranwendungen zur Verfügung stellt, stellen die gesamte Vereinbarung für die Software dar.