TroubleShootingScript ツールセット (TSS) の概要

この記事では、TroubleShootingScript (TSS) ツールセットを紹介し、よく寄せられる質問に対する回答を提供します。

適用対象: サポートされているバージョンの Windows Server と Windows クライアント

TSS ツールセットには、PowerShell ベースのツールと、データ収集と診断用のフレームワークが含まれています。 このツールセットは、データ収集を簡素化し、ケースを効率的かつ安全に解決することを目的としています。

ツールセットには、Microsoft によって署名された複数の PowerShell スクリプトと実行可能ファイルが含まれています。 選択したスイッチに基づいて、TSS は 1 つ以上のスクリプトと実行可能ファイルを使用して目的のログを収集します。

ツールセットは、 から https://aka.ms/getTSSzip ファイル (TSS.zip) としてダウンロードできます。

前提条件

ツールセットを正しく実行するための前提条件を次に示します。

  • TSS ツールセットは、ローカル システムの管理者特権を持つアカウントによって管理者特権の PowerShell ウィンドウで実行する必要があります。 Windows PowerShell統合スクリプト環境 (ISE) での TSS ツールセットの実行はサポートされていません。 エンド ユーザー ライセンス契約 (EULA) に同意する必要があります。 EULA が承認されると、TSS ツールセットは再び EULA の入力を求められません。

  • PowerShell スクリプト実行ポリシーは、管理者特権の PowerShell コマンド プロンプトからコマンドレットSet-ExecutionPolicy -scope Process -ExecutionPolicy RemoteSigned -Forceを実行することで、プロセス レベルで にRemoteSigned設定する必要があります。

    注:

    プロセス レベルの変更は、現在の PowerShell セッションにのみ影響します。

TSS ツールセットを開始する方法

シナリオに応じて、異なるスイッチで TSS.ps1 を開始できます。 動詞は -Start 既定の動詞と省略可能な動詞であり、必要に応じて補完動詞に置き換えることができます。 補完動詞-Startは、-StartAutoLogger、、-StartNoWait-StartDiag、および -CollectLogです。

動詞 説明
-Start 動詞は -Start 、Windows (ETW) コンポーネント トレースまたは Windows パフォーマンス レコーダー (WPR) などのサポート ツールのイベント トレースを開始します。

動詞は [-Start] 省略可能ですが、補完 -start 的なオプションに置き換えることができます。
-StartAutoLogger これらのログをブート時に収集するには、 を使用 -StartAutoLogger して を置き換えます -Start

問題が再現されたら、 .\TSS.ps1 -Stop コマンドレットと組み合わせて使用してトレースを停止します。
-StartDiag このスイッチは現在はあまり使用されていませんが、複数のシナリオで将来使用することを意図しています。 現在、DFSN 名前空間の診断を取得するなどNET_DFSn、他の引数と組み合わせることができます。
-StartNoWait このパラメーターを使用すると、サインアウトしてもトレースをアクティブな状態に保ちます。

問題が再現されたら、 .\TSS.ps1 -Stop コマンドレットと組み合わせて使用してトレースを停止します。
-CollectLog このパラメーターは、引数 DND_SetupReportと共に一般的に使用されます。

例:
.\TSS.ps1 -Collectlog DND_SetupReport

トレースに関連するログも、データ収集を停止すると自動的に収集されます。

TSS ツールセットを使用する構文

パラメーター 説明
<placeholder> プレースホルダーの山かっこ (<>) の文字列は、実際のシナリオ名、トレース コンポーネント、コマンド、または値で置き換える必要があります。
[optional] 角かっこ ([ ]) のキーワード (keyword)または値は省略可能です。 たとえば、 [module:int] モジュールと間隔は省略可能であることを意味します。 省略した場合 [<xx>:<yy>] 、既定値が使用されます。
| このパラメーターは を意味 'OR'します。 使用可能なオプションのいずれかを選択できます。
: 2 つの値間の区切り文字。

コマンドレットの例

