learn.microsoft.com Open in urlscan Pro
2a02:26f0:e300:29b::3544  Public Scan

Submitted URL: https://docs.microsoft.com/en-us/troubleshoot/windows-client/windows-troubleshooters/introduction-to-troubleshootingscript-...
Effective URL: https://learn.microsoft.com/en-us/troubleshoot/windows-client/windows-tss/introduction-to-troubleshootingscript-toolset-tss
Submission: On September 24 via api from US — Scanned from DE

Form analysis 3 forms found in the DOM

Name: site-header-search-form-mobileGET /en-us/search/

<form class="flex-grow-1" method="GET" role="search" id="ms--site-header-search-form-mobile" data-bi-name="site-header-search-form-mobile" name="site-header-search-form-mobile" aria-label="Search" action="/en-us/search/">
  <div class="autocomplete display-block" data-bi-name="autocomplete"><!---->
    <div class="field-body control ">
      <input role="combobox" maxlength="100" aria-autocomplete="list" autocapitalize="off" autocomplete="off" autocorrect="off" spellcheck="false" id="site-header-search-autocomplete-input-mobile"
        data-test-id="site-header-search-autocomplete-input-mobile" class="autocomplete-input input 
						
						width-full" type="search" name="terms" aria-expanded="false" aria-owns="ax-1-listbox" aria-controls="ax-1-listbox" aria-activedescendant="" aria-label="Search" aria-describedby="ms--site-header-search-autocomplete-input-mobile-description"
        placeholder="Search" data-bi-name="site-header-search-autocomplete-input-mobile" pattern=".*">
      <span aria-hidden="true" class="autocomplete-loader loader has-text-primary " hidden=""></span>
      <span hidden="" id="ms--site-header-search-autocomplete-input-mobile-description"> Suggestions will filter as you type </span>
    </div>
    <ul role="listbox" id="ax-1-listbox" data-test-id="site-header-search-autocomplete-input-mobile-listbox" class="autocomplete-suggestions is-vertically-scrollable padding-xxs " aria-label="Suggestions" hidden="">
    </ul>
    <!---->
  </div>
  <!-- mobile safari will not dispatch submit event unless there's a submit button that is not display:none -->
  <button type="submit" class="visually-hidden" tabindex="-1" aria-hidden="true"></button>
  <input name="category" hidden="" value="">
</form>

Name: site-header-search-formGET /en-us/search/

<form class="flex-grow-1" method="GET" role="search" id="ms--site-header-search-form" data-bi-name="site-header-search-form" name="site-header-search-form" aria-label="Search" action="/en-us/search/">
  <div class="autocomplete display-block" data-bi-name="autocomplete"><!---->
    <div class="field-body control ">
      <input role="combobox" maxlength="100" aria-autocomplete="list" autocapitalize="off" autocomplete="off" autocorrect="off" spellcheck="false" id="site-header-search-autocomplete-input" data-test-id="site-header-search-autocomplete-input" class="autocomplete-input input input-sm
						
						width-full" type="search" name="terms" aria-expanded="false" aria-owns="ax-0-listbox" aria-controls="ax-0-listbox" aria-activedescendant="" aria-label="Search" aria-describedby="ms--site-header-search-autocomplete-input-description"
        placeholder="Search" data-bi-name="site-header-search-autocomplete-input" pattern=".*">
      <span aria-hidden="true" class="autocomplete-loader loader has-text-primary " hidden=""></span>
      <span hidden="" id="ms--site-header-search-autocomplete-input-description"> Suggestions will filter as you type </span>
    </div>
    <ul role="listbox" id="ax-0-listbox" data-test-id="site-header-search-autocomplete-input-listbox" class="autocomplete-suggestions is-vertically-scrollable padding-xxs " aria-label="Suggestions" hidden="">
    </ul>
    <!---->
  </div>
  <!-- mobile safari will not dispatch submit event unless there's a submit button that is not display:none -->
  <button type="submit" class="visually-hidden" tabindex="-1" aria-hidden="true"></button>
  <input name="category" hidden="" value="">
</form>

javascript:

<form action="javascript:" role="search" aria-label="Search" class="margin-bottom-xxs"><label class="visually-hidden" for="ax-2">Search</label>
  <div class="autocomplete display-block" data-bi-name="autocomplete"><!---->
    <div class="field-body control has-icons-left">
      <input role="combobox" maxlength="100" aria-autocomplete="list" autocapitalize="off" autocomplete="off" autocorrect="off" spellcheck="false" id="ax-2" data-test-id="ax-2" class="autocomplete-input input input-sm
						control has-icons-left
						width-full" type="text" aria-expanded="false" aria-owns="ax-3-listbox" aria-controls="ax-3-listbox" aria-activedescendant="" aria-describedby="ms--ax-2-description" placeholder="Filter by title" pattern=".*">
      <span aria-hidden="true" class="icon is-small is-left">
        <span class="has-text-primary docon docon-filter-settings"></span>
      </span>
      <span aria-hidden="true" class="autocomplete-loader loader has-text-primary " hidden=""></span>
      <span hidden="" id="ms--ax-2-description"> Suggestions will filter as you type </span>
    </div>
    <ul role="listbox" id="ax-3-listbox" data-test-id="ax-2-listbox" class="autocomplete-suggestions is-vertically-scrollable padding-xxs " aria-label="Suggestions" hidden="">
    </ul>
    <!---->
  </div>
</form>

Text Content

Skip to main content

