Einführung in das TroubleShootingScript-Toolset (TSS)

In diesem Artikel wird das Toolset TroubleShootingScript (TSS) vorgestellt und Antworten auf häufig gestellte Fragen bereitgestellt.

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 zu lösen.

Das Toolset enthält mehrere PowerShell-Skripts und ausführbare Dateien, die alle von Microsoft signiert sind. Basierend auf den ausgewählten Schaltern 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) von https://aka.ms/getTSSherunterladen.

Voraussetzungen

Dies 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 auf dem lokalen System ausgeführt werden. Das Ausführen des TSS-Toolsets in der Windows PowerShell Integrated Scripting Environment (ISE) wird nicht unterstützt. Der Endbenutzer-Lizenzvertrag (EULA) muss akzeptiert werden. Sobald die Lizenzbedingungen akzeptiert wurden, fordert das TSS-Toolset nicht mehr zur Eingabe der Lizenzbedingungen auf.

  • Die PowerShell-Skriptausführungsrichtlinie sollte auf RemoteSigned Prozessebene festgelegt werden, indem das Cmdlet Set-ExecutionPolicy -scope Process -ExecutionPolicy RemoteSigned -Force an einer PowerShell-Eingabeaufforderung mit erhöhten Rechten ausgeführt wird.

    Hinweis

    Die Änderungen auf Prozessebene wirken sich nur auf die aktuelle PowerShell-Sitzung aus.

Starten des TSS-Toolsets

Sie können TSS.ps1 je nach Szenario mit verschiedenen Schaltern starten. Das -Start Verb ist das Standard- und das optionale Verb und kann bei Bedarf durch ein ergänzendes Verb ersetzt werden. Die komplementären -Start Verben sind -StartAutoLogger, -StartDiag, -StartNoWaitund -CollectLog.

Verb Beschreibung
-Start Das -Start Verb startet ETW-Komponentenablaufverfolgungen (Event Tracing for Windows) oder Unterstützt Tools wie Windows Performance Recorder (WPR).

Das [-Start] Verb ist optional, kann aber durch ergänzende -start Optionen ersetzt werden.
-StartAutoLogger Um diese Protokolle zum Startzeitpunkt zu sammeln, verwenden Sie -StartAutoLogger , um zu ersetzen -Start.

Verwenden Sie es in Kombination mit dem .\TSS.ps1 -Stop Cmdlet, um die Ablaufverfolgungen zu beenden, nachdem das Problem reproduziert wurde.
-StartDiag Obwohl dieser Schalter in der Gegenwart nicht viel nutzen kann, soll er in Zukunft in mehreren Szenarien verwendet werden. Ab heute kann sie mit anderen Argumenten NET_DFSn wie dem Abrufen Diagnose des DFSN-Namespaces kombiniert werden.
-StartNoWait Mit diesem Parameter können die Ablaufverfolgungen auch dann aktiv bleiben, wenn Sie sich abmelden.

Verwenden Sie es in Kombination mit dem .\TSS.ps1 -Stop Cmdlet, um die Ablaufverfolgungen zu beenden, nachdem das Problem reproduziert wurde.
-CollectLog Dieser Parameter wird häufig zusammen mit dem Argument DND_SetupReportverwendet.

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 spitzen Klammern (<>) für Platzhalter muss durch einen tatsächlichen Szenarionamen, eine Ablaufverfolgungskomponente, einen Befehl oder einen Wert ersetzt werden.
[optional] Der Schlüsselwort (keyword) oder 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] nicht angegeben wird, wird der Standardwert aktiviert, hat also -PerfMon die gleiche Auswirkung 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)

ETW-Ablaufverfolgung PowerShell-Cmdlet Beschreibung
Aktivieren Sie eine Szenarioablaufverfolgung. .\TSS.ps1 -Scenario <ScenarioName> Die unterstützten Szenarionamen werden mithilfe des Cmdlets TSS.ps1 -ListSupportedScenarioTrace aufgelistet.
Aktivieren Sie Komponentenablaufverfolgungen. .\TSS.ps1 <-ComponentName> <-ComponentName> ... Die unterstützte <-componentName> wird mithilfe des Cmdlets TSS.ps1 -ListSupportedTrace aufgeführt.
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 Shutdownverwenden können.

Das Cmdlet .\TSS.ps1 -Stop beendet die Ablaufverfolgung.

Hinweis

