┌─ MD ───────────────────────────────────────────────────────────────────────┐│ --- ││ title: "COLLECT DATA TO ANALYZE AND TROUBLESHOOT PERFORMANCE SCENARIOS" ││ source: "MICROSOFT LEARN" ││ url: "https://learn.microsoft.com/en-us/troubleshoot/windows-client/performance/pe ││ rformance-overview" ││ retrieved: "2026-04-25" ││ tags: ["windows", "troubleshooting", "performance", "monitoring"] ││ --- ││ ││ ## Collect Data to Analyze and Troubleshoot Performance Scenarios ││ This article helps gather information about your issue by using the TroubleShootin ││ gScript (TSS) toolset before contacting Microsoft support. ││ ││ ### Prerequisites ││ ││ Refer to [Introduction to TroubleShootingScript toolset (TSS)](introduction-to-tro ││ ubleshootingscript-toolset-tss#prerequisites) for prerequisites for the toolset to ││ run properly. ││ ││ ### Scenario: System reliability (crashes, errors, bug checks, or blue screens, an ││ d unexpected restarts) ││ ││ #### TSS cmdlet ││ ││ ```powershell ││ TSS.ps1 -SDP Perf ││ ``` ││ ││ #### TSS cmdlet description ││ ││ Use this cmdlet when your server or client has a performance issue, slow startup, ││ or a [[stop-code-error-or-bug-check-troubleshooting|bug check]] (also known as blu ││ escreen). ││ ││ ### Scenario: System performance (slow, unresponsive, high CPU, and resource leak) ││ ││ #### TSS cmdlet ││ ││ ```powershell ││ .\TSS.ps1 -Scenario PRF_General ││ ``` ││ ││ #### TSS cmdlet description ││ ││ The `PRF_General` scenario can be useful if you experience unexplained performance ││ degradation across multiple components, or intermittent issues that are hard to r ││ eproduce or isolate. You might experience multi-symptom scenarios involving CPU, m ││ emory, disk, or user interface (UI) responsiveness. This scenario is also useful i ││ f you're unsure which specific performance scenario applies. ││ ││ Switch to the high CPU cmdlet if you know that the high CPU is the problem. ││ ││ ### Scenario: Black screen after logon ││ ││ #### TSS cmdlet ││ ││ ```powershell ││ .\TSS.ps1 -Scenario PRF_UWP ││ ``` ││ ││ ```powershell ││ .\TSS.ps1 -set crashmode ││ ``` ││ ││ ```powershell ││ .\TSS.ps1 -Scenario PRF_UWP -crash ││ ``` ││ ││ ```powershell ││ .\TSS.ps1 -StartAutoLogger -Scenario PRF_UWP -crash ││ ``` ││ ││ #### TSS cmdlet description ││ ││ If the black screen after logon lasts less than five minutes, run the scenario and ││ optionally collect a dump file if the delay is long enough to ensure the issue is ││ captured. If the duration exceeds five minutes, stop the reproduction at five min ││ utes and allow the data collection and dump capture to occur. ││ ││ Before the dump capture, make sure to enable a complete dump collection using the ││ `-crashmode` option, and then run the scenario with the `-crash` flag. ││ ││ Use the `-StartAutoLogger` parameter to schedule the data capture after the next r ││ estart. ││ ││ ### Scenario: App, process, and service reliability (crashes and errors) ││ ││ #### TSS cmdlet ││ ││ ```powershell ││ .\TSS.ps1 -set wer ││ ``` ││ ││ ```powershell ││ .\TSS.ps1 -Scenario PRF_General ││ ``` ││ ││ #### TSS cmdlet description ││ ││ If an application crashes, ensure the system is configured to capture complete use ││ r dumps (`-set wer`) and then capture and upload them for analysis. ││ ││ Use the `PRF_General` scenario to gather more information on the system. ││ ││ ### Scenario: App, process, and service performance (slow and unresponsive) ││ ││ #### TSS cmdlet ││ ││ ```powershell ││ .\TSS.ps1 -Scenario PRF_General ││ ``` ││ ││ #### TSS cmdlet description ││ ││ The `PRF_General` scenario is ideal for multi-symptom scenarios involving CPU, mem ││ ory, disk, or UI responsiveness or where you're unsure which specific performance ││ scenario applies. ││ ││ ### Scenario: Boot problems ││ ││ #### TSS cmdlet ││ ││ ```powershell ││ .\TSS.ps1 -Scenario PRF_Boot ││ .\TSS.ps1 -StartAutoLogger -Scenario PRF_Boot ││ ``` ││ ││ #### TSS cmdlet description ││ ││ The `PRF_Boot` scenario is used to collect diagnostic data related to boot-time pe ││ rformance issues on Windows systems. Examples include slow boot times, black scree ││ ns during or after boot and missing or delayed services at startup. ││ ││ Use the `-StartAutologger` switch to schedule data collection after the next resta ││ rt. ││ ││ ### Scenario: Performance library (Perflib) counters ││ ││ #### TSS cmdlet ││ ││ ```powershell ││ .\TSS.ps1 -Scenario PRF_Perflib ││ ``` ││ ││ #### TSS cmdlet description ││ ││ The `PRF_Perflib` scenario is useful for troubleshooting problems like missing or ││ corrupted performance counters or where Performance Monitor (PerfMon) shows blank ││ or incomplete data. ││ ││ Your applications might fail to retrieve performance data, or you see high CPU usa ││ ge or memory leaks linked to **perflib.dll**, or event log errors like: ││ ││ - Event ID 1008: "The Open Procedure for service failed..." ││ - Event ID 1023: "Windows cannot load the extensible counter DLL..." │└────────────────────────────────────────────────────────────────────────────────────┘
┌─ MD ─────────────────────────────────┐│ --- ││ title: "COLLECT DATA TO ANALYZE AND TROUBLES ││ HOOT PERFORMANCE SCENARIOS" ││ source: "MICROSOFT LEARN" ││ url: "https://learn.microsoft.com/en-us/trou ││ bleshoot/windows-client/performance/performa ││ nce-overview" ││ retrieved: "2026-04-25" ││ tags: ["windows", "troubleshooting", "perfor ││ mance", "monitoring"] ││ --- ││ ││ ## Collect Data to Analyze and Troubleshoot ││ Performance Scenarios ││ This article helps gather information about ││ your issue by using the TroubleShootingScrip ││ t (TSS) toolset before contacting Microsoft ││ support. ││ ││ ### Prerequisites ││ ││ Refer to [Introduction to TroubleShootingScr ││ ipt toolset (TSS)](introduction-to-troublesh ││ ootingscript-toolset-tss#prerequisites) for ││ prerequisites for the toolset to run properl ││ y. ││ ││ ### Scenario: System reliability (crashes, e ││ rrors, bug checks, or blue screens, and unex ││ pected restarts) ││ ││ #### TSS cmdlet ││ ││ ```powershell ││ TSS.ps1 -SDP Perf ││ ``` ││ ││ #### TSS cmdlet description ││ ││ Use this cmdlet when your server or client h ││ as a performance issue, slow startup, or a [ ││ [stop-code-error-or-bug-check-troubleshootin ││ g|bug check]] (also known as bluescreen). ││ ││ ### Scenario: System performance (slow, unre ││ sponsive, high CPU, and resource leak) ││ ││ #### TSS cmdlet ││ ││ ```powershell ││ .\TSS.ps1 -Scenario PRF_General ││ ``` ││ ││ #### TSS cmdlet description ││ ││ The `PRF_General` scenario can be useful if ││ you experience unexplained performance degra ││ dation across multiple components, or interm ││ ittent issues that are hard to reproduce or ││ isolate. You might experience multi-symptom ││ scenarios involving CPU, memory, disk, or us ││ er interface (UI) responsiveness. This scena ││ rio is also useful if you're unsure which sp ││ ecific performance scenario applies. ││ ││ Switch to the high CPU cmdlet if you know th ││ at the high CPU is the problem. ││ ││ ### Scenario: Black screen after logon ││ ││ #### TSS cmdlet ││ ││ ```powershell ││ .\TSS.ps1 -Scenario PRF_UWP ││ ``` ││ ││ ```powershell ││ .\TSS.ps1 -set crashmode ││ ``` ││ ││ ```powershell ││ .\TSS.ps1 -Scenario PRF_UWP -crash ││ ``` ││ ││ ```powershell ││ .\TSS.ps1 -StartAutoLogger -Scenario PRF_UWP ││ -crash ││ ``` ││ ││ #### TSS cmdlet description ││ ││ If the black screen after logon lasts less t ││ han five minutes, run the scenario and optio ││ nally collect a dump file if the delay is lo ││ ng enough to ensure the issue is captured. I ││ f the duration exceeds five minutes, stop th ││ e reproduction at five minutes and allow the ││ data collection and dump capture to occur. ││ ││ Before the dump capture, make sure to enable ││ a complete dump collection using the `-cras ││ hmode` option, and then run the scenario wit ││ h the `-crash` flag. ││ ││ Use the `-StartAutoLogger` parameter to sche ││ dule the data capture after the next restart ││ . ││ ││ ### Scenario: App, process, and service reli ││ ability (crashes and errors) ││ ││ #### TSS cmdlet ││ ││ ```powershell ││ .\TSS.ps1 -set wer ││ ``` ││ ││ ```powershell ││ .\TSS.ps1 -Scenario PRF_General ││ ``` ││ ││ #### TSS cmdlet description ││ ││ If an application crashes, ensure the system ││ is configured to capture complete user dump ││ s (`-set wer`) and then capture and upload t ││ hem for analysis. ││ ││ Use the `PRF_General` scenario to gather mor ││ e information on the system. ││ ││ ### Scenario: App, process, and service perf ││ ormance (slow and unresponsive) ││ ││ #### TSS cmdlet ││ ││ ```powershell ││ .\TSS.ps1 -Scenario PRF_General ││ ``` ││ ││ #### TSS cmdlet description ││ ││ The `PRF_General` scenario is ideal for mult ││ i-symptom scenarios involving CPU, memory, d ││ isk, or UI responsiveness or where you're un ││ sure which specific performance scenario app ││ lies. ││ ││ ### Scenario: Boot problems ││ ││ #### TSS cmdlet ││ ││ ```powershell ││ .\TSS.ps1 -Scenario PRF_Boot ││ .\TSS.ps1 -StartAutoLogger -Scenario PRF_Boo ││ t ││ ``` ││ ││ #### TSS cmdlet description ││ ││ The `PRF_Boot` scenario is used to collect d ││ iagnostic data related to boot-time performa ││ nce issues on Windows systems. Examples incl ││ ude slow boot times, black screens during or ││ after boot and missing or delayed services ││ at startup. ││ ││ Use the `-StartAutologger` switch to schedul ││ e data collection after the next restart. ││ ││ ### Scenario: Performance library (Perflib) ││ counters ││ ││ #### TSS cmdlet ││ ││ ```powershell ││ .\TSS.ps1 -Scenario PRF_Perflib ││ ``` ││ ││ #### TSS cmdlet description ││ ││ The `PRF_Perflib` scenario is useful for tro ││ ubleshooting problems like missing or corrup ││ ted performance counters or where Performanc ││ e Monitor (PerfMon) shows blank or incomplet ││ e data. ││ ││ Your applications might fail to retrieve per ││ formance data, or you see high CPU usage or ││ memory leaks linked to **perflib.dll**, or e ││ vent log errors like: ││ ││ - Event ID 1008: "The Open Procedure for ser ││ vice failed..." ││ - Event ID 1023: "Windows cannot load the ex ││ tensible counter DLL..." │└──────────────────────────────────────────────┘