We use optional cookies to improve your experience on our websites, such as
through social media connections, and to display personalized advertising based
on your online activity. If you reject optional cookies, only cookies necessary
to provide you the services will be used. You may change your selection by
clicking “Manage Cookies” at the bottom of the page. Privacy Statement
Third-Party Cookies

Accept Reject Manage cookies


AI SKILLS CHALLENGE

Sep 24 – Nov 1, 2024

Excel in AI technologies with Microsoft Copilot, Azure, and Fabric. Start the
challenge today.

Register now
Dismiss alert

This browser is no longer supported.

Upgrade to Microsoft Edge to take advantage of the latest features, security
updates, and technical support.

Download Microsoft Edge More info about Internet Explorer and Microsoft Edge

Learn
Suggestions will filter as you type
Sign in


 * Profile
 * Settings

Sign out

Learn
   
 * Discover
      
    * Documentation
      
      In-depth articles on Microsoft developer tools and technologies
   
      
    * Training
      
      Personalized learning paths and courses
   
      
    * Credentials
      
      Globally recognized, industry-endorsed credentials
   
      
    * Q&A
      
      Technical questions and answers moderated by Microsoft
   
      
    * Code Samples
      
      Code sample library for Microsoft developer tools and technologies
   
      
    * Assessments
      
      Interactive, curated guidance and recommendations
   
      
    * Shows
      
      Thousands of hours of original programming from Microsoft experts
   
      
   
   Microsoft Learn for Organizations
   
   Boost your team's technical skills
   
   Access curated resources to upskill your team and close skills gaps.

   
 * Product documentation
      
    * ASP.NET
      
    * Azure
      
    * Dynamics 365
      
    * Microsoft 365
      
    * Microsoft Edge
      
    * Microsoft Entra
      
    * Microsoft Graph
      
    * Microsoft Intune
      
    * Microsoft Purview
      
    * Microsoft Teams
      
    * .NET
      
    * Power Apps
      
    * Power Automate
      
    * Power BI
      
    * Power Platform
      
    * PowerShell
      
    * SQL
      
    * Sysinternals
      
    * Visual Studio
      
    * Windows
      
    * Windows Server
      
   
   View all products
   
   Microsoft Learn for Organizations
   
   Boost your team's technical skills
   
   Access curated resources to upskill your team and close skills gaps.

   
 * Development languages
      
    * C++
      
    * C#
      
    * DAX
      
    * Java
      
    * OData
      
    * OpenAPI
      
    * Power Query M
      
    * VBA
      
   
   Microsoft Learn for Organizations
   
   Boost your team's technical skills
   
   Access curated resources to upskill your team and close skills gaps.

   
 * Topics
      
    * Artificial intelligence
      
    * Compliance
      
    * DevOps
      
    * Platform engineering
      
    * Security
      
   
   Microsoft Learn for Organizations
   
   Boost your team's technical skills
   
   Access curated resources to upskill your team and close skills gaps.

   

Suggestions will filter as you type
Sign in


 * Profile
 * Settings

Sign out
Windows
   
 * Release health
   
 * Windows client
     
   * Windows client for IT pros
     
   * Deployment
       
     * Windows Autopilot
       
     * Windows Autopatch
       
     * Deploy hub
       
     
   * Security
     
   * Privacy
     
   * Client management
     
   * Configuration
     
   * Windows for Education
     
   * Troubleshooting
     
   
 * Application developers
     
   * Windows app development documentation
     
   * App developer tools
       
     * Windows App SDK
       
     * WinUI
       
     * MSIX
       
     * Windows Terminal
       
     * Windows AI
       
     * Windows Subsystem for Linux
       
     * Microsoft PowerToys
       
     
   * Platforms
       
     * Win32 apps
       
     * WinUI
       
     * WPF
       
     * Windows Forms
       
     * UWP
       
     * Web development on Windows
       
     * Windows for IoT
       
     * Mixed reality
       
     * Game development kit
       
     
   
 * Hardware developers
     
   * Hardware developer documentation
     
   * Windows Driver Kit (WDK)
     
   * WDK code samples
     
   * Hardware Lab Kit (HLK)
     
   * Assessment and Deployment Kit (ADK)
     
   * Debugging tools for Windows
     
   * Get started building devices
     
   
 * Windows Server
   
 * Windows for IoT
   
 * Windows Insider Program
   
 * Windows 365
   
 * More
     
   * Release health
     
   * Windows client
       
     * Windows client for IT pros
       
     * Deployment
         
       * Windows Autopilot
         
       * Windows Autopatch
         
       * Deploy hub
         
       
     * Security
       
     * Privacy
       
     * Client management
       
     * Configuration
       
     * Windows for Education
       
     * Troubleshooting
       
     
   * Application developers
       
     * Windows app development documentation
       
     * App developer tools
         
       * Windows App SDK
         
       * WinUI
         
       * MSIX
         
       * Windows Terminal
         
       * Windows AI
         
       * Windows Subsystem for Linux
         
       * Microsoft PowerToys
         
       
     * Platforms
         
       * Win32 apps
         
       * WinUI
         
       * WPF
         
       * Windows Forms
         
       * UWP
         
       * Web development on Windows
         
       * Windows for IoT
         
       * Mixed reality
         
       * Game development kit
         
       
     
   * Hardware developers
       
     * Hardware developer documentation
       
     * Windows Driver Kit (WDK)
       
     * WDK code samples
       
     * Hardware Lab Kit (HLK)
       
     * Assessment and Deployment Kit (ADK)
       
     * Debugging tools for Windows
       
     * Get started building devices
       
     
   * Windows Server
     
   * Windows for IoT
     
   * Windows Insider Program
     
   * Windows 365
     
   