Verwenden Sie das -ListETWProviders Cmdlet, um alle Anbieter-GUIDs von Komponenten und/oder Szenarien aufzulisten. Zum Beispiel:

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

Unterstützungstools und Befehle

Starten Sie Unterstützungstools oder Befehle (z. B. ProcMon, ProcDump, netsh, Leistungsmonitor (PerfMon), WPR oder Radar), um die Protokollsammlung mit zusätzlichen Tools für spezialisierte Erfassungen zu verbessern.

PowerShell-Cmdlet Beschreibung
-Fiddler Sammeln Sie die Fiddler-Ablaufverfolgung. Fiddler muss installiert sein.

Aktivieren Sie die Option für die Datenverkehrsentschlüsselung, indem Sie Extras>Optionen und Dann HTTPS-Datenverkehr entschlüsseln auf der Registerkarte HTTPS auswählen.
-GPresult <Start|Stop|Both> Sammeln Sie SysInternals Handle.exe Ausgabe für Phase start, stopoder both.
-Handle <Start|Stop|Both> Sammeln Sie SysInternals Handle.exe Ausgabe für Phase start, stopoder both.
-LiveKD <Start|Stop|Both> Starten Sie SysInternals LiveKD -ml (Live kernel dump).
<Start>: Das Dump wird zu Beginn der Reproduktion erstellt.
<Stop>: Das Speicherabbild wird beim Beenden übernommen.
<Both>: Das Speicherabbild wird sowohl beim Start als auch beim Beenden erstellt.
-Netsh
1. -NetshOptions '<Option string>'
2. -NetshMaxSizeMB <Int>
3. -noPacket
Starten Sie die Netzwerkpaketerfassung.

1. Geben Sie zusätzliche Optionen für an Netsh. Beispiel: 'capturetype=both captureMultilayer=yes provider=Microsoft-Windows-PrimaryNetworkIcon provider={<GUID>}'.
2. Die maximale Protokollgröße für Netsh in Megabyte (MB) (z. B -NetshMaxSizeMB 4096. ). Der Standardwert ist 2048.
3. Verhindern Sie, dass Pakete mit Netsh erfasst werden (nur ETW-Ablaufverfolgungen in werden ScenarioName erfasst).
-NetshScenario
1. -NetshOptions '<Option string>'
2. -NetshMaxSizeMB <Int>
3. -noPacket
Starten Sie die Netsh Szenarioablaufverfolgung. Die unterstützte <ScenarioName> wird mithilfe des Cmdlets -ListSupportedNetshScenario aufgeführt.

1. Geben Sie zusätzliche Optionen für an 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 mit Netsh erfasst 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. Der <CounterSetName> kann mithilfe des Cmdlets -ListSupportedPerfCounter aufgelistet werden.

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 von <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öheren Versionen). PktMon:Drop sammelt nur verworfene Pakete.
-PoolMon <Start|Stop|Both> Sammeln Sie PoolMon für start, stopoder 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 Sie Benutzerabbilder eines einzelnen Elements oder einer durch Trennzeichen getrennten Liste von Elementen mithilfe von SysInternals ProcDump.exe. Standardmäßig wird das Speicherabbild am Anfang der Reproduktion erstellt und beendet. Geben Sie ProcessName(s) mit der Erweiterung ein .exe .

1. Start: Das Dump wird zu Beginn der Reproduktion erstellt.
Stop: Das Speicherabbild wird beim Beenden übernommen.
Both (Standardeinstellung): Das Speicherabbild wird sowohl beim Starten als auch beim Beenden übernommen.
2. Verwenden Sie diese Option, wenn das Speicherabbild wiederholt erfasst werden muss.
N: Die Anzahl der Speicherabbilder
Int: das Intervall in Sekunden
Der Standardwert ist 3:10.
3. Dieser Schalter aktiviert ProcDump -ma -e, wodurch ein vollständiges Speicherabbild geschrieben wird, wenn der Prozess auf eine nicht behandelte 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 für ProcmonAltitude an (der Standardwert ist 385200). Verwenden Sie fltmc instances , um die Höhe des Filtertreibers anzuzeigen. Verwenden Sie eine niedrigere Zahl als der mutmaßliche spezifische Treiber. Der 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 (z. B. ProcmonConfiguration.pmc) im Ordner \config an.
-PSR Start Problems Steps Recorder.
-Radar <PID[]|ProcessName[]|ServiceName[]> Sammeln Sie die Diagnoseinformationen des Lecks (rdrleakdiag.exe).

