TroubleShootingScript 工具集 (TSS) 简介

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

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

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

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

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

先决条件

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

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

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

    注意

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

如何启动 TSS 工具集

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

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

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

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

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

示例:
.\TSS.ps1 -Collectlog DND_SetupReport

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

使用 TSS 工具集的语法

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

Cmdlet 示例

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

Windows 事件跟踪 (ETW) 跟踪

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

.\TSS.ps1 -Stop
提示会立即返回,因此你可以注销或使用类似于 cmdlet 的 Shutdowncmdlet。

该 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> 收集 GPresult 阶段 start的输出, stopboth
-Handle <Start|Stop|Both> 在阶段或阶段stopstartboth收集 SysInternals Handle.exe输出。
-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 为单位)(例如)。 -NetshMaxSizeMB 4096 默认值为 2048。
3.防止使用 (将捕获仅捕获 ETW 跟踪ScenarioName)捕获数据包Netsh
-NetshScenario
1. -NetshOptions '<Option string>'
2. -NetshMaxSizeMB <Int>
3. -noPacket
Netsh启动方案跟踪。 支持 <ScenarioName> 使用 cmdlet 列出 -ListSupportedNetshScenario

1. 为 Netsh. 指定其他选项 例如,'capturetype=both captureMultilayer=yes provider=Microsoft-Windows-PrimaryNetworkIcon provider={<GUID>}'
2. MB 的最大日志大小 Netsh (例如 -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 值(默认值为 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> 收集PoolMonstartstopboth
-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捕获单个项或逗号分隔的项列表的用户转储。 默认情况下,转储在重现开始并停止。 输入 ProcessName扩展名为 .exe (s)。

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)。 有关完整列表SpecialityNames,请使用 SkipSDPList.\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为 (s)、单个项(PID/name)或逗号分隔的项列表。

请注意:
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'将使用和GeneralCPU配置文件捕获 WPR 启动跟踪。

示例 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.指定最大日志大小(默认值为 2048 MB)。 SBSL* 方案的默认值为 16384(ADS_/NET_SBSL 相同)。
2.指定要 PoolTag 记录的。 此参数与或PoolNPP配置文件一起使用Pool(例如,-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 调用。 此开关允许调用组件收集函数。
-CollectDump 停止所有跟踪后收集系统转储(memory.dmp)。 -CollectDump 可以与 -Start-Stop 一起使用。
-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- 函数不会运行。 xray 将被 psSDP 跳过。
-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: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>
在数据收集中BasicMediumAdvancedFullVerbose(Ex)模式下运行脚本。 Restart 将重启关联的服务。
-RemoteRun 在远程主机上执行 TSS 时使用,例如,通过 PsExec、Azure 串行控制台或 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.可以输入任何关键字,并显示有关该关键字的帮助信息。
-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. 允许使用适当的 ExecutionPolicyPowerShell 脚本在系统上运行。

  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:

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

方法 3 (可选)

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

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

注意

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

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

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

常见问题 (FAQ)

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

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

  • 问 2:TSS 工具集是否在服务器上额外加载?

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

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

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

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

    A4:在某些情况下,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诊断脚本和实用工具

这些许可条款是您与 Microsoft Corporation(或其附属机构之一)之间达成的协议。 如果遵守这些许可条款,将拥有以下权利。 使用该软件即表示接受这些条款。

  1. 安装和使用权利。 根据本许可证中所述的条款和限制,Microsoft Corporation (“Microsoft”) 授予您(“客户”或“you”)非独占的、完全付费的许可证,以使用此许可证(“软件”)使用和重现根据此许可证提供的脚本或实用工具(“软件”),仅用于客户的内部业务目的,以帮助Microsoft解决一个或多个Microsoft产品的问题, 前提是软件的此类许可证不包括对其他Microsoft技术(如产品或服务)的任何权利。 “使用”是指复制、安装、执行、访问、显示、运行或其他与软件交互。

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

  2. 数据。 客户拥有通过软件选择与Microsoft共享的所有数据权利。 可以参阅帮助文档和隐私声明 (https://aka.ms/privacy),详细了解数据收集和使用。 你使用软件作为你同意这些做法的操作。

  3. 反馈。 如果向Microsoft提供有关软件的反馈,则你可授予Microsoft(不收费)以任何方式使用、共享和商业化反馈的权利,并出于任何目的。 你不会提供任何受许可证约束的反馈,这些反馈需要Microsoft才能将其软件或文档许可给第三方,因为Microsoft包括在此类软件或文档中的反馈。

  4. 出口限制。 客户必须遵守适用于软件的所有国内和国际出口法律和法规,其中包括对目的地、最终用户和最终用户的限制。 有关出口限制的更多信息,请访问 https://aka.ms/exporting

  5. 表示和保证。 客户将遵守本协议下的所有适用法律,包括交付和使用所有数据。 代表实体同意这些条款的客户或被设计者表示并保证(i)拥有在此协议下进入和执行其义务的完全权力和授权,(ii)拥有将其关联机构或组织绑定到本协议条款的完全权力和授权,并且(iii)在以接受任何源代码的方式提供任何源代码之前,将确保对方的许可对方对任何其他许可条款的知识产权,或者要求对方将源代码分发到其任何技术。

  6. 免责声明。 该软件“按原样”提供,不提供任何形式的明示或默示担保,包括但不限于适销性、针对特定用途的适用性和非侵犯性保证。 在任何情况下,任何直接、间接、附带、特殊、模范或后果性损害(包括但不限于替代货物或服务的采购)均不得MICROSOFT或其消费者承担任何直接、间接、附带、特别、模范或后果性损害赔偿:使用、数据或利润损失;然而,无论在合同、严格责任还是侵权(包括疏忽或其他)中,都因使用该软件而引起的任何责任理论和任何责任理论造成的,即使建议存在这种损害的可能性。

  7. 损害赔偿的限制和排除。 如果您有任何理由收回损害赔偿,尽管上述免责声明,则可以从MICROSOFT及其供应商中恢复,仅直接损害美国。00. 不能因其他任何损害获得退款,包括后果性损害、利润损失、专项损害、间接损害或附带损害。 此限制适用于(i)与第三方 Internet 网站或第三方应用程序上的软件、服务、内容(包括代码)相关的任何内容;(二)违反合同、担保、担保或条件的索赔;严格责任、疏忽或其他侵权:或任何其他声明;在适用法律允许的范围内,在每种情况下。 即使 Microsoft 已知道或理应知道可能会出现损害,此项限制同样适用。 由于您所在州、省或国家/地区可能不允许排除或限制附带损害赔偿、后果性损害赔偿或其他损害赔偿责任,因此上述限制或排除条款可能对您不适用。

  8. 约束性仲裁条款和集体诉讼豁免。 本部分适用于你住在美国(或者,如果业务,业务的主要位置位于)。。 如果您与 Microsoft 有争议,则您和 Microsoft 同意尝试 60 天,以非正式方式进行解决。 如果你和 Microsoft 不能解决,则你和 Microsoft 同意在美国仲裁协会面前根据联邦仲裁法 (“FAA”) 进行约束性个人仲裁,而不是在法官或陪审团面前向法庭起诉。 中立仲裁员将作出决定。 不允许集体诉讼、集体仲裁、公众利益代表人 (private attorney-general) 诉讼以及其中以代理人身份行事的任何其他诉讼;未经各方同意,也不允许组合个人诉讼。 完整的仲裁协议包含更多条款,可在 https://aka.ms/arb-agreement-4 中查看。 您和 Microsoft 同意这些条款。

  9. 法律和场地。 如果存在美国联邦管辖权,则您和 Microsoft 同意美国华盛顿州金郡的联邦法院对庭上(不包括仲裁)所有争议具有专属管辖权,并同意将该法院作为审判地。 如果不存在美国联邦管辖权,则您和 Microsoft 同意美国华盛顿州金郡的高等法院对庭上(不包括仲裁)所有争议具有专属管辖权,并同意将该法院作为审判地。

  10. 完整协议。 本协议以及 Microsoft 可能为补充、更新或第三方应用程序提供的任何其他条款构成该软件的完整协议。