Table of contents Exit focus mode

Search
Suggestions will filter as you type
 * Windows Client
 * Active Directory
 * Admin Development
 * Application Management
 * App-V
 * Backup and Storage
 * Certificates and Public Key Infrastructure (PKI)
 * Group Policy
 * High Availability
 * Licensing and activation
 * Networking
 * Performance
 * Printing
 * Remote Desktop Services
 * Setup, upgrades, and drivers
 * Shell Experience
 * System Management Components
 * UE-V
 * UserProfiles and Logon
 * Virtualization
 * Windows 7 End of Support (EoS) FAQ
 * Windows Security
 * Windows Servicing, Updates and Features on Demand
 * Windows Troubleshooters
 * Support Tools
   * TroubleShootingScript toolset (TSS)
     * Introduction to TroubleShootingScript toolset (TSS)
     * Gather information for Active Directory replication issues
     * Gather information for deployment-related issues
     * Gather information for Group Policy issues
     * Gather information for Hyper-V related issues
     * Gather information for SQL cluster (AG/FCI) related issues
     * Gather information for user experience-related issues
     * Gather information for Windows failover cluster related issues
     * Gather information for Windows Update for Business reports-related issues
     * Use the xray feature of TSS
   * Performance Monitoring Tools

Download PDF
    
 1. Learn
    
    
 2. Troubleshoot
    
    
 3. Windows
    
    
 4. Windows Client
    

    
 1. Learn
    
    
 2. Troubleshoot
    
    
 3. Windows
    
    
 4. Windows Client
    

Read in English Save
 * Add to Collections
 * Add to Plan

Table of contents Read in English Add to Collections Add to Plan Edit


--------------------------------------------------------------------------------

SHARE VIA

Facebook x.com LinkedIn Email

--------------------------------------------------------------------------------

Print
Table of contents


INTRODUCTION TO TROUBLESHOOTINGSCRIPT TOOLSET (TSS)

 * Article
 * 12/26/2023
 * 4 contributors

Feedback


IN THIS ARTICLE

     
 1.  Prerequisites
     
 2.  How to start the TSS toolset
     
 3.  Syntax to use TSS toolset
     
 4.  Cmdlet examples
     
 5.  Event Tracing for Windows (ETW) trace
     
 6.  Support tools and commands
     
 7.  Parameters within TSS options
     
 8.  Helper scripts and tools included
     
 9.  Troubleshoot unexpected PowerShell errors
     
 10. Frequently asked questions (FAQs)
     
 11. End User License Agreement (EULA)
     

Show 7 more

This article introduces the TroubleShootingScript (TSS) toolset and provides
answers to frequently asked questions.

Applies to:   Supported versions of Windows Server and Windows Client

The TSS toolset includes PowerShell-based tools and a framework for data
collection and diagnostics. The toolset aims to simplify data collection and
help resolve cases efficiently and securely.

The toolset includes several PowerShell scripts and executable files, which are
all signed by Microsoft. Based on the selected switches, TSS uses one or more
scripts and executable files to collect the desired logs.

You can download the toolset as a zip file (TSS.zip) from https://aka.ms/getTSS.


PREREQUISITES

Here are some prerequisites for the toolset to run properly:

 * The TSS toolset must be run in an elevated PowerShell window by accounts with
   administrator privileges on the local system. Running the TSS toolset in the
   Windows PowerShell Integrated Scripting Environment (ISE) isn't supported.
   The end-user license agreement (EULA) must be accepted. Once the EULA is
   accepted, the TSS toolset won't prompt for the EULA again.

 * The PowerShell script execution policy should be set to RemoteSigned at the
   process level by running the cmdlet Set-ExecutionPolicy -scope Process
   -ExecutionPolicy RemoteSigned -Force from an elevated PowerShell command
   prompt.
   
   Note
   
   The process level changes only affect the current PowerShell session.


HOW TO START THE TSS TOOLSET

You can start TSS.ps1 with different switches depending on the scenario. The
-Start verb is the default and optional verb, and can be replaced with a
complementary verb as needed. The complementary -Start verbs are
-StartAutoLogger, -StartDiag, -StartNoWait, and -CollectLog.

Expand table

Verb Description -Start The -Start verb starts Event Tracing for Windows (ETW)
component traces or support tools such as Windows Performance Recorder (WPR).

The [-Start] verb is optional but can be replaced with complementary -start
options. -StartAutoLogger To collect these logs at the boot time, use
-StartAutoLogger to replace -Start.

Use it in combination with the .\TSS.ps1 -Stop cmdlet to stop the traces once
the issue is reproduced. -StartDiag While this switch doesn't have much use in
the present, it's meant to be used in the future in multiple scenarios. As of
today, it can be combined with other arguments like NET_DFSn to get diagnostics
of the DFSN namespace. -StartNoWait This parameter allows the traces to remain
active even when you sign out.

Use it in combination with the .\TSS.ps1 -Stop cmdlet to stop the traces once
the issue is reproduced. -CollectLog This parameter is commonly used along with
the argument DND_SetupReport.

Example:
.\TSS.ps1 -Collectlog DND_SetupReport

Logs related to the traces are also automatically collected when you stop data
collection.


SYNTAX TO USE TSS TOOLSET

Expand table