Beispiel: -Radar AppIDSvc.
-RASdiag Ablaufverfolgung sammeln. Die Netsh Ras-Diagnose set trace ist aktiviert.
-SDP <SpecialityName[]>
1. -SkipSDPList "<xxx>","<yyy>"
2. <SpecialityName>
Sammeln Sie das Support-Diagnosepaket (Support Diagnostic Package, SDP) für die angegebene Spezialität. Verwenden Sie das Cmdlet, um die vollständige Liste von SpecialityNames und SkipSDPListzu .\tss -help erstellen.

Überspringen Sie die durch Trennzeichen getrennte Liste der SDP-Modulnamen, die während der Ausführung des SDP-Berichts in Ihrer Umgebung hängen.
-SysMon Sammeln Sie SysInternals System Monitor-Protokolle (SysMon) (sysmonConfig.xml standardmäßig im Ordner 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>'
Starten Sie das Time Travel Debugging (TTD) (TTT/iDNA) mit dem Standardmodus -Full . Geben Sie ( ProcessNames) mit der .exe Erweiterung, einem einzelnen Element (PID/Name) oder einer durch Trennzeichen getrennten Liste von Elementen ein.

Hinweis:
Das down-Level-Betriebssystem vor Windows 10 Version 1703 erfordert das TSS_TTD.zip-Paket.

1. Geben Sie den Ordnerpfad an, dertttracer.exe (PartnerTTD) enthält. In der Regel ist dieser Schalter nur erforderlich, wenn Sie einen bestimmten Pfad erzwingen möchten.
2. Full = -dumpfull (=default)
Ring = Ringpuffermodus
onLaunch = -onLaunch (erfordert TSS_TTD)
3. Die maximale Protokolldateigröße. Der Vorgang hängt von ab -TTDMode. Full hält an, wenn die maximale Größe erreicht ist, und Ring behält die maximale Größe im Ringpuffer bei.
4. Verwenden Sie diese Option, um alle zusätzlichen 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: wird für -iverwendet. Geben Sie die Schnittstellennummer an (z. B _WS_IF=1. ).
2. WS_Filter: wird für -fverwendet. Filtern Sie nach der -Schnittstelle (z. B _WS_Filter="port 443". ).
3. WS_Snaplen: wird für -sverwendet. Begrenzen Sie die Datenmenge für jeden Frame. Dieser Parameter hat eine bessere Leistung und ist für Situationen mit hoher Auslastung hilfreich (z. B _WS_Snaplen=128. ).
4. WS_TraceBufferSizeInMB: verwendet für -b FileSize (multipliziert mit 1024). Wechseln Sie nach der Anzahl von Megabytes zur nächsten Datei. (Beispiel: _WS_TraceBufferSizeInMB=512, default=512 MB)
5. WS_PurgeNrFilesToKeep: wird für -b filesverwendet. Ersetzen Sie nach der Anzahl der Dateien. (Beispiel: _WS_PurgeNrFilesToKeep=20)
6. WS_Options: alle anderen Optionen für -i (z. B _WS_Options="-P". ).

Beispiel:
Um WireShark an den Schnittstellen 15 und 11 zu erfassen, geben Sie ein, wenn TSS zur Eingabe einer Schnittstellennummer auffordert: 15 -i 11.

Standardmäßig startet dumpcap.exe -i <all NICs> -B 1024 -n -t -w _WireShark-packetcapture.pcap -b files:10 -b filesize:524288Wireshark .
-WPR <WPRprofile>
1. -SkipPdbGen
2. -WPROptions '<Option string>'
Starten Sie eine WPR-Profilablaufverfolgung. <WPRprofile>ist einer von GeneralVSOD_Leak|CPUVSOD_CPU|||DeviceSQL||XamlWait||Graphic|Storage|RegistryNetworkMemory||BootGeneral|.

1. Überspringen Sie das Generieren von Symboldateien (PDB-Dateien).
2. Geben Sie Optionen für WPR.exean. Beispiel: -WPROptions '-onoffproblemdescription "test description"'.

Beispiel 1:
.\TSS.ps1 -StartAutoLogger -WPR BootGeneral -WPROptions '-addboot CPU' erfasst WPR-Startablaufverfolgungen mit den General Profilen und CPU .

Beispiel 2:
.\TSS.ps1 -WPR General -WPROptions '-Start CPU -start Network -start Minifilter'kombiniert Profile (General, , CPUNetworkund Minifilter).
-Xperf <Profile>
1. -XperfMaxFileMB <Size>
2. -XperfTag <Pool Tag>
3. -XperfPIDs <PID>
4. -XperfOptions <Option string>
Starten Sie Xperf. <Profile>ist einer von GeneralSBSLboot||DiskRegistry||SBSLPoolNPP||SMB2|Pool|NetworkMemoryLeak||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 Profil oder PoolNPP verwendet (z. B -Xperf Pool -XperfTag TcpE+AleE+AfdE+AfdX. ).
3. Geben Sie an ProcessID. Dieser Parameter wird mit dem Leak Profil verwendet (z. B -Xperf Leak -XperfPIDs <PID>. ).
4. Geben Sie andere Optionszeichenfolgen für Xperfan.
-xray Starten Sie xray, um ein System auf bekannte Probleme zu diagnostizieren.

Im folgenden Beispiel wird veranschaulicht, wie sie mehrere Supporttools (Befehle) während derselben Ablaufverfolgung aktivieren.

.\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, um die Datensammlung zu steuern, zu verbessern oder zu vereinfachen.

Parameter Beschreibung
-AcceptEula Fragen Sie nicht zuerst. führen Sie aus, um den Haftungsausschluss zu akzeptieren (nützlich für die -RemoteRun Ausführung).
-AddDescription <description> Fügen Sie eine kurze Beschreibung des Reproduktionsproblems hinzu. Der Name der resultierenden ZIP-Datei enthält eine solche Beschreibung.
-Assist Barrierefreiheitsmodus.
-BasicLog Erfassen Sie das vollständige Basisprotokoll (das Mini-Basisprotokoll wird immer standardmäßig erfasst).
-CollectComponentLog Verwenden Sie mit -Scenario. Standardmäßig werden Komponentensammlungsfunktionen in der -Scenario Ablaufverfolgung nicht aufgerufen. Dieser Schalter ermöglicht den Aufruf der Sammlungsfunktionen der Komponente.
-CollectDump Erfassen Sie das Systemabbild (memory.dmp), nachdem Sie alle Ablaufverfolgungen beendet haben. -CollectDump kann mit -Start und -Stopverwendet werden.
-CollectEventLog <Eventlog[]> Sammeln Sie die angegebenen Ereignisprotokolle. Das Sternchen (*) platzhalterzeichen kann für den Ereignisprotokollnamen verwendet werden.

Beispiel:
-CollectEventLog Security,*Cred*
Sammeln Sie Sicherheitsprotokolle und alle Ereignisprotokolle, die wie übereinstimmen *Cred*'Microsoft-Windows-CertificateServicesClient-CredentialRoaming/Operational'.
-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, bevor Sie die Ablaufverfolgung starten und beenden.
Full: Das vollständige Basisprotokoll wird nach dem Beenden der Ablaufverfolgung erfasst.
Mini: Das Mini-Basisprotokoll wird nach dem Beenden der Ablaufverfolgung erfasst.
-Crash Lösen Sie einen Systemabsturz mit NotMyFault am Ende der Reproduktion aus, oder nachdem alle Ereignisse signalisiert wurden, wenn sie mit -WaitEventverwendet werden.

Vorsicht:
Dieser Schalter 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 durch Trennzeichen getrennte Liste mit einfachen Anführungszeichen '{GUID}' und/oder 'Provider-Name').
-DebugMode Ausführen im Debugmodus für einen Entwickler.
-VerboseMode Ausführlichere oder ausführlichere Ausgabe bei der Verarbeitung von TSS-Funktionen anzeigen.
-Discard Wird verwendet, um ein Dataset in der Phase -Stopzu verwerfen. *Stop- - oder *Collect- -Funktionen werden nicht ausgeführt. xray und psSDP werden übersprungen.
-EnableCOMDebug Modul zum Aktivieren des COM-Debugmodus.
-ETLOptions<circular|newfile>:<ETLMaxSizeMB>:<ETLNumberToKeep>:<ETLFileMax> Legen Sie optionen fest, die an logman Befehle übergeben werden. Der Standardwert für circular ETLMaxSizeMB ist 1024, und der Standardwert für newfile ETLMaxSizeMB ist 512.

