次の方法で共有


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

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

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

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

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

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

前提条件

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

  • TSS ツールセットは、ローカル システムの管理者特権を持つアカウントによって、管理者特権の PowerShell ウィンドウで実行する必要があります。 Windows PowerShell Integrated Scripting Environment (ISE) での TSS ツールセットの実行はサポートされていません。 エンドユーザー使用許諾契約書 (EULA) に同意する必要があります。 EULA が承認されると、TSS ツールセットは EULA の入力を再度求めるメッセージを表示しません。

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

    Note

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

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

TSS.ps1は、シナリオに応じて異なるスイッチで開始できます。 -Start動詞は既定の動詞と省略可能な動詞であり、必要に応じて補完動詞に置き換えることができます。 補完的な -Start 動詞は、 -StartAutoLogger-StartDiag-StartNoWait、および -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] 角かっこ ([ ]) のキーワードまたは値は省略可能です。 たとえば、 [module:int] は、モジュールと間隔が省略可能であることを意味します。 既定値は、 [<xx>:<yy>] を省略した場合に使用されます。
| このパラメーターは 'OR'を意味します。 使用可能なオプションのいずれかを選択できます。
: 2 つの値の間の区切り文字。

コマンドレットの例

PowerShell コマンドレット 説明
.\TSS.ps1 -PerfMon [General:10] このパラメーターは、 PerfMon CounterSetName= General 秒と Interval= 10 秒を意味します。 [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 トレースを停止します。

Note

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

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

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

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

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

Tools>Options を選択し、HTTPS タブで Decrypt HTTPS Traffic を選択して、トラフィック暗号化解除オプションを有効にします。
-GPresult <Start|Stop|Both> フェーズ startstop、またはbothGPresult出力を収集します。
-Handle <Start|Stop|Both> フェーズ startstop、またはbothで 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.パケットが 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. 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、バージョン 1809 以降のバージョン)。 PktMon:Drop は、ドロップされたパケットのみを収集します。
-PoolMon <Start|Stop|Both> startstop、またはbothPoolMonを収集します。
-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を使用して、1 つの項目または項目のコンマ区切りのリストのユーザー ダンプをキャプチャします。 既定では、ダンプは再現コードの開始時に取得され、停止されます。 .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. \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) を収集します。 SpecialityNamesSkipSDPListの完全な一覧については、.\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 モードの Time Travel Debugging (TTD) (TTT/iDNA) を開始します。 .exe拡張子、1 つの項目 (PID/名前)、または項目のコンマ区切りのリストを含むProcessNameを入力します。

注:
Windows 10 バージョン 1703 より前の下位レベルのオペレーティング システムには、 TSS_TTD.zip パッケージが必要です。

1. tttracer.exe (PartnerTTD) を含むフォルダー パスを指定します。 通常、このスイッチは、特定のパスを強制する場合にのみ必要です。
2. Full = -dumpfull (=default)
Ring = リング バッファー モード
onLaunch = -onLaunch (TSS_TTDが必要)
3. ログ ファイルの最大サイズ。 操作は -TTDModeによって異なります。 Full は、最大サイズに達すると停止し、 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=512、既定値は 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|BootGeneral|CPU|Device|Memory|Network|Registry|Storage|Wait|SQL|Graphic|Xaml|VSOD_CPU|VSOD_Leakの 1 つです。

1. シンボル ファイル (PDB ファイル) の生成をスキップします。
2. WPR.exeのオプションを指定します。 たとえば、-WPROptions '-onoffproblemdescription "test description"' のようにします。

例 1:
.\TSS.ps1 -StartAutoLogger -WPR BootGeneral -WPROptions '-addboot CPU' は、 General プロファイルと CPU プロファイルを使用して WPR ブート トレースをキャプチャします。

例 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|CPU|Disk|Leak|Memory|Network|Pool|PoolNPP|Registry|SMB2|SBSL|SBSLbootの 1 つです。

