TSS) (TroubleShootingScript 工具集简介

本文介绍 TroubleShootingScript (TSS) 工具集,并提供常见问题的解答。

适用于: 受支持的 Windows Server 和 Windows 客户端版本

TSS 工具集包括基于 PowerShell 的工具以及用于数据收集和诊断的框架。 该工具集旨在简化数据收集,并帮助高效安全地解决案例。

该工具集包括多个 PowerShell 脚本和可执行文件,这些文件均由 Microsoft 签名。 根据所选开关,TSS 使用一个或多个脚本和可执行文件来收集所需的日志。

可以将工具集下载为 zip 文件, (从 TSS.zip) https://aka.ms/getTSS

先决条件

下面是工具集正常运行的一些先决条件:

  • TSS 工具集必须由在本地系统上具有管理员特权的帐户在提升的 PowerShell 窗口中运行。 不支持在Windows PowerShell集成脚本环境中运行 TSS 工具集 (ISE) 。 必须接受最终用户许可协议 (EULA) 。 接受 EULA 后,TSS 工具集不会再次提示输入 EULA。

  • 应通过从提升的 PowerShell 命令提示符运行 cmdletSet-ExecutionPolicy -scope Process -ExecutionPolicy RemoteSigned -Force,在进程级别将 PowerShell 脚本执行策略设置为 RemoteSigned

    注意

    进程级别更改仅影响当前 PowerShell 会话。

如何启动 TSS 工具集

可以根据方案使用不同的开关启动 TSS.ps1 。 谓 -Start 词是默认谓词和可选谓词,可以根据需要替换为互补谓词。 互补 -Start 谓词为 -StartAutoLogger-StartDiag-StartNoWait-CollectLog

谓词 说明
-Start -Start 词启动 Windows (ETW 的事件跟踪) 组件跟踪或支持工具,例如 Windows 性能记录器 (WPR) 。

[-Start] 词是可选的,但可以替换为补充 -start 选项。
-StartAutoLogger 若要在启动时收集这些日志,请使用 -StartAutoLogger 替换 -Start

将其与 .\TSS.ps1 -Stop cmdlet 结合使用,在重现问题后停止跟踪。
-StartDiag 虽然此开关目前没有太大用途,但将来将在多个方案中使用。 从今天起,它可以与其他参数(例如NET_DFSn)结合使用,以获取 DFSN 命名空间的诊断。
-StartNoWait 此参数允许跟踪在注销时保持活动状态。

将其与 .\TSS.ps1 -Stop cmdlet 结合使用,在重现问题后停止跟踪。
-CollectLog 此参数通常与参数 DND_SetupReport一起使用。

示例:
.\TSS.ps1 -Collectlog DND_SetupReport

停止数据收集时,也会自动收集与跟踪相关的日志。

使用 TSS 工具集的语法

参数 说明
<placeholder> 需要用实际方案名称、跟踪组件、命令或值替换占位符 () 的尖括号 <> 中的字符串。
[optional] 方括号中的关键字 (keyword) 或值 ([ ]) 是可选的。 例如, [module:int] 表示模块和间隔是可选的。 如果 [<xx>:<yy>] 省略 ,则使用默认值。
| 此参数表示 'OR'。 可以选择其中一个可用选项。
: 两个值之间的分隔符。

Cmdlet 示例

PowerShell cmdlet 说明
.\TSS.ps1 -PerfMon [General:10] 此参数表示 PerfMon CounterSetName= GeneralInterval= 10 秒。 省略 时 [General:10] ,默认将启动,因此 -PerfMon 具有与 相同的效果 -PerfMon General -PerfIntervalSec 10
.\TSS.ps1 [-StopWaitTimeInSec <N>] 此参数表示参数 -StopWaitTimeInSec 是可选的,但如果指定了参数,则必须指定 =“秒数”的值 <N>

Windows (ETW) 跟踪的事件跟踪

ETW 跟踪 PowerShell cmdlet 说明
启用方案跟踪。 .\TSS.ps1 -Scenario <ScenarioName> 使用 TSS.ps1 -ListSupportedScenarioTrace cmdlet 列出受支持的方案名称。
启用组件跟踪。 .\TSS.ps1 <-ComponentName> <-ComponentName> ... 使用 TSS.ps1 -ListSupportedTrace cmdlet 列出支持的 <-componentName>
在无等待模式下启动跟踪。 .\TSS.ps1 -StartNoWait -Scenario <ScenarioName>

.\TSS.ps1 -Stop
提示将立即返回,因此你可以注销或使用 cmdlet(如 Shutdown)。

cmdlet .\TSS.ps1 -Stop 停止跟踪。

注意

若要列出组件和/或方案的所有提供程序 GUID,请使用 -ListETWProviders cmdlet。 例如:

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

支持工具和命令

启动支持工具或命令 (,例如 ProcMon、ProcDump、netsh、性能监视器 (PerfMon) 、WPR 或 Radar) ,以便使用其他专用捕获工具增强日志收集。

PowerShell cmdlet 说明
-Fiddler 收集 Fiddler 跟踪。 它需要安装 Fiddler。

通过选择“工具>选项”,然后在“HTTPS”选项卡上选择“解密 HTTPS 流量”来启用流量解密选项。
-GPresult <Start|Stop|Both> 收集 SysInternals Handle.exe 相位 startstopboth上的输出。
-Handle <Start|Stop|Both> 收集 SysInternals Handle.exe 相位 startstopboth上的输出。
-LiveKD <Start|Stop|Both> 启动 SysInternals LiveKD -ml (实时内核转储) 。
<Start>:转储在重现开始时进行。
<Stop>:转储在停止时进行。
<Both>:在启动和停止时都进行转储。
-Netsh
1. -NetshOptions '<Option string>'
2. -NetshMaxSizeMB <Int>
3. -noPacket
启动网络数据包捕获。

1. 为 Netsh指定其他选项。 例如,'capturetype=both captureMultilayer=yes provider=Microsoft-Windows-PrimaryNetworkIcon provider={<GUID>}'
2. 最大日志大小( Netsh 以 MB 为单位 (MB) (),例如 -NetshMaxSizeMB 4096 ,) 。 默认值为 2048。
3. 防止使用 Netsh (中的 ETW 跟踪 ScenarioName 捕获数据包) 。
-NetshScenario
1. -NetshOptions '<Option string>'
2. -NetshMaxSizeMB <Int>
3. -noPacket
Netsh启动方案跟踪。 使用 -ListSupportedNetshScenario cmdlet 列出支持的 <ScenarioName>

1. 为 Netsh指定其他选项。 例如,'capturetype=both captureMultilayer=yes provider=Microsoft-Windows-PrimaryNetworkIcon provider={<GUID>}'
2. 的最大日志大小( Netsh 以 MB (为单位),例如 -NetshMaxSizeMB 4096 ,) 。 默认值为 2048。
3. 防止使用 Netsh (方案名称中的 ETW 跟踪捕获数据包) 。
-PerfMon <CounterSetName> [-PerfIntervalSec N] [-PerfMonMaxMB <N>] [-PerfMonCNF <[[hh:]mm:]ss>]
1. -PerfIntervalSec <Interval in sec>
2. -PerfMonMaxMB <N>
3. -PerfMonCNF <[[hh:]mm:]ss>
启动性能监视器日志。 <CounterSetName>可以使用 cmdlet 列出 -ListSupportedPerfCounter

1. 将日志的 PerfMon 间隔设置为 (默认值为 10 秒) 。
2. 为最大 Perfmon 日志大小指定 int 值(以 MB 为单位), (默认值为 2048) 。
3. 在指定的时间已过或超过 的最大大小 <PerfMonMaxMB> 时创建新文件。
-PerfMonLong <CounterSetName> [-PerfLongIntervalMin N] [-PerfMonMaxMB <N>] [-PerfMonCNF <[[hh:]mm:]ss>]
1. -PerfLongIntervalMin <Interval in min>
具有较长间隔的性能监视器。

1. 将日志的 PerfMonLong 间隔设置为 (默认值为 10 分钟) 。
-PktMon 在 Windows Server 2019、Windows 10 版本 1809 及更高版本) 上收集数据包监视数据 (。 PktMon:Drop 仅收集丢弃的数据包。
-PoolMon <Start|Stop|Both> 在 、 stopbothstart收集 PoolMon
-ProcDump <PID[]|ProcessName.exe[]|ServiceName[]>
1. -ProcDumpOption<Start|Stop|Both>-ProcDumpInterval <N>:<Interval in sec>
2. -ProcDumpInterval <N>:<Interval in sec>
3. -ProcDumpAppCrash
使用 SysInternals ProcDump.exe捕获单个项或以逗号分隔的项列表的用户转储。 默认情况下,转储在重现和停止的开头进行。 使用 .exe 扩展输入 ProcessName () 。

1. Start:转储在重现开始时进行。
Stop:转储在停止时进行。
Both (默认) :在启动和停止时都进行转储。
2. 需要重复捕获转储时,请使用此选项。
N:转储数
Int:间隔(以秒为单位)
默认值为 3:10。
3.此开关启用 ProcDump -ma -e,当进程遇到未经处理的异常时,它将写入完全转储。
-ProcMon
1. -ProcmonAltitude <N>
2. -ProcmonPath <folder path to Procmon.exe>
3. -ProcmonFilter <filter-file.pmc>
启动 SysInternals Procmon.exe

1. 指定 (默认值为 ProcmonAltitude 385200) 的字符串值。 使用 fltmc instances 显示筛选器驱动程序高度。 使用比可疑的特定驱动程序少的数字。 值 45100 将显示几乎所有内容。
2. 默认情况下,指定 Procmon.exe (的路径,TSS 使用内置的 Procmon) 。
3. 指定 Procmon (例如 ProcmonConfiguration.pmc) 位于 \config 文件夹中。
-PSR 启动问题步骤记录器。
-Radar <PID[]|ProcessName[]|ServiceName[]> 收集泄漏诊断信息 (rdrleakdiag.exe) 。

例如,-Radar AppIDSvc
-RASdiag 收集跟踪。 Netsh Ras 诊断集跟踪已启用。
-SDP <SpecialityName[]>
1. -SkipSDPList "<xxx>","<yyy>"
2. <SpecialityName>
收集指定专业的支持诊断包 (SDP) 。 有关 和 SkipSDPList的完整列表SpecialityNames.\tss -help请使用 cmdlet。

运行 SDP 报表时,跳过在环境中挂起的以逗号分隔的 SDP 模块名称列表。
-SysMon 默认情况下,) 收集 SysInternals 系统监视器 (SysMon) 日志 (sysmonConfig.xml
-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>'
使用默认 -Full 模式启动时间行程调试 (TTD) (TTT/iDNA) 。 使用 ProcessName 扩展名输入 () .exe 、单个项 (PID/名称) 或逗号分隔的项目列表。

注意:
Windows 10版本 1703 之前的下层操作系统需要 TSS_TTD.zip 包。

1. 指定包含 tttracer.exe( PartnerTTD) 的文件夹路径。 通常,仅当你想要强制使用特定路径时,才需要此开关。
2. Full = -dumpfull (=default)
Ring = 环形缓冲区模式
onLaunch = -onLaunch (需要TSS_TTD)
3.最大日志文件大小。 操作依赖于 -TTDModeFull 在达到最大大小时停止,并将 Ring 最大大小保留在环形缓冲区中。
4. 使用此选项可添加 TTD (TTT/iDNA) 的任何其他选项。
-Video 开始视频捕获 (需要) 安装 .NET 3.5。
-WFPdiag 使用 netsh Wfp capture 命令收集跟踪。
-WireShark 启动 WireShark。 可通过 tss_config.cfg 文件配置以下参数。

1. WS_IF:用于 -i。 指定接口编号 (, _WS_IF=1 例如,) 。
2. WS_Filter:用于 -f。 接口 (筛选器, _WS_Filter="port 443" 例如) 。
3. WS_Snaplen:用于 -s。 限制每个帧的数据量。 此参数具有更好的性能,并且适用于高负载情况, (例如 _WS_Snaplen=128 ,) 。
4. WS_TraceBufferSizeInMB:用于 -b FileSize (乘以 1024) 。 切换到兆字节数后面的下一个文件。 (例如 , _WS_TraceBufferSizeInMB=512default=512 MB)
5. WS_PurgeNrFilesToKeep: 用于 -b files。 在文件编号之后替换 。 例如, () _WS_PurgeNrFilesToKeep=20
6. WS_Options: (的任何其他选项 -i ,例如, _WS_Options="-P") 。

示例:
若要收集接口 15 和 11 上的 WireShark,请在 TSS 提示输入接口号时输入: 15 -i 11

默认情况下,Wireshark 启动 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>'
启动 WPR 配置文件跟踪。 <WPRprofile>是 的General|Storage|Registry||Network|MemoryWait|Device||GraphicXaml|VSOD_CPU|||VSOD_LeakBootGeneralCPU|SQL之一。

1. 跳过) (PDB 文件生成符号文件。
2. 指定 WPR.exe的选项。 例如,-WPROptions '-onoffproblemdescription "test description"'

示例 1:
.\TSS.ps1 -StartAutoLogger -WPR BootGeneral -WPROptions '-addboot CPU'将使用 和 CPU 配置文件捕获 WPR 启动跟踪General

示例 2:
.\TSS.ps1 -WPR General -WPROptions '-Start CPU -start Network -start Minifilter' 将配置文件组合 (GeneralCPUNetworkMinifilter) 。
-Xperf <Profile>
1. -XperfMaxFileMB <Size>
2. -XperfTag <Pool Tag>
3. -XperfPIDs <PID>
4. -XperfOptions <Option string>
启动 Xperf。 <Profile>是 的General||Network|MemoryPool|Leak||RegistrySMB2|SBSL|||SBSLbootCPUDisk|PoolNPP之一。

1. 指定最大日志大小(以 MB 为单位), (默认值为 2048 MB) 。 SBSL* 方案的默认值为 16384, (ADS_/NET_SBSL) 相同。
2.指定要 PoolTag 记录的。 此参数用于 PoolPoolNPP 配置文件 (例如 -Xperf Pool -XperfTag TcpE+AleE+AfdE+AfdX) 。
3. 指定 ProcessID。 此参数用于 Leak 配置文件 (例如 -Xperf Leak -XperfPIDs <PID>) 。
4. 为 Xperf指定其他选项字符串。
-xray 启动 xray 以诊断系统是否有已知问题。

以下示例演示如何在同一跟踪期间激活多个支持工具 (命令) 。

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

TSS 选项中的参数

在 TSS 选项中定义用于控制、增强或简化数据收集的特定参数。

参数 说明
-AcceptEula 一开始不要问:运行 以接受免责声明 (对 -RemoteRun 执行) 有用。
-AddDescription <description> 添加重现问题的简要说明。 生成的 zip 文件的名称将包含此类说明。
-Assist 辅助功能模式。
-BasicLog 收集完整基本日志 (默认情况下始终收集小型基本日志) 。
-CollectComponentLog 与 一起使用 -Scenario。 默认情况下,不会在跟踪中 -Scenario 调用组件收集函数。 此开关允许调用组件 collect 函数。
-CollectDump 在停止所有跟踪后收集系统转储 (memory.dmp) 。 -CollectDump可与 和 -Stop一起使用-Start
-CollectEventLog <Eventlog[]> 收集指定的事件日志。 星号 (*) 通配符可用于事件日志名称。

示例:
-CollectEventLog Security,*Cred*
收集安全性以及匹配 *Cred* 的所有事件日志,例如 'Microsoft-Windows-CertificateServicesClient-CredentialRoaming/Operational'
-CommonTask <<POD>|Full|Mini> 在启动之前和停止跟踪后运行常见任务。

<POD>:目前只有“NET”可用。 在启动跟踪之前和停止跟踪后收集其他信息。
Full:停止跟踪后收集完整的基本日志。
Mini:停止跟踪后收集微型基本日志。
-Crash NotMyFault 重现停止时触发系统崩溃,或者在发出所有事件信号后(如果与 一起使用 -WaitEvent)触发系统崩溃。

谨慎:
此开关将强制进行内存转储, (系统将重启) ,因此不会保存打开的文件。
-CustomETL 添加自定义 ETL 跟踪提供程序。 例如, .\TSS.ps1 -WIN_CustomETL -CustomETL '{<GUID>}','Microsoft-Windows-PrimaryNetworkIcon' (单引号 '{GUID}' 和/或 'Provider-Name') 的逗号分隔列表。
-DebugMode 面向开发人员使用调试模式运行。
-VerboseMode 在处理 TSS 函数时显示更详细或信息性的输出。
-Discard 用于在阶段 -Stop放弃数据集。 *Stop-*Collect- 函数不会运行。 xraypsSDP 将被跳过。
-EnableCOMDebug 用于打开 COM 调试模式的模块。
-ETLOptions<circular|newfile>:<ETLMaxSizeMB>:<ETLNumberToKeep>:<ETLFileMax> 设置传递给 logman 命令的选项。 的 circular ETLMaxSizeMB 默认值为 1024,默认值 newfile ETLMaxSizeMB 为 512。

-StartAutologger 仅支持 -ETLOptions circular:<ETLMaxSize>:<ETLNumberToKeep>:<ETLFileMax>,但 ETLNumberToKeep 不会以预期方式执行。

示例 1:
-ETLOptions newfile:2048:5

运行 newfile 大小为 2048 MB 的日志。 仅保留最后五 *.etl 个文件。 循环模式的默认设置为 circular:1024,对于 newfile 模式,默认设置为 newfile:512:10

示例 2:
-StartAutologger -ETLOptions circular:4096
Autologger 不会服从 :<ETLNumberToKeep> ,它只接受循环模式。

示例 3:
-StartAutologger -ETLOptions circular:4096:10:3
Autologger 不会服从 :<ETLNumberToKeep> ,它只接受循环模式和“3”作为代数 autologger
-ETWlevel <Info|Warning|Error> 设置事件跟踪级别。 默认值为 0xFF。
-EvtDaysBack <N> 仅转换过去 N 天的事件日志。 默认值为 30 天。 它也适用于 SDP 报表。

注意:
将跳过安全事件日志。
-ExternalScript <path to external PS file> 在开始跟踪之前运行指定的 PowerShell 脚本。
-LogFolderPath <Drive:\path to log folder> 对生成的输出数据使用不同的日志文件夹路径,而不是使用默认位置 (C:\MS_DATA) 。 当驱动器 C: 可用磁盘空间不足时,它很有用。
-MaxEvents <N> 作为 的参数 '-WaitEvent Evt:..',参数将调查具有相同事件 ID 的最后 N 个事件数, (默认值为 1) 。
-Mini 仅收集最少的数据。 跳过 noPSRnoSDPnoVideonoXraynoZipnoBasicLog
-Mode <Basic|Medium|Advanced|Full|Verbose|VerboseEx|Hang|Restart
|Swarm|Kube|GetFarmdata|Permission|traceMS>
BasicMedium、、 AdvancedFullVerbose(Ex) 模式下运行脚本进行数据收集。 Restart 将重启关联的服务。
-RemoteRun 在远程主机上执行 TSS 时使用,例如,在 Azure 串行控制台中通过 PsExec 执行 TSS,或者使用 PowerShell 远程处理。 此参数将禁止 PSR、视频录制、启动 TssClock 以及打开具有最终结果的资源管理器。 在这种情况下,还应考虑 -AcceptEula
-StartNoWait 不要等待,提示将立即返回。 此参数对于用户需要注销的方案很有用。
-WaitEvent 监视指定的事件或停止触发器;如果收到信号,跟踪将自动停止。

有多种选项可用于触发自动停止。 运行 .\TSS.ps1 -Find Monitoring 以查看使用情况。
-Update
1. -UpdMode<Online|Lite>
更新 TSS 包。 它可以与 -UpdMode Online|Lite一起使用。

Online 是默认值, LiteUpd 精简版本。
-Help
1. Common
2. ALL
3. Monitoring
4. Config
5. Keyword
提供有关各种方案的帮助消息。

1. 常见的常规帮助消息。
2. 所有可用选项。
3. 显示用于监视和远程功能的帮助消息。
4. 有关所有配置参数的帮助。
5. 可以输入任何关键字 (keyword) ,它将显示有关该关键字 (keyword) 的帮助信息。
-Status 显示正在运行的跟踪的状态(如果有)。

包含的帮助程序脚本和工具

帮助程序脚本和工具 说明
\scripts\tss_EventCreate.ps1 使用事件 ID 在事件日志文件中创建事件日志条目。
\scripts\tss_SMB_Fix-SmbBindings.ps1 对于修复损坏的 SMB 绑定 (LanmanServer、LanmanWorkstation 或 NetBT) 非常有用。 另 -Collect NET_SMBsrvBinding请参阅 。
\BINx64\kdbgctrl.exe 使用 开关 -sd <dump type> 设置内核故障转储类型 Full|Kernel,例如 kdbgctrl -sd Full
\BINx64\NTttcp.exe 性能测试。 有关详细信息,请参阅 使用 NTTTCP 测试 VM 网络吞吐量
\BINx64\latte.exe 延迟测试。 有关详细信息,请参阅 测试 Azure VM 之间的网络延迟
\BINx64\notmyfaultc.exe 强制进行内存转储。 如果 TSS 命令行包含 -Crash,请参阅 NotMyFault v4.21

排查意外的 PowerShell 错误

  1. 失败后运行此 cmdlet:

    .\TSS.ps1 -Stop -noBasiclog -noXray
    
  2. 关闭打开的提升 PowerShell 窗口,并启动新的提升 PowerShell 窗口。

  3. 允许 PowerShell 脚本使用正确的 ExecutionPolicy在系统上运行。

  4. 如果遇到指示正在运行的脚本已禁用的错误,请尝试以下方法。

方法 1

  1. 运行以下 cmdlet:

    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -force -Scope Process
    
  2. 使用 Get-ExecutionPolicy -List cmdlet 验证设置是否没有 ExecutionPolicy 具有更高优先级的正在阻止此脚本的执行。

  3. .\TSS.ps1 <Desired Parameters>再次运行 cmdlet。

方法 2 (替代)

如果脚本被 MachinePolicy阻止,请在提升的 PowerShell 窗口中运行以下 cmdlet:

  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
    

方法 3 (替代)

如果脚本被 UserPolicy阻止,请在提升的 PowerShell 窗口中运行以下 cmdlet:

  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
    

注意

方法 2 只是策略 MachinePolicy - RemoteSigned的解决方法。 如果还看到 UserPolicy - RemoteSigned,请向域管理员请求临时组策略对象 (GPO) 豁免。

在极少数情况下,可以尝试 cmdlet -ExecutionPolicy Bypass

如果组织强制使用 GPO PowerShell 约束语言模式 (System.Management.Automation.EngineIntrinsics.SessionState.LanguageMode -ne 'FullLanguage') ,请向域管理员请求临时 GPO 豁免。

常见问题解答 (常见问题解答)

  • 问题 1:TSS 脚本是否会更改系统的任何设置或配置?

    答1:否,但在某些情况下启用调试日志记录需要注册表设置。 该脚本在数据收集的开头设置必要的键,并将该键还原为数据收集结束时的默认值。 它还可能会删除某些缓存 (例如,在数据收集开始时,ARP 缓存或名称解析缓存) ,以从日志中观察问题。

  • 问题 2:TSS 工具集是否对服务器施加了额外的负载?

    A2:某些日志记录 (,例如,网络捕获、ETW 跟踪收集等,由 TSS 工具集启动的) 可能会给系统施加少量负载。 负载通常处于可忽略级别。 启动 TSS 工具集后,如果发现 CPU、内存或磁盘使用率过高,请联系支持代表。

  • 问题 3:为什么在运行 TSS 工具集时无法重现问题?

    答3:TSS 工具集可能会在开始时删除所有缓存的信息。 它还会在混杂模式下启动网络捕获,这会更改网络接口卡 (NIC) 默认行为。 这些更改可能会影响问题,问题可能会消失。 特别是对于特定的计时问题,由于 TSS 工具集的数据收集,问题就消失了。 数据收集开始日志记录,这可能会间接影响问题并更改情况。

  • 问题 4:为什么 TSS 工具集长时间不响应?

    答4:在某些情况下,由 TSS 工具集运行的操作系统内置命令可能无法响应或需要很长时间才能完成。 如果遇到此问题,请联系支持代表。

  • 问题 5:长时间运行 TSS 工具集时,是否需要担心磁盘空间或其他问题?

    A5:所有 TSS 跟踪都配置为使用环形缓冲区运行,因此可以根据需要长时间运行工具集。 TSS 工具集还会在数据收集开始时计算磁盘空间,如果磁盘空间不足,可能会退出。 如果在启动 TSS 工具集后看到磁盘使用率较高,或者对工具集的磁盘使用情况有任何其他疑问,请联系支持代表。

  • 问题 6:如果在运行 .\TSS.ps1 脚本时收到以下安全警告,该怎么办?

    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:在极少数情况下,可能会收到此安全警告。 可以使用 cmdlet PS C:\> Unblock-File -Path C:\TSS\TSS.ps1取消阻止脚本。 此脚本将使用 cmdlet Get-ChildItem -Recurse -Path C:\TSS\*.ps* | Unblock-File -Confirm:$false取消阻止所有其他模块。

最终用户许可协议 (EULA)

选择以下选项可查看 MICROSOFT 软件许可条款。

Microsoft 诊断脚本和实用工具

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. 根据本许可证中规定的条款和限制,Microsoft Corporation (“Microsoft”) 授予你 (“客户”或“你”) 非独占、不可分配、完全付费的许可证,以使用和复制本许可证 (“软件”) 提供的脚本或实用工具,仅用于客户的内部业务目的,以帮助 Microsoft 排查一个或多个 Microsoft 产品的问题, 前提是该软件的此类许可不包括对其他 Microsoft 技术 ((如产品或服务) )的任何权利。 “使用”是指复制、安装、执行、访问、显示、运行或以其他方式与软件交互。

    您不得通过分发、网络访问或其他方式对软件进行再许可或任何使用。 Microsoft 保留此处未明确授予的所有其他权利,无论是通过暗示、禁止反言还是其他方式。 您不得对软件进行反向工程、反编译或反汇编,或以其他方式尝试派生软件的源代码,但第三方许可条款要求(管理软件中可能包含的某些开放源代码组件的使用)除外,或者删除、最小化、阻止或修改软件中 Microsoft 或其供应商的任何通知。 您和您的代表均不得以法律、法规、政府命令或法令禁止的方式使用此处提供的软件: (i) ; (ii) 侵犯他人权利: (iii) 试图未经授权访问或中断任何服务、设备、数据、帐户或网络; (iv) 分发垃圾邮件或恶意软件; (v) ,其方式可能会损害 Microsoft 的 IT 系统或损害其他人对它们的使用; (vi) 使用软件可能导致任何人死亡或严重身体伤害,或身体或环境损害的任何应用程序或情况;或 (七) 协助、鼓励或允许任何人执行上述任何操作。

  2. 数据。 客户拥有可能选择通过使用软件与 Microsoft 共享的数据的所有权利。 可以在 帮助文档和隐私声明 https://aka.ms/privacy中了解有关数据收集和使用的详细信息。 您使用软件即表示你同意这些做法。

  3. FEEDBACK. 如果你向 Microsoft 提供有关软件的反馈,则你授予 Microsoft 以任何方式出于任何目的使用、共享和商业化你的反馈的权利。 由于 Microsoft 的原因,你不会提供任何受许可证约束的反馈,该许可证要求 Microsoft 将其软件或文档许可给第三方,包括此类软件或文档中的反馈。

  4. EXPORT RESTRICTIONS. 客户必须遵守适用于软件的所有国内和国际出口法律和法规,其中包括对目的地、最终用户和最终用途的限制。 For further information on export restrictions, visit https://aka.ms/exporting.

  5. 陈述和保证。 客户将遵守本协议下的所有适用法律,包括在交付和使用所有数据时。 客户或代表实体同意这些条款的客户或被指定者表示并保证其 (i) 拥有签署和履行本协议规定义务的完全权力和权限, (ii) 拥有约束其关联公司或组织遵守本协议条款的完全权力和权限, 和 (iii) 在提供任何源代码之前,将确保另一方的许可,使另一方的知识产权受到任何其他许可条款的约束,或要求另一方向其任何技术分发源代码。

  6. 免责声明。 该软件按“原样”提供,不提供任何形式的明示或暗示担保,包括但不限于适销性、针对特定目的的适用性和非侵权保证。 在任何情况下,MICROSOFT 或其许可方均不对任何直接、间接、偶然、特殊、惩戒性或后果性损害负责, (包括但不限于替代商品或服务的采购;使用、数据或利润损失;或业务中断) ,无论在合同、严格责任或侵权 (,包括疏忽或其他) 以任何方式因使用软件而引起的,即使被告知存在此类损害的可能性,也) 责任理论。

  7. 损害的限制和排除。 如果你在上述免责声明中仍有任何赔偿损害的依据,则只能向 MICROSOFT 及其供应商追偿直接损害赔偿,直到美国。00. 您不能赔偿任何其他损害,包括后果性损害、利润损失、特殊损害、间接损害或附带损害。 此限制适用于 (i) 与软件、服务、内容 (包括第三方 Internet 网站上的代码) 或第三方应用程序相关的任何内容;和 (ii) 违反合同、保证、保证或条件的索赔;严格责任、疏忽或其他侵权;或任何其他声明;在每种情况下,在适用法律允许的范围内。 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. 如果您居住在 (,或者如果您的主要营业地点位于美国) ,则本部分适用。 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. 法律和地点。 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.