-StartAutologger unterstützt -ETLOptions circular:<ETLMaxSize>:<ETLNumberToKeep>:<ETLFileMax>nur , wird aber ETLNumberToKeep nicht erwartet ausgeführt.

Beispiel.1:
-ETLOptions newfile:2048:5

Ausführen newfile von Protokollen mit einer Größe von 2048 MB. Behalten Sie nur die letzten fünf *.etl Dateien bei. Die Standardeinstellung für den Zirkelmodus ist circular:1024, und für den neuen Dateimodus ist newfile:512:10.

Beispiel 2:
-StartAutologger -ETLOptions circular:4096
Autologger gehorcht :<ETLNumberToKeep> nicht und akzeptiert nur moduskreisförmig.

Beispiel 3:
-StartAutologger -ETLOptions circular:4096:10:3
Autologger wird nicht gehorchen :<ETLNumberToKeep> und akzeptiert nur modus circular und "3" als Anzahl von 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). Dies ist nützlich, wenn Laufwerk C: nicht genügend freier Speicherplatz zur Verfügung hat.
-MaxEvents <N> Als Argument für '-WaitEvent Evt:..'untersucht der Parameter die letzte N Anzahl von Ereignissen mit der gleichen Ereignis-ID (der Standardwert ist 1).
-Mini Sammeln Sie nur minimale Daten. Überspringen Sie noPSR, noSDP, noVideo, noXray, noZipund noBasicLog.
-Mode <Basic|Medium|Advanced|Full|Verbose|VerboseEx|Hang|Restart
|Swarm|Kube|GetFarmdata|Permission|traceMS>
Führen Sie Skripts im BasicModus , Medium, Advanced, Fulloder Verbose(Ex) für die Datensammlung aus. Restart startet den zugeordneten 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 verhindert die PsR- und Videoaufzeichnung, das Starten von TssClock und das Öffnen Explorer mit Endergebnissen. In einem solchen Fall sollten Sie auch berücksichtigen -AcceptEula.
-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 dies signalisiert wird, werden Ablaufverfolgungen automatisch beendet.