Parameter Description <placeholder> The string in angle brackets (< >) for
placeholders needs to be substituted with an actual scenario name, trace
component, command, or value. [optional] The keyword or value in square brackets
([ ]) is optional. For example, [module:int] means the module and interval are
optional. The default value is used if [<xx>:<yy>] is omitted. | This parameter
means 'OR'. You can choose one of the available options. : The separator
character between two values.


CMDLET EXAMPLES

Expand table

PowerShell cmdlet Description .\TSS.ps1 -PerfMon [General:10] This parameter
means PerfMon CounterSetName= General and Interval= 10 seconds. When
[General:10] is omitted, the default kicks in, so -PerfMon has the same effect
as -PerfMon General -PerfIntervalSec 10. .\TSS.ps1 [-StopWaitTimeInSec <N>] This
parameter means that the argument -StopWaitTimeInSec is optional, but if it's
specified, a value for <N> ="the number of seconds" is mandatory.


EVENT TRACING FOR WINDOWS (ETW) TRACE

Expand table

ETW trace PowerShell cmdlet Description Enable a scenario trace. .\TSS.ps1
-Scenario <ScenarioName> The supported scenario names are listed using the
TSS.ps1 -ListSupportedScenarioTrace cmdlet. Enable component traces. .\TSS.ps1
<-ComponentName> <-ComponentName> ... The supported <-componentName> is listed
using the TSS.ps1 -ListSupportedTrace cmdlet. Start traces with no-wait mode.
.\TSS.ps1 -StartNoWait -Scenario <ScenarioName>

.\TSS.ps1 -Stop The prompt returns immediately, so you can sign out or use a
cmdlet like Shutdown.

The cmdlet .\TSS.ps1 -Stop stops the trace.

Note

To list all provider GUIDs of components and/or scenarios, use the
-ListETWProviders cmdlet. For example:

PowerShell Copy


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



SUPPORT TOOLS AND COMMANDS

Start support tools or commands (for example, ProcMon, ProcDump, netsh,
Performance Monitor (PerfMon), WPR, or Radar) to enhance log collection with
additional tools for specialized captures.

Expand table

PowerShell cmdlet Description -Fiddler Collect Fiddler trace. It requires
Fiddler to be installed.

Enable the traffic decryption option by selecting Tools > Options and selecting
Decrypt HTTPS Traffic on the HTTPS tab. -GPresult <Start|Stop|Both> Collect
SysInternals Handle.exe output on phase start, stop, or both. -Handle
<Start|Stop|Both> Collect SysInternals Handle.exe output on phase start, stop,
or both. -LiveKD <Start|Stop|Both> Start SysInternals LiveKD -ml (live kernel
dump).
<Start>: the dump is taken at the start of the repro.
<Stop>: the dump is taken at stop.
<Both>: the dump is taken at both start and stop. -Netsh
1. -NetshOptions '<Option string>'
2. -NetshMaxSizeMB <Int>
3. -noPacket Start network packet capturing.

1. Specify additional options for Netsh. For example, 'capturetype=both
captureMultilayer=yes provider=Microsoft-Windows-PrimaryNetworkIcon
provider={<GUID>}'.
2. The maximum log size for Netsh in megabytes (MB) (for example,
-NetshMaxSizeMB 4096). The default value is 2048.
3. Prevent packets from being captured with Netsh (only ETW traces in the
ScenarioName will be captured). -NetshScenario
1. -NetshOptions '<Option string>'
2. -NetshMaxSizeMB <Int>
3. -noPacket Start the Netsh scenario trace. The supported <ScenarioName> is
listed using the -ListSupportedNetshScenario cmdlet.

1. Specify additional options for Netsh. For example, 'capturetype=both
captureMultilayer=yes provider=Microsoft-Windows-PrimaryNetworkIcon
provider={<GUID>}'.
2. The maximum log size for Netsh in MB (for example, -NetshMaxSizeMB 4096). The
default value is 2048.
3. Prevent packets from being captured with Netsh (only ETW traces in the
scenario name will be captured). -PerfMon <CounterSetName> [-PerfIntervalSec N]
[-PerfMonMaxMB <N>] [-PerfMonCNF <[[hh:]mm:]ss>]
1. -PerfIntervalSec <Interval in sec>
2. -PerfMonMaxMB <N>
3. -PerfMonCNF <[[hh:]mm:]ss> Start Performance Monitor logs. The
<CounterSetName> can be listed using the -ListSupportedPerfCounter cmdlet.

1. Set the interval for the PerfMon log (the default value is 10 seconds).
2. Specify an int value for the maximum Perfmon log size in MB (the default
value is 2048).
3. Create a new file when the specified time has elapsed or when the max size of
<PerfMonMaxMB> is exceeded. -PerfMonLong <CounterSetName> [-PerfLongIntervalMin
N] [-PerfMonMaxMB <N>] [-PerfMonCNF <[[hh:]mm:]ss>]
1. -PerfLongIntervalMin <Interval in min> Performance Monitor with a long
interval.

1. Set the interval for the PerfMonLong log (the default value is 10 minutes).
-PktMon Collect packet monitoring data (on Windows Server 2019, Windows 10,
version 1809, and later versions). PktMon:Drop collects only dropped packets.
-PoolMon <Start|Stop|Both> Collect PoolMon on start, stop, or both. -ProcDump
<PID[]|ProcessName.exe[]|ServiceName[]>
1. -ProcDumpOption <Start|Stop|Both> -ProcDumpInterval <N>:<Interval in sec>
2. -ProcDumpInterval <N>:<Interval in sec>
3. -ProcDumpAppCrash Capture user dumps of a single item or comma-separated list
of items using SysInternals ProcDump.exe. By default, the dump is taken at the
start of the repro and stop. Enter ProcessName(s) with the .exe extension.