PowerShell コマンドレット 説明
.\TSS.ps1 -PerfMon [General:10] このパラメーターは、秒を10Interval= 意味PerfMon CounterSetName= Generalします。 を省略すると [General:10] 、既定の が開始されるため -PerfMon 、 と同じ効果 -PerfMon General -PerfIntervalSec 10があります。
.\TSS.ps1 [-StopWaitTimeInSec <N>] このパラメーターは、引数 -StopWaitTimeInSec が省略可能であることを意味しますが、指定されている場合は、="秒数" の値 <N> が必須です。

Windows のイベント トレース (ETW) トレース

ETW トレース PowerShell コマンドレット 説明
シナリオ トレースを有効にします。 .\TSS.ps1 -Scenario <ScenarioName> サポートされているシナリオ名は、 コマンドレットを TSS.ps1 -ListSupportedScenarioTrace 使用して一覧表示されます。
コンポーネント トレースを有効にします。 .\TSS.ps1 <-ComponentName> <-ComponentName> ... サポートされている <-componentName> は、 コマンドレットを TSS.ps1 -ListSupportedTrace 使用して一覧表示されます。
待機なしモードでトレースを開始します。 .\TSS.ps1 -StartNoWait -Scenario <ScenarioName>

.\TSS.ps1 -Stop
プロンプトはすぐに返されるため、サインアウトしたり、 などの Shutdownコマンドレットを使用したりできます。

コマンドレット .\TSS.ps1 -Stop はトレースを停止します。

注:

コンポーネントやシナリオのすべてのプロバイダー GUID を一覧表示するには、 コマンドレットを -ListETWProviders 使用します。 例:

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

サポート ツールとコマンド

サポート ツールまたはコマンド (ProcMon、ProcDump、netsh、パフォーマンス モニター (PerfMon)、WPR、Radar など) を起動して、特殊なキャプチャ用の追加ツールを使用してログ収集を強化します。

PowerShell コマンドレット 説明
-Fiddler Fiddler トレースを収集します。 Fiddler をインストールする必要があります。

[ツール>オプション] を選択し、[HTTPS] タブで [HTTPS トラフィックの暗号化解除] を選択して、トラフィック復号化オプションを有効にします。
-GPresult <Start|Stop|Both> フェーズstartstop、、または bothの出力 Handle.exe SysInternals を収集します。
-Handle <Start|Stop|Both> フェーズstartstop、、または bothの出力 Handle.exe SysInternals を収集します。
-LiveKD <Start|Stop|Both> SysInternals LiveKD -ml (ライブ カーネル ダンプ) を起動します。
<Start>: ダンプは、repro の開始時に取得されます。
<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. メガバイト (MB) 単位の最大ログ サイズ Netsh (例: -NetshMaxSizeMB 4096)。 既定値は 2048 です。
3. でパケットが Netsh キャプチャされないようにします (内の ScenarioName ETW トレースのみがキャプチャされます)。
-NetshScenario
1. -NetshOptions '<Option string>'
2. -NetshMaxSizeMB <Int>
3. -noPacket
シナリオ トレースを開始します Netsh 。 サポートされている <ScenarioName> は、 コマンドレットを -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> を使用して、 を -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 Version 1809、以降のバージョン) を収集します。 PktMon:Drop は、ドロップされたパケットのみを収集します。
-PoolMon <Start|Stop|Both> stop、または bothで収集PoolMonしますstart
-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を使用して、単一項目のユーザー ダンプまたは項目のコンマ区切りリストをキャプチャします。 既定では、ダンプは repro の開始時に取得され、停止します。 ProcessName拡張子を入力します.exe

1. Start: ダンプは、repro の開始時に取得されます。
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. \config フォルダーにある Procmon の構成ファイル (ProcmonConfiguration.pmc など) を指定します。
-PSR 問題ステップ レコーダーを開始します。
-Radar <PID[]|ProcessName[]|ServiceName[]> リーク診断情報 (rdrleakdiag.exe) を収集します。

たとえば、「 -Radar AppIDSvc 」のように入力します。
-RASdiag トレースを収集します。 Netsh Ras 診断 セット トレースが有効になっています。
-SDP <SpecialityName[]>
1. -SkipSDPList "<xxx>","<yyy>"
2. <SpecialityName>
指定された専門分野のサポート診断パッケージ (SDP) を収集します。 と SkipSDPListSpecialityNames完全な一覧については、 コマンドレットを使用します.\tss -help