Es gibt eine Vielzahl von Optionen, um einen automatischen Stopp auszulösen. Führen Sie aus .\TSS.ps1 -Find Monitoring , um die Verwendung anzuzeigen.
-Update
1. -UpdMode<Online|Lite>
Aktualisieren Sie das TSS-Paket. Sie kann zusammen mit -UpdMode Online|Liteverwendet werden.

Online ist die Standardeinstellung und Lite die Upd Lite-Version.
-Help
1. Common
2. ALL
3. Monitoring
4. Config
5. Keyword
Stellen Sie Hilfemeldungen zu verschiedenen Szenarien bereit.

1. Allgemeine allgemeine Hilfenachricht.
2. Alle verfügbaren Optionen.
3. Anzeigen von Hilfemeldungen für Die Überwachung und Remotefunktionen.
4. Hilfe bei allen Konfigurationsparametern.
5. Sie können eine beliebige Schlüsselwort (keyword) eingeben, und es werden die Hilfeinformationen zu diesem Schlüsselwort (keyword) angezeigt.
-Status Zeigen Sie ggf. die status der ausgeführten Ablaufverfolgung an.

Hilfsskripts und Tools enthalten

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 Schalter -sd <dump type> , um den Absturzabbildtyp Full|Kerneldes Kernels festzulegen, kdbgctrl -sd Fullz. 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 eines Speicherabbilds. Wenn die TSS-Befehlszeile enthält, finden Sie unter NotMyFault v4.21 weitere Informationen -Crash.

Behandeln unerwarteter PowerShell-Fehler

  1. Führen Sie dieses Cmdlet nach einem Fehler aus:

    .\TSS.ps1 -Stop -noBasiclog -noXray
    
  2. Schließen Sie das geöffnete PowerShell-Fenster mit erhöhten Rechten, und starten Sie ein neues PowerShell-Fenster mit erhöhten Rechten.

  3. Lassen Sie die Ausführung von PowerShell-Skripts auf Ihrem System mit dem richtigen ExecutionPolicyzu.

  4. Wenn ein Fehler auftritt, der angibt, dass das ausgeführte Skript deaktiviert ist, probieren Sie die folgenden Methoden aus.

Methode 1

  1. Führen Sie das folgende Cmdlet aus:

    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -force -Scope Process
    
  2. Überprüfen Sie die Einstellungen mit dem Get-ExecutionPolicy -List Cmdlet, dass die ExecutionPolicy Ausführung dieses Skripts nicht mit höherer Priorität blockiert wird.

  3. Führen Sie das .\TSS.ps1 <Desired Parameters> Cmdlet erneut aus.