1. Start: the dump is taken at the start of the repro.
Stop: the dump is taken at stop.
Both (default): the dump is taken at both start and stop.
2. Use this option when the dump needs to be captured repeatedly.
N: the number of dumps
Int: the interval in seconds
The default value is 3:10.
3. This switch enables ProcDump -ma -e, which writes a full dump when the
process encounters an unhandled exception. -ProcMon
1. -ProcmonAltitude <N>
2. -ProcmonPath <folder path to Procmon.exe>
3. -ProcmonFilter <filter-file.pmc> Start SysInternals Procmon.exe.

1. Specify a string value for ProcmonAltitude (the default value is 385200). Use
fltmc instances to show filter driver altitude. Use a lower number than the
suspected specific driver. Value 45100 will show you virtually everything.
2. Specify a path to Procmon.exe (by default, TSS uses the built-in Procmon).
3. Specify a config file for Procmon (for example, ProcmonConfiguration.pmc)
located in the \config folder. -PSR Start Problems Steps Recorder. -Radar
<PID[]|ProcessName[]|ServiceName[]> Collect the leak diagnostic information
(rdrleakdiag.exe).

For example, -Radar AppIDSvc. -RASdiag Collect trace. The Netsh Ras diagnostics
set trace is enabled. -SDP <SpecialityName[]>
1. -SkipSDPList "<xxx>","<yyy>"
2. <SpecialityName> Collect Support Diagnostic Package (SDP) for the specified
specialty. For the complete list of SpecialityNames and SkipSDPList, use the
.\tss -help cmdlet.

Skip the comma-separated list of SDP module names that hang in your environment
while running the SDP report. -SysMon Collect SysInternals System Monitor
(SysMon) logs (sysmonConfig.xml in the config folder by default). -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) with the default -Full mode. Enter the ProcessName(s) with the .exe
extension, a single item (PID/name) or a comma-separated list of items.

Note:
Down-level operating system before Windows 10, version 1703 requires the
TSS_TTD.zip package.

1. Specify the folder path containing tttracer.exe (PartnerTTD). Typically, this
switch is only needed if you want to force a specific path.
2. Full = -dumpfull (=default)
Ring = ring buffer mode
onLaunch = -onLaunch (requires TSS_TTD)
3. The maximum log file size. The operation depends on -TTDMode. Full stops when
the maximum size is reached, and Ring keeps the maximum size in the ring buffer.
4. Use this option to add any additional options for TTD (TTT/iDNA). -Video
Start video capturing (requires .NET 3.5 to be installed). -WFPdiag Collect
traces with the netsh Wfp capture command. -WireShark Start WireShark. The
following parameters are configurable through the tss_config.cfg file.

1. WS_IF: used for -i. Specify the interface number (for example, _WS_IF=1).
2. WS_Filter: used for -f. Filter for the interface (for example,
_WS_Filter="port 443").
3. WS_Snaplen: used for -s. Limit the amount of data for each frame. This
parameter has better performance and is helpful for high-load situations (for
example, _WS_Snaplen=128).
4. WS_TraceBufferSizeInMB: used for -b FileSize (multiplied by 1024). Switch to
the next file after the number of megabytes. (for example,
_WS_TraceBufferSizeInMB=512, default=512 MB)
5. WS_PurgeNrFilesToKeep: used for -b files. Replace after the number of the
files. (for example, _WS_PurgeNrFilesToKeep=20)
6. WS_Options: any other options for -i (for example, _WS_Options="-P").

Example:
To collect WireShark on interfaces 15 and 11, input when TSS prompts for an
interface number: 15 -i 11.

By default, Wireshark starts 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>' Start a WPR profile trace. <WPRprofile> is one
of
General|BootGeneral|CPU|Device|Memory|Network|Registry|Storage|Wait|SQL|Graphic|Xaml|VSOD_CPU|VSOD_Leak.

1. Skip generating symbol files (PDB files).
2. Specify options for WPR.exe. For example, -WPROptions
'-onoffproblemdescription "test description"'.

Example 1:
.\TSS.ps1 -StartAutoLogger -WPR BootGeneral -WPROptions '-addboot CPU' will
capture WPR boot traces with the General and CPU profiles.

Example 2:
.\TSS.ps1 -WPR General -WPROptions '-Start CPU -start Network -start Minifilter'
will combine profiles (General, CPU, Network, and Minifilter). -Xperf <Profile>
1. -XperfMaxFileMB <Size>
2. -XperfTag <Pool Tag>
3. -XperfPIDs <PID>
4. -XperfOptions <Option string> Start Xperf. <Profile> is one of
General|CPU|Disk|Leak|Memory|Network|Pool|PoolNPP|Registry|SMB2|SBSL|SBSLboot.

1. Specify the maximum log size in MB (the default value is 2048 MB). The
default value for SBSL* scenarios is 16384 (same for ADS_/NET_SBSL).
2. Specify PoolTag to be logged. This parameter is used with the Pool or PoolNPP
profile (for example, -Xperf Pool -XperfTag TcpE+AleE+AfdE+AfdX).
3. Specify ProcessID. This parameter is used with the Leak profile (for example,
-Xperf Leak -XperfPIDs <PID>).
4. Specify other option strings for Xperf. -xray Start xray to diagnose a system
for known issues.