SDP レポートの実行中に環境内でハングする SDP モジュール名のコンマ区切りの一覧をスキップします。
-SysMon SysInternals System Monitor (SysMon) ログ (既定では config フォルダーに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) を開始します。 拡張子、 ProcessName1 つの項目 (PID/名前) .exe 、または項目のコンマ区切りのリストを含む を入力します。

注意:
バージョン 1703 Windows 10より前の下位レベルのオペレーティング システムには、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. : に-i使用されます。 WS_IF インターフェイス番号を指定します (例: _WS_IF=1)。
2. : に-f使用されます。 WS_Filter インターフェイスをフィルター処理します (例: _WS_Filter="port 443")。
3. : に-s使用されます。 WS_Snaplen 各フレームのデータ量を制限します。 このパラメーターのパフォーマンスが向上し、負荷の高い状況 (など _WS_Snaplen=128) に役立ちます。
4. WS_TraceBufferSizeInMB: に -b FileSize 使用されます (1024 を乗算)。 メガバイト数の後の次のファイルに切り替えます。 (例: 、 _WS_TraceBufferSizeInMB=512default=512 MB)
5. : に-b files使用されます。 WS_PurgeNrFilesToKeep ファイルの番号の後に置き換えます。 (例: _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|SQL1 つです。

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'は、プロファイル (GeneralCPUNetworkおよび) を結合しますMinifilter
-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|PoolNPP1 つです。

1. 最大ログ サイズを MB 単位で指定します (既定値は 2048 MB)。 SBSL* シナリオの既定値は 16384 です (ADS_/NET_SBSLの場合と同じです)。
2. ログに記録するを指定 PoolTag します。 このパラメーターは、 -Xperf Pool -XperfTag TcpE+AleE+AfdE+AfdXまたは PoolNPP プロファイルと共にPool使用されます (例: )。
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-Stop-Start使用できます。
-CollectEventLog <Eventlog[]> 指定したイベント ログを収集します。 イベント ログ名にはアスタリスク (*) ワイルドカード文字を使用できます。

例:
-CollectEventLog Security,*Cred*
セキュリティと、 のように'Microsoft-Windows-CertificateServicesClient-CredentialRoaming/Operational'一致*Cred*するすべてのイベント ログを収集します。
-CommonTask <<POD>|Full|Mini> トレースを開始する前と停止した後に、一般的なタスクを実行します。

<POD>: 現在、"NET" のみが使用できます。 トレースを開始する前と停止した後に追加情報を収集します。
Full: 完全な基本ログは、トレースを停止した後に収集されます。
Mini: トレースを停止した後、ミニ基本ログが収集されます。
-Crash を使用して、repro の停止時、または すべてのイベントが で使用された場合に通知された後に、システム クラッシュ 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

サイズが 2048 MB のログを実行 newfile します。 最後の 5 つの *.etl ファイルのみを保持します。 循環モードの既定の設定は で circular:1024、newfile モードの場合は です newfile:512:10

例 2:
-StartAutologger -ETLOptions circular:4096
Autologger は従 :<ETLNumberToKeep> わないので、モード循環のみを受け入れます。

例 3:
-StartAutologger -ETLOptions circular:4096:10:3
Autologger は従 :<ETLNumberToKeep> わないので、世代数 autologger としてモード循環と "3" のみを受け入れます。
-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 最小限のデータのみを収集します。 、、noSDPnoVideonoXraynoZip、および をスキップnoPSRしますnoBasicLog
-Mode <Basic|Medium|Advanced|Full|Verbose|VerboseEx|Hang|Restart
|Swarm|Kube|GetFarmdata|Permission|traceMS>
データ収集用に、、MediumAdvancedFullまたは Verbose(Ex) モードでBasicスクリプトを実行します。 Restart は、関連付けられているサービスを再起動します。
-RemoteRun PsExec、Azure シリアル コンソール、PowerShell リモート処理など、リモート ホストで TSS が実行されている場合に使用します。 このパラメーターは、PSR、ビデオ録画、TssClock の開始、および最終的な結果を含むエクスプローラーを開くのを禁止します。 このような場合は、 も考慮してください -AcceptEula
-StartNoWait 待たないでください。プロンプトはすぐに返されます。 このパラメーターは、ユーザーがログオフする必要があるシナリオに役立ちます。
-WaitEvent 指定したイベントまたはストップ トリガーを監視します。通知された場合、トレースは自動的に停止されます。

自動停止をトリガーするさまざまなオプションがあります。 を実行 .\TSS.ps1 -Find Monitoring して使用状況を確認します。
-Update
1. -UpdMode<Online|Lite>
TSS パッケージを更新します。 と共に -UpdMode Online|Lite使用できます。

Online は既定値で Lite 、lite バージョンです Upd
-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. エラーが発生した後、次のコマンドレットを実行します。

    .\TSS.ps1 -Stop -noBasiclog -noXray
    
  2. 開いている管理者特権の PowerShell ウィンドウを閉じ、新しい管理者特権の PowerShell ウィンドウを開始します。

  3. PowerShell スクリプトを適切な ExecutionPolicyを使用してシステム上で実行できるようにします。

  4. 実行中のスクリプトが無効になっていることを示すエラーが発生した場合は、次の方法を試してください。

方法 1

  1. 次のコマンドレットを実行します。

    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -force -Scope Process
    
  2. 優先順位の高いコマンドレットを使用して Get-ExecutionPolicy -List 設定が、このスクリプトの実行をブロックしていることを ExecutionPolicy 確認します。

  3. コマンドレットをもう .\TSS.ps1 <Desired Parameters> 一度実行します。

方法 2 (代替)

によって MachinePolicyスクリプトがブロックされている場合は、管理者特権の PowerShell ウィンドウで次のコマンドレットを実行します。

  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 ウィンドウで次のコマンドレットを実行します。

  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) の除外を依頼します。

まれな状況では、コマンドレットを -ExecutionPolicy Bypass 試すことができます。

organizationが GPO PowerShell の制約付き言語モード (System.Management.Automation.EngineIntrinsics.SessionState.LanguageMode -ne 'FullLanguage') を強制する場合は、ドメイン管理者に一時的な GPO の除外を求めます。

よく寄せられる質問 (FAQ)

  • Q1: TSS スクリプトは、システムのセットアップまたは構成を変更しますか?

    A1: いいえ。ただし、一部のシナリオでデバッグ ログを有効にするにはレジストリ設定が必要です。 スクリプトは、データコレクションの開始時に必要なキーを設定し、データコレクションの最後にあるキーを既定値に戻します。 また、データ収集の開始時にいくつかのキャッシュ (ARP キャッシュや名前解決キャッシュなど) を削除して、ログから問題を観察することもできます。

  • Q2: TSS ツールセットはサーバーに追加の負荷をかけますか?

    A2: TSS ツールセットによって開始される一部のログ (ネットワーク キャプチャ、ETW トレース コレクションなど) によって、システムに軽微な負荷がかかる場合があります。 通常、負荷は無視できるレベルです。 TSS ツールセットを起動した後に CPU、メモリ、ディスク使用率が高い場合は、サポート担当者にお問い合わせください。

  • Q3: TSS ツールセットが実行されているときに問題を再現できないのはなぜですか?

    A3: TSS ツールセットは、最初にキャッシュされたすべての情報を削除できます。 また、ネットワーク キャプチャが無差別モードで開始され、ネットワーク インターフェイス カード (NIC) の既定の動作が変更されます。 これらの変更は問題に影響し、問題が消える可能性があります。 特に、特定のタイミングの問題では、TSS ツールセットのデータ収集のために問題が消えます。 データ収集はログ記録を開始します。これは、問題に間接的に影響を与え、状況を変更する可能性があります。

  • Q4: TSS ツールセットが長時間応答しないのはなぜですか?

    A4: 場合によっては、TSS ツールセットによって実行されるオペレーティング システムの組み込みコマンドが応答しないか、完了するまでに時間がかかる場合があります。 この問題が発生した場合は、サポート担当者にお問い合わせください。

  • Q5: TSS ツールセットを長時間実行するときに、ディスク領域やその他の問題について心配する必要がありますか?

    A5: すべての TSS トレースはリング バッファーで実行するように構成されているため、必要に応じてツールセットを長時間実行できます。 TSS ツールセットでは、データ収集の開始時にディスク領域も計算され、十分なディスク領域がない場合は終了する可能性があります。 TSS ツールセットの起動後にディスク使用率が高い場合、またはツールセットのディスク使用量に関するその他の懸念がある場合は、サポート担当者にお問い合わせください。

  • Q6: .\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: まれに、このセキュリティ警告が表示されることがあります。 コマンドレット PS C:\> Unblock-File -Path C:\TSS\TSS.ps1を使用してスクリプトのブロックを解除できます。 このスクリプトは、 コマンドレット 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 が 1 つ以上の Microsoft 製品に関する問題のトラブルシューティングを支援するために、このライセンスに基づき提供されるスクリプトまたはユーティリティ ("ソフトウェア") を使用および再現するための、非排他的で割り当て不可能な完全な支払い済みライセンス (「ソフトウェア」) を許可します。Microsoft は、1 つ以上の Microsoft 製品に関する問題のトラブルシューティングを支援します。 本ソフトウェアに対するそのようなライセンスに、他の Microsoft テクノロジ (製品やサービスなど) に対する権利が含まれていない場合。 「使用」とは、本ソフトウェアをコピー、インストール、実行、アクセス、表示、実行、または操作することを意味します。

    お客様は、配布、ネットワーク アクセス、またはその他の方法で本ソフトウェアまたはその使用をサブライセンスすることはできません。 Microsoft は、黙示、禁断、またはその他の方法によって、ここに明示的に付与されていない他のすべての権利を留保します。 お客様は、本ソフトウェアに含まれる特定のオープンソースコンポーネントの使用を管理する第三者のライセンス条項によって要求される範囲を除き、ソフトウェアのリバース エンジニアリング、逆コンパイル、逆アセンブル、またはその他の方法で本ソフトウェアのソース コードを派生させ、または本ソフトウェアの Microsoft またはそのサプライヤーの通知を削除、最小化、ブロック、または変更することはできません。 お客様およびお客様の代理人は、以下に示す本ソフトウェアを、法律、規制、政府の命令または法令によって禁止される方法で使用することはできません。(ii) 他者の権利を侵害すること。(iii) サービス、デバイス、データ、アカウント、またはネットワークへの不正アクセスまたは中断を試みる。(iv) スパムまたはマルウェアを配布するため(v) Microsoft の IT システムに損害を与えたり、他のユーザーの使用を損なう可能性のある方法。(vi) 本ソフトウェアを使用すると、人の死亡または重篤な身体傷害、または物理的または環境的損傷につながる可能性があるアプリケーションまたは状況。または (vii) 上記のいずれかを行う人を支援、奨励、または有効にする。

  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)関連会社を拘束するか、本契約の条項にorganizationする完全な権限と権限を有し、(iii)ソースコードを提供する前に相手方の許可を確保することを表明し、保証します。他のライセンス条項に対する第三者の知的財産、または他の当事者がソース コードをそのテクノロジに配布することを要求する。

  6. 保障の免責。 本ソフトウェアは、商品性、特定の目的に対する適合性、非侵害性の保証を含むがこれに限定されない、明示または黙示を問わず、いかなる種類の保証もなく「現状有姿」で提供されます。 マイクロソフトまたはそのライセンサーは、直接的、間接的、付随的、特別、例示的、または派生的損害(代替品またはサービスの調達を含むがこれらに限定されない)について一切の責任を負わないものとします。使用、データ、または利益の損失。またはビジネスの中断) ただし、かかる損害の可能性を知らされた場合でも、ソフトウェアの使用から生じる契約、厳格な責任、または不法行為 (過失を含むまたはその他の方法を含む) に関係なく、責任の理論を引き起こしました。

  7. 損害の制限および除外。 保証の前の免責事項にもかかわらず、損害を回復するための根拠がある場合は、MICROSOFT とそのサプライヤーから回復できるのは、米国に直接損害を与えるだけです。00. その他の損害 (派生的損害、損失利益、特殊損害、間接損害、または付随的損害を含む) を回復することはできません。 この制限は、(i) 第三者のインターネット サイト、またはサード パーティのアプリケーション上のソフトウェア、サービス、コンテンツ (コードを含む) に関連するものに適用されます。(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.