Methode 2 (alternativ)

Wenn Skripts von MachinePolicyblockiert werden, führen Sie die folgenden Cmdlets in einem PowerShell-Fenster mit erhöhten Rechten aus:

  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
    

Methode 3 (alternativ)

Wenn Skripts von UserPolicyblockiert werden, führen Sie die folgenden Cmdlets in einem PowerShell-Fenster mit erhöhten Rechten aus:

  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
    

Hinweis

Methode 2 ist nur eine Problemumgehung für die Richtlinie MachinePolicy - RemoteSigned. Wenn auch angezeigt wirdUserPolicy - RemoteSigned, bitten Sie den Domänenadministrator um eine temporäre Gruppenrichtlinie Object(GPO)-Ausnahme.

In seltenen Fällen können Sie das -ExecutionPolicy Bypass Cmdlet ausprobieren.

Wenn Ihr organization erzwingt den eingeschränkten Gruppenrichtlinienobjekt-PowerShell-Sprachmodus (System.Management.Automation.EngineIntrinsics.SessionState.LanguageMode -ne 'FullLanguage'), bitten Sie den Domänenadministrator um eine temporäre GPO-Ausnahme.

Häufig gestellte Fragen (FAQs)

  • F1: Ändert das TSS-Skript die Einrichtung oder Konfiguration meines Systems?

    A1: Nein, aber in einigen Szenarien ist eine Registrierungseinstellung erforderlich, um die Debugprotokollierung zu aktivieren. Das Skript legt den erforderlichen Schlüssel am Anfang der Datensammlung fest und setzt den Schlüssel auf den Standardwert am Ende der Datensammlung zurück. Es kann auch einige Caches (z. B. den ARP-Cache oder den Namensauflösungscache) zu Beginn der Datensammlung löschen, um das Problem aus den Protokollen zu beobachten.

  • F2: Führt das TSS-Toolset zu einer zusätzlichen Auslastung des Servers?

    A2: Einige Protokollierungen (z. B. Netzwerkerfassung, ETW-Ablaufverfolgungssammlung usw.), die vom TSS-Toolset gestartet werden, können das System geringfügig belasten. Die Last liegt in der Regel auf ignorierbaren Ebenen. Wenden Sie sich an Ihren Supportmitarbeiter, wenn sie nach dem Starten des TSS-Toolsets eine hohe CPU-, Arbeitsspeicher- oder Datenträgerauslastung feststellen.

  • F3: Warum können wir das Problem nicht reproduzieren, wenn das TSS-Toolset ausgeführt wird?

    A3: Das TSS-Toolset löscht möglicherweise alle zwischengespeicherten Informationen zu Beginn. Außerdem wird die Netzwerkerfassung in einem promiskenden 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 können verschwinden. Insbesondere bei bestimmten Zeitsteuerungsproblemen verschwinden Probleme aufgrund der Datensammlung des TSS-Toolsets. Die Datensammlung beginnt mit der Protokollierung, was sich indirekt auf das Problem auswirken und die Situation ändern kann.

  • F4: Warum reagiert das TSS-Toolset lange nicht?

    A4: In einigen Fällen reagieren die integrierten Befehle des Betriebssystems, die vom TSS-Toolset ausgeführt werden, möglicherweise nicht oder dauern lange. Wenden Sie sich an Ihren Supportmitarbeiter, wenn dieses Problem aufgetreten ist.

  • F5: Muss ich mich um den Speicherplatz oder etwas anderes kümmern, wenn ich das TSS-Toolset für eine lange Zeit ausführen möchte?

    A5: Die gesamte TSS-Ablaufverfolgung ist für die Ausführung mit Ringpuffern konfiguriert, sodass Sie das Toolset bei Bedarf lange ausführen können. Das TSS-Toolset berechnet auch den Speicherplatz zu Beginn der Datensammlung und kann beendet werden, wenn nicht genügend Speicherplatz vorhanden ist. Wenn sie nach dem Starten des TSS-Toolsets eine hohe Datenträgerauslastung feststellen oder andere Bedenken hinsichtlich der Datenträgernutzung des Toolsets haben, wenden Sie sich an Ihren Supportmitarbeiter.

  • F6: Was soll ich tun, wenn beim Ausführen des SKRIPTS .\TSS.ps1 die folgende Sicherheitswarnung angezeigt wird?

    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 Fällen erhalten Sie möglicherweise diese Sicherheitswarnung. Sie können die Blockierung des Skripts mithilfe des Cmdlets PS C:\> Unblock-File -Path C:\TSS\TSS.ps1aufheben. Dieses Skript hebt die Blockierung aller anderen Module mithilfe des Cmdlets Get-ChildItem -Recurse -Path C:\TSS\*.ps* | Unblock-File -Confirm:$falseauf.

Endbenutzer-Lizenzvertrag (EULA)

Wählen Sie unten aus, um die MICROSOFT-SOFTWARE-LIZENZBEDINGUNGEN anzuzeigen.

Microsoft-Diagnoseskripts und -Hilfsprogramme

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. Vorbehaltlich der in dieser Lizenz dargelegten Bedingungen und Einschränkungen gewährt Ihnen die Microsoft Corporation ("Microsoft") eine nicht exklusive, nicht abtretbare, vollständig bezahlte Lizenz, um das unter dieser Lizenz bereitgestellte Skript oder Hilfsprogramm (die "Software") ausschließlich für interne Geschäftszwecke des Kunden zu verwenden und zu reproduzieren, um Microsoft bei der Behandlung von Problemen mit einem oder mehreren Microsoft-Produkten zu unterstützen. vorausgesetzt, dass eine solche Lizenz für die Software keine Rechte an anderen Microsoft-Technologien (z. B. Produkten oder Diensten) umfasst. "Verwenden" bedeutet, die Software zu kopieren, zu installieren, auszuführen, darauf zuzugreifen, anzuzeigen, auszuführen oder anderweitig mit der Software zu interagieren.

    Sie sind nicht berechtigt, die Software oder ihre Verwendung durch Verteilung, Netzwerkzugriff oder anderweitig unterlizenzieren. Microsoft behält sich alle anderen Rechte vor, die hierin nicht ausdrücklich gewährt werden, sei es implizit, estoppel oder anderweitig. Sie dürfen die Software nicht zurückentwickeln, dekompilieren oder disassemblieren oder auf andere Weise 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 sind, oder Entfernen, Minimieren, Blockieren oder Ändern von Hinweisen 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 durch Gesetz, Verordnung, behördliche Anordnung oder Dekret verboten ist; (ii) die Rechte anderer zu verletzen; (iii) zu versuchen, nicht autorisierten Zugriff auf Dienste, Geräte, Daten, Konten oder Netzwerke zu erlangen oder diese zu stören; (iv) zur Verbreitung von Spam oder Schadsoftware; (v) in einer Weise, die die IT-Systeme von Microsoft beschädigen oder die Nutzung durch andere beeinträchtigen könnte; (vi) in jeder Anwendung oder Situation, in der die Nutzung der Software zum Tod oder einer schweren Körperverletzung einer Person oder zu Körperlichen oder Umweltschäden führen könnte; oder (vii) um jemanden zu unterstützen, zu ermutigen oder zu ermöglichen, eine der oben genannten Schritte zu tun.

  2. DATEN. Der Kunde besitzt alle Rechte an Daten, die er über die Nutzung der Software an Microsoft weitergeben 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 dient als Ihre Zustimmung zu diesen Praktiken.

  3. FEEDBACK. Wenn Sie Microsoft Feedback zur Software geben, gewähren Sie Microsoft kostenlos das Recht, Ihr Feedback in beliebiger Weise und für jeden Zweck zu verwenden, zu teilen und zu kommerzialisieren. Sie werden kein Feedback geben, das einer Lizenz unterliegt, bei der Microsoft seine Software oder Dokumentation an Dritte lizenzieren muss, da Microsoft Ihr Feedback in diese Software oder Dokumentation einschließt.

  4. EXPORT RESTRICTIONS. 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 Endverwendung. For further information on export restrictions, visit https://aka.ms/exporting.

  5. ZUSICHERUNGEN UND GEWÄHRLEISTUNGEN. Der Kunde wird alle anwendbaren Gesetze im Rahmen dieser Vereinbarung einhalten, einschließlich der Übermittlung und Verwendung aller Daten. Der Kunde oder der Empfänger, der diesen Bedingungen im Namen einer Juristischen Person zustimmt, stellt dar und garantiert, dass es (i) über die volle Befugnis und Befugnis verfügt, seine Verpflichtungen gemäß dieser Vereinbarung einzugehen und zu erfüllen, (ii) über die volle Befugnis und Autorität verfügt, seine verbundenen Unternehmen oder organization an die Bedingungen dieser Vereinbarung zu binden, und (iii) die Erlaubnis der anderen Partei vor der Bereitstellung von Quellcode in einer Weise zu sichern, die den geistiges Eigentum einer anderen Partei an anderen Lizenzbedingungen oder verlangen von der anderen Partei, Quellcode an eine ihrer Technologien zu verteilen.

  6. AUSSCHLUSS DER GARANTIE. DIE SOFTWARE WIRD OHNE JEGLICHE AUSDRÜCKLICHE ODER KONKLUDENTE GEWÄHRLEISTUNG BEREITGESTELLT, EINSCHLIEßLICH, ABER NICHT BESCHRÄNKT AUF DIE GEWÄHRLEISTUNGEN DER HANDELSÜBLICHKEIT, EIGNUNG FÜR EINEN BESTIMMTEN ZWECK UND NICHTVERLETZUNG. IN KEINEM FALL HAFTEN MICROSOFT ODER SEINE LIZENZGEBER FÜR DIREKTE, INDIREKTE, ZUFÄLLIGE, BESONDERE, BEISPIELHAFTE ODER FOLGESCHÄDEN (EINSCHLIEßLICH, ABER NICHT BESCHRÄNKT AUF DIE BESCHAFFUNG VON ERSATZGÜTERN ODER DIENSTLEISTUNGEN; VERLUST VON NUTZUNG, DATEN ODER GEWINN; ODER GESCHÄFTSUNTERBRECHUNG) JEDOCH VERURSACHT UND AUF JEDE THEORIE DER HAFTUNG, SEI ES AUS VERTRAG, STRENGER HAFTUNG, ODER UNERLAUBTER HANDLUNG (EINSCHLIEßLICH FAHRLÄSSIGKEIT ODER ANDERWEITIG), DIE IN IRGENDEINER WEISE AUS DER NUTZUNG DER SOFTWARE ENTSTEHT, AUCH WENN AUF DIE MÖGLICHKEIT SOLCHER SCHÄDEN HINGEWIESEN WIRD.

  7. VERJÄHRUNG UND AUSSCHLUSS VON SCHÄDEN. WENN SIE TROTZ DES VORSTEHENDEN GARANTIEAUSSCHLUSSES EINE GRUNDLAGE FÜR DIE ERSTATTUNG VON SCHÄDEN HABEN, KÖNNEN SIE VON MICROSOFT UND SEINEN LIEFERANTEN NUR DIREKTE SCHÄDEN BIS ZU DEN USA ZURÜCKERHALTEN. 00. SIE KÖNNEN KEINE ANDEREN SCHÄDEN, EINSCHLIEßLICH FOLGESCHÄDEN, ENTGANGENER GEWINNE, SPEZIELLER, INDIREKTER ODER ZUFÄLLIGER SCHÄDEN, ZURÜCKERLANGEN. Diese Einschränkung gilt für (i) alles im Zusammenhang mit der Software, Diensten, Inhalten (einschließlich Code) auf Websites von Drittanbietern oder Anwendungen von Drittanbietern; und (ii) Ansprüche wegen Vertragsverletzung, Gewährleistung, Garantie oder Bedingung; strenge Haftung, Fahrlässigkeit oder andere unerlaubte Handlung; oder einen anderen Anspruch; in jedem Fall, soweit dies nach geltendem Recht zulässig ist. 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. Dieser Abschnitt gilt, wenn Sie in der USA wohnen (oder, wenn sich ein Unternehmen befindet, Ihr Hauptgeschäftssort ist). If you and Microsoft have a dispute, you and Microsoft agree to try for 60 days to resolve it informally. If you and Microsoft can't, you and Microsoft agree to binding individual arbitration before the American Arbitration Association under the Federal Arbitration Act ("FAA"), and not to sue in court in front of a judge or jury. Instead, a neutral arbitrator will decide. Class action lawsuits, class-wide arbitrations, private attorney-general actions, and any other proceeding where someone acts in a representative capacity are not allowed; nor is combining individual proceedings without the consent of all parties. The complete Arbitration Agreement contains more terms and is at https://aka.ms/arb-agreement-4. You and Microsoft agree to these terms.

  9. RECHT UND GERICHTSSTAND. 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.