The following example illustrates how to activate multiple support tools
(commands) during the same trace.

PowerShell Copy


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



PARAMETERS WITHIN TSS OPTIONS

Defines specific parameters within the TSS options to control, enhance, or
simplify data collection.

Expand table

Parameter Description -AcceptEula Don't ask at first; run to accept the
Disclaimer (useful for the -RemoteRun execution). -AddDescription <description>
Add a brief description of the repro issue. The name of the resulting zip file
will include such a description. -Assist Accessibility mode. -BasicLog Collect
the full basic log (the mini basic log is always collected by default).
-CollectComponentLog Use with -Scenario. By default, component collect functions
aren't called in the -Scenario trace. This switch enables the component collect
functions to be called. -CollectDump Collect system dump (memory.dmp) after
stopping all traces. -CollectDump can be used with -Start and -Stop.
-CollectEventLog <Eventlog[]> Collect specified event logs. The asterisk (*)
wildcard character can be used for the event log name.

Example:
-CollectEventLog Security,*Cred*
Collect security and all event logs that match *Cred* like
'Microsoft-Windows-CertificateServicesClient-CredentialRoaming/Operational'.
-CommonTask <<POD>|Full|Mini> Run common tasks before starting and after
stopping the trace.

<POD>: currently, only "NET" is available. Collect additional information before
starting and after stopping the trace.
Full: the full basic log is collected after stopping the trace.
Mini: the mini basic log is collected after stopping the trace. -Crash Trigger a
system crash with NotMyFault at the stop of repro, or after all events are
signaled if used with -WaitEvent.

Caution:
This switch will force a memory dump (the system will restart), so open files
won't be saved. -CustomETL Add custom ETL trace providers. For example,
.\TSS.ps1 -WIN_CustomETL -CustomETL
'{<GUID>}','Microsoft-Windows-PrimaryNetworkIcon' (a comma-separated list of
single-quoted '{GUID}' and/or 'Provider-Name'). -DebugMode Run with debug mode
for a developer. -VerboseMode Show more verbose or informational output while
processing TSS functions. -Discard Used to discard a dataset at phase -Stop.
*Stop- or *Collect- functions won't run. xray and psSDP will be skipped.
-EnableCOMDebug Module to turn on COM debug mode. -ETLOptions
<circular|newfile>:<ETLMaxSizeMB>:<ETLNumberToKeep>:<ETLFileMax> Set options
passed to logman commands. The default value for circular ETLMaxSizeMB is 1024,
and the default value for newfile ETLMaxSizeMB is 512.

-StartAutologger only supports -ETLOptions
circular:<ETLMaxSize>:<ETLNumberToKeep>:<ETLFileMax>, but ETLNumberToKeep won't
be executed expectedly.

Example.1:
-ETLOptions newfile:2048:5

Run newfile logs with a size of 2048 MB. Keep only the last five *.etl files.
The default setting for circular mode is circular:1024, and for newfile mode is
newfile:512:10.

Example 2:
-StartAutologger -ETLOptions circular:4096
Autologger won't obey :<ETLNumberToKeep> and it only accepts mode circular.

Example 3:
-StartAutologger -ETLOptions circular:4096:10:3
Autologger won't obey :<ETLNumberToKeep> and it only accepts mode circular and
"3" as the number of autologger generations. -ETWlevel <Info|Warning|Error> Set
Event Tracing Level. The default value is 0xFF. -EvtDaysBack <N> Convert event
logs only for the last N days. The default value is 30 days. It also applies to
the SDP report.

Note:
Security event logs will be skipped. -ExternalScript <path to external PS file>
Run the specified PowerShell script before starting the trace. -LogFolderPath
<Drive:\path to log folder> Use a different log folder path for the resulting
output data instead of the default location (C:\MS_DATA). It's useful when drive
C: is low on free disk space. -MaxEvents <N> As an argument for '-WaitEvent
Evt:..', the parameter will investigate the last N number of events with the
same event ID (the default value is 1). -Mini Collect only minimal data. Skip
noPSR, noSDP, noVideo, noXray, noZip, and noBasicLog. -Mode
<Basic|Medium|Advanced|Full|Verbose|VerboseEx|Hang|Restart
|Swarm|Kube|GetFarmdata|Permission|traceMS> Run scripts in Basic, Medium,
Advanced, Full, or Verbose(Ex) mode for data collection. Restart will restart
the associated service. -RemoteRun Use when TSS is being executed on a remote
host, for example, via PsExec, in the Azure Serial Console, or with PowerShell
remoting. This parameter will inhibit PSR, video recording, starting TssClock,
and opening Explorer with final results. In such a case, also consider
-AcceptEula. -StartNoWait Don't wait, and prompt will return immediately. This
parameter is useful for the scenario where a user needs to log off. -WaitEvent
Monitor for the specified event or stop-trigger; if it's signaled, traces will
be stopped automatically.

There's a wide variety of options to trigger an automatic stop. Run .\TSS.ps1
-Find Monitoring to see the usage. -Update
1. -UpdMode <Online|Lite> Update the TSS package. It can be used together with
-UpdMode Online|Lite.

Online is the default, and Lite is the Upd lite version. -Help
1. Common
2. ALL
3. Monitoring
4. Config
5. Keyword Provide help messages on various scenarios.

1. Common general help message.
2. All available options.
3. Show help messages for monitoring and remote features.
4. Help with all config parameters.
5. You can enter any keyword, and it will show the help information about that
keyword. -Status Show the status of the running trace, if any.