1. ログの最大サイズを MB で指定します (既定値は 2048 MB)。 SBSL* シナリオの既定値は 16384 です (ADS_/NET_SBSL の場合と同じです)。
2. ログに記録する PoolTag を指定します。 このパラメーターは、 Pool プロファイルまたは PoolNPP プロファイル ( -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*
セキュリティと、'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 最小限のデータのみを収集します。 noPSRnoSDPnoVideonoXraynoZip、およびnoBasicLogをスキップします。
-Mode <Basic|Medium|Advanced|Full|Verbose|VerboseEx|Hang|Restart
|Swarm|Kube|GetFarmdata|Permission|traceMS>
データ収集用の BasicMediumAdvancedFull、または Verbose(Ex) モードでスクリプトを実行します。 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 は既定値で、 LiteUpd lite バージョンです。
-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>を使用して、kdbgctrl -sd Fullなどのカーネル クラッシュ ダンプの種類Full|Kernelを設定します。
\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. 適切な ExecutionPolicyを使用して、PowerShell スクリプトをシステム上で実行できるようにします。

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

方法 1

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

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

  3. .\TSS.ps1 <Desired Parameters> コマンドレットを再び実行します。

方法 2 (代替)

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

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

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

方法 2 は、ポリシー MachinePolicy - RemoteSignedの回避策にすぎません。 UserPolicy - RemoteSignedも表示される場合は、ドメイン管理者に一時的なグループ ポリシー オブジェクト (GPO) の除外を依頼します。

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

組織が 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 診断スクリプトとユーティリティ

これらのライセンス条件は、お客様と Microsoft Corporation (またはその関連会社の 1 つ) の間の契約です。 これらのライセンス条項を遵守する場合は、次の権利が付与されます。 本ソフトウェアを使用することにより、お客様は本契約書に同意されたものとします。

  1. インストールおよび使用に関する権利。 このライセンスに記載されている条項と制限に従い、Microsoft Corporation ("Microsoft") は、Microsoft が 1 つ以上の Microsoft 製品に関する問題のトラブルシューティングを支援するために、このライセンス (「ソフトウェア」) の下で提供されるスクリプトまたはユーティリティを使用および再現するための、非排他的で割り当て不可能な完全な有料ライセンスを ("顧客"または "お客様") に付与します。 ただし、本ソフトウェアに対するそのようなライセンスに、他の Microsoft テクノロジ (製品やサービスなど) に対する権利が含まれていない場合。 「使用」とは、本ソフトウェアをコピー、インストール、実行、アクセス、表示、実行、またはその他の方法で操作することを意味します。

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

  2. データ お客様は、本ソフトウェアを使用して Microsoft と共有することを選択できるデータに対するすべての権利を所有します。 データの収集と使用状況に関する詳細はヘルプ文書やプライバシーに関する声明 (https://aka.ms/privacy) で確認できます。 お客様による本ソフトウェアの使用は、これらのプラクティスに対するお客様の同意として動作します。

  3. フィードバック。 お客様が本ソフトウェアに関するフィードバックをマイクロソフトに提供する場合、お客様は、何らかの方法で、または目的を問わず、お客様のフィードバックを使用、共有、および商業化する権利を無料で Microsoft に付与します。 お客様は、お客様のフィードバックをそのようなソフトウェアまたはドキュメントに含め、Microsoft による第三者へのソフトウェアまたはドキュメントのライセンスを Microsoft に要求するライセンスの対象となるフィードバックを提供しません。

  4. 輸出規制。 お客様は、本ソフトウェアに適用されるすべての国内および国際的な輸出法および規制を遵守する必要があります。これには、目的地、エンドユーザー、およびエンド ユースに関する制限が含まれます。 輸出規制の詳細については、https://aka.ms/exporting を確認してください。

  5. 表明と保証。 お客様は、すべてのデータの配信と使用を含め、本契約に基づく適用されるすべての法律を遵守します。 エンティティに代わってこれらの条項に同意する顧客または指名者は、(i)本契約に基づいて義務を締結し、実行する完全な権限と権限を有すること、(ii)関連会社または組織を本契約の条件に結び付ける完全な権限と権限を持ち、(iii)ソース コードを提供する前に、他の当事者の許可を保護することを表明し、保証します。他のライセンス条項に対する他の当事者の知的財産、または他の当事者がいずれかのテクノロジにソース コードを配布することを要求する。

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

  7. 損害の制限および除外。 上記の保証の免責事項にもかかわらず、損害を回復するための基礎がある場合は、MICROSOFT とそのサプライヤーから回復できるのは、米国に対する直接の損害のみです。00. その他の損害 (結果的損害、逸失利益、特別損害、間接損害、および付随的損害を含みますがこれらに限定されません) に関しては、一切責任を負いません。 この制限は、(i) 本ソフトウェア、サービス、第三者のインターネット サイト上のコンテンツ (コードを含む)、または第三者のアプリケーションに関連するものに適用されます。(ii) 契約違反、保証、保証、または条件に対する請求。厳格な責任、過失、またはその他の不法行為またはその他の要求。適用される法律で認められる範囲で、いずれの場合も同じ方法で行われます。 Microsoft がこのような損害の可能性について知っていた場合または知り得た場合も同様です。 州、地方、または国が偶発的、結果的、またはその他の損害の排除または制限を許可しない可能性があるため、上記の制限または排除が適用されない場合があります。

  8. 拘束力のある仲裁および集団訴訟権の放棄。 このセクションは、お客様が米国に住んでいる場合 (または、ビジネスの主な勤務先がある場合) に適用されます。 お客様とマイクロソフトは、両者間に紛争が生じた場合、60 日間にわたり非公式の解決を試みることに同意します。 お客様と Microsoft はまた、この期間を経過しても紛争を解決できない場合に、米国連邦仲裁法 (以下、"FAA") に基づいて米国仲裁協会 (American Arbitration Association) による拘束力のある個別の仲裁に紛争を付託し、裁判官または陪審員による裁判を提起しないことに同意します。 代わりに、紛争は中立の仲裁人の判断にゆだねられます。 集団訴訟、集団仲裁、民間司法長官訴訟、および特定の人物が代理権を行使するその他の手続きを使用することはできず、個別の手続きを、すべての当事者の同意なしに統合することもできません。 詳細な条項を定めた仲裁契約の全文については、https://aka.ms/arb-agreement-4 を参照してください。 お客様とマイクロソフトは、この契約の条項に同意するものとします。

  9. 法律と会場。 米国連邦管轄権が存在する場合、お客様とマイクロソフトは、裁判所で審議される (仲裁を除く) いかなる紛争についても、米国ワシントン州キング郡の連邦裁判所が専属的管轄権を有し、同地を裁判地とすることに同意します。 連邦司法権が存在しない場合、お客様とマイクロソフトは、裁判所で審議される (仲裁を除く) すべての紛争について、米国ワシントン州キング郡の上位裁判所が専属的管轄権を有し、同地を裁判地とすることに同意します。

  10. 全契約。 本契約、およびその他の補足、更新、またはサードパーティ製アプリケーションに対する Microsoft の条項は、本ソフトウェアに関する完全な契約です。