HELPER SCRIPTS AND TOOLS INCLUDED

Expand table

Helper script and tool Description \scripts\tss_EventCreate.ps1 Create an event
log entry in event log files with event IDs.
\scripts\tss_SMB_Fix-SmbBindings.ps1 Useful for fixing corrupted SMB bindings
(LanmanServer, LanmanWorkstation, or NetBT). See also -Collect
NET_SMBsrvBinding. \BINx64\kdbgctrl.exe Use the switch -sd <dump type> to set
the kernel crash dump type Full|Kernel, for example, kdbgctrl -sd Full.
\BINx64\NTttcp.exe Performance tests. For more information, see Test VM network
throughput by using NTTTCP. \BINx64\latte.exe Latency tests. For more
information, see Test network latency between Azure VMs. \BINx64\notmyfaultc.exe
Force a memory dump. See NotMyFault v4.21 if the TSS command line includes
-Crash.


TROUBLESHOOT UNEXPECTED POWERSHELL ERRORS

 1. Run this cmdlet after a failure:
    
    PowerShell Copy
    
    
    .\TSS.ps1 -Stop -noBasiclog -noXray
    

 2. Close the opened elevated PowerShell window and start a new elevated
    PowerShell window.

 3. Allow PowerShell scripts to run on your system with the proper
    ExecutionPolicy.

 4. If you encounter an error indicating that the running script is disabled,
    try the following methods.


METHOD 1

 1. Run the following cmdlet:
    
    PowerShell Copy
    
    
    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -force -Scope Process
    

 2. Verify the settings with the Get-ExecutionPolicy -List cmdlet that no
    ExecutionPolicy with higher precedence is blocking the execution of this
    script.

 3. Run the .\TSS.ps1 <Desired Parameters> cmdlet again.


METHOD 2 (ALTERNATIVE)

If scripts are blocked by MachinePolicy, run the following cmdlets in an
elevated PowerShell window:

PowerShell Copy


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



METHOD 3 (ALTERNATIVE)

If scripts are blocked by UserPolicy, run the following cmdlets in an elevated
PowerShell window:

PowerShell Copy


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


Note

Method 2 is only a workaround for the Policy MachinePolicy - RemoteSigned. If
you also see UserPolicy - RemoteSigned, ask the domain admin for a temporary
Group Policy Object (GPO) exemption.

In rare situations, you can try the -ExecutionPolicy Bypass cmdlet.

If your organization forces the GPO PowerShell constrained language mode
(System.Management.Automation.EngineIntrinsics.SessionState.LanguageMode -ne
'FullLanguage'), ask the domain admin for a temporary GPO exemption.


FREQUENTLY ASKED QUESTIONS (FAQS)

 * Q1: Does the TSS script change any setup or configuration of my system?
   
   A1: No, but a registry setting is required for enabling debug logging in some
   scenarios. The script sets the necessary key at the start of the data
   collection and reverts the key to the default value at the end of the data
   collection. It may also delete some caches (for example, the ARP cache or the
   name resolution cache) at the start of the data collection to observe the
   problem from the logs.

 * Q2: Does the TSS toolset put an additional load on the server?
   
   A2: Some loggings (for example, network capturing, ETW tracing collection,
   and so on) that are started by the TSS toolset might put a minor load on the
   system. The load is usually at ignorable levels. Contact your support
   representative when you see high CPU, memory, or disk usage after starting
   the TSS toolset.

 * Q3: Why can't we reproduce the issue when the TSS toolset is running?
   
   A3: The TSS toolset may delete all cached information at the start. It also
   starts the network capturing in a promiscuous mode, which changes the Network
   Interface Card (NIC) default behaviors. These changes might affect the issue,
   and the problems may disappear. Especially for particular timing issues,
   problems disappear because of the TSS toolset's data collection. The data
   collection starts logging, which might affect the issue indirectly and change
   the situation.

 * Q4: Why is the TSS toolset not responding for a long time?
   
   A4: In some cases, the operating system's built-in commands run by the TSS
   toolset might not respond or take a long time to complete. Contact your
   support representative if you experience this issue.

 * Q5: Do I need to worry about disk space or anything else when I run the TSS
   toolset for a long time?
   
   A5: All TSS tracing is configured to run with ring buffers, so you can run
   the toolset for a long time if needed. The TSS toolset also calculates disk
   space at the beginning of the data collection and may exit if there isn't
   sufficient disk space. If you see high disk usage after starting the TSS
   toolset or have any other concerns about the disk usage of the toolset,
   contact your support representative.

 * Q6: What should I do if I receive the following security warning when running
   the .\TSS.ps1 script?
   
   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 rare situations, you may receive this security warning. You may
   unblock the script by using the cmdlet PS C:\> Unblock-File -Path
   C:\TSS\TSS.ps1. This script will unblock all other modules by using the
   cmdlet Get-ChildItem -Recurse -Path C:\TSS\*.ps* | Unblock-File
   -Confirm:$false.


END USER LICENSE AGREEMENT (EULA)

Select below to view MICROSOFT SOFTWARE LICENSE TERMS.


Microsoft Diagnostic Scripts and Utilities

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

 1.  INSTALLATION AND USE RIGHTS. Subject to the terms and restrictions set
     forth in this license, Microsoft Corporation ("Microsoft") grants you
     ("Customer" or "you") a non-exclusive, non-assignable, fully paid-up
     license to use and reproduce the script or utility provided under this
     license (the "Software"), solely for Customer's internal business purposes,
     to help Microsoft troubleshoot issues with one or more Microsoft products,
     provided that such license to the Software does not include any rights to
     other Microsoft technologies (such as products or services). "Use" means to
     copy, install, execute, access, display, run or otherwise interact with the
     Software.
     
     You may not sublicense the Software or any use of it through distribution,
     network access, or otherwise. Microsoft reserves all other rights not
     expressly granted herein, whether by implication, estoppel or otherwise.
     You may not reverse engineer, decompile or disassemble the Software, or
     otherwise attempt to derive the source code for the Software, except and to
     the extent required by third party licensing terms governing use of certain
     open source components that may be included in the Software, or remove,
     minimize, block, or modify any notices of Microsoft or its suppliers in the
     Software. Neither you nor your representatives may use the Software
     provided hereunder: (i) in a way prohibited by law, regulation,
     governmental order or decree; (ii) to violate the rights of others; (iii)
     to try to gain unauthorized access to or disrupt any service, device, data,
     account or network; (iv) to distribute spam or malware; (v) in a way that
     could harm Microsoft's IT systems or impair anyone else's use of them; (vi)
     in any application or situation where use of the Software could lead to the
     death or serious bodily injury of any person, or to physical or
     environmental damage; or (vii) to assist, encourage or enable anyone to do
     any of the above.

 2.  DATA. Customer owns all rights to data that it may elect to share with
     Microsoft through using the Software. You can learn more about data
     collection and use in the help documentation and the privacy statement at
     https://aka.ms/privacy. Your use of the Software operates as your consent
     to these practices.

 3.  FEEDBACK. If you give feedback about the Software to Microsoft, you grant
     to Microsoft, without charge, the right to use, share and commercialize
     your feedback in any way and for any purpose. You will not provide any
     feedback that is subject to a license that would require Microsoft to
     license its software or documentation to third parties due to Microsoft
     including your feedback in such software or documentation.

 4.  EXPORT RESTRICTIONS. Customer must comply with all domestic and
     international export laws and regulations that apply to the Software, which
     include restrictions on destinations, end users, and end use. For further
     information on export restrictions, visit https://aka.ms/exporting.

 5.  REPRESENTATIONS AND WARRANTIES. Customer will comply with all applicable
     laws under this agreement, including in the delivery and use of all data.
     Customer or a designee agreeing to these terms on behalf of an entity
     represents and warrants that it (i) has the full power and authority to
     enter into and perform its obligations under this agreement, (ii) has full
     power and authority to bind its affiliates or organization to the terms of
     this agreement, and (iii) will secure the permission of the other party
     prior to providing any source code in a manner that would subject the other
     party's intellectual property to any other license terms or require the
     other party to distribute source code to any of its technologies.

 6.  DISCLAIMER OF WARRANTY. THE SOFTWARE IS PROVIDED "AS IS," WITHOUT WARRANTY
     OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
     WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
     NONINFRINGEMENT. IN NO EVENT SHALL MICROSOFT OR ITS LICENSORS BE LIABLE FOR
     ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
     DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
     SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
     CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
     LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
     OUT OF THE USE OF THE SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
     DAMAGE.

 7.  LIMITATION ON AND EXCLUSION OF DAMAGES. IF YOU HAVE ANY BASIS FOR
     RECOVERING DAMAGES DESPITE THE PRECEDING DISCLAIMER OF WARRANTY, YOU CAN
     RECOVER FROM MICROSOFT AND ITS SUPPLIERS ONLY DIRECT DAMAGES UP TO U.S.
     .00. YOU CANNOT RECOVER ANY OTHER DAMAGES, INCLUDING CONSEQUENTIAL, LOST
     PROFITS, SPECIAL, INDIRECT, OR INCIDENTAL DAMAGES. This limitation applies
     to (i) anything related to the Software, services, content (including code)
     on third party Internet sites, or third party applications; and (ii) claims
     for breach of contract, warranty, guarantee, or condition; strict
     liability, negligence, or other tort; or any other claim; in each case to
     the extent permitted by applicable law. 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. This section applies if you
     live in (or, if a business, your principal place of business is in) the
     United States. 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.  LAW AND VENUE. 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.





--------------------------------------------------------------------------------


FEEDBACK

Was this page helpful?

Yes No
Provide product feedback

--------------------------------------------------------------------------------


ADDITIONAL RESOURCES



--------------------------------------------------------------------------------

Training

Module

Explore support and diagnostic tools - Training

This module introduces the tools for troubleshooting the Windows client
operating system and provides guidance on how to use them.



English (United States)
California Consumer Privacy Act (CCPA) Opt-Out Icon Your Privacy Choices
Theme
 * Light
 * Dark
 * High contrast

 * Manage cookies
 * Previous Versions
 * Blog
 * Contribute
 * Privacy
 * Terms of Use
 * Trademarks
 * © Microsoft 2024


ADDITIONAL RESOURCES



--------------------------------------------------------------------------------

Training

Module

Explore support and diagnostic tools - Training

This module introduces the tools for troubleshooting the Windows client
operating system and provides guidance on how to use them.




IN THIS ARTICLE



English (United States)
California Consumer Privacy Act (CCPA) Opt-Out Icon Your Privacy Choices
Theme
 * Light
 * Dark
 * High contrast

 * Manage cookies
 * Previous Versions
 * Blog
 * Contribute
 * Privacy
 * Terms of Use
 * Trademarks
 * © Microsoft 2024