TSS 実行時にエラーが発生する

目次

本記事はマイクロソフト社員によって公開されております。

いつも弊社製品をご利用いただきまして誠にありがとうございます。Windows プラットフォーム サポートの栗木です。
本記事では、資料採取ツールである TSS(TroubleShootingScript)を実行する際に発生するエラーと対処方法についてご案内いたします。

Introduction to TroubleShootingScript toolset (TSS) - Windows Client
https://learn.microsoft.com/en-us/troubleshoot/windows-client/windows-tss/introduction-to-troubleshootingscript-toolset-tss

1. TSS.ps1 が認識されない


原因:
カレント ディレクトリに TSS.ps1 ファイルが配置されていない場合、TSS.ps1 ファイルを認識することができません。

対処法:
TSS.zipを解凍したフォルダに cd コマンドで移動してから TSS を実行してください。
例として C:\tools\TSS に TSS を解凍した場合は、以下のコマンドになります。

cd C:\tools\TSS

2. スクリプトの実行が無効になっている


原因:
お客様環境での実行ポリシーの設定により、外部から入手した PowerShell スクリプトの実行がブロックされている場合、TSS.ps1 を実行することができません。

about Execution Policies
https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_execution_policies

対処法:
Set-ExecutionPolicy コマンドにより、ExecutionPolicy の設定を変更後、TSS を実行してください。
Scope に Process を設定しているため、実行している PowerShell 以外に影響はなく、PowerShell を終了すれば、変更した設定は元に戻ります。

Set-ExecutionPolicy RemoteSigned -Scope Process -Force
Get-ExecutionPolicy -List

※通常は、RemoteSigned で TSS は実行可能になりますが、変更してもエラーが発生する場合は、RemoteSigned を Bypass へ置き換えて、Set-ExecutionPolicy を実行してください。
※Get-ExecutionPolicy コマンドで現在の実行ポリシーの設定が確認できます。

Set-ExecutionPolicy
https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.security/set-executionpolicy
Get-ExecutionPolicy
https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.security/get-executionpolicy

3. ツールの有効期限が切れている


原因:
TSS.ps1 では使用可能期間を設けており、仕様により 30 日間で実行が制限されます。

対処法:
再度、TSS を https://aka.ms/getTSS からダウンロードするか、以下のコマンドを実行し、ツールをアップデートしてください。

.\TSS.ps1 -Update

4. デジタル署名に保存されているハッシュ値が一致しない


原因:
TSS.ps1 に変更を加えていないのにも関わらず上記エラーが出力されている場合、セキュリティソフトの影響が考えられます。
ウイルス対策ソフトや監視ソフトといったセキュリティ向上を目的として製品には、PowerShell スクリプトの実行に介入するアプリケーションが存在し、デジタル署名に保存されているハッシュ値が変わってしまうことが確認されております。

対処法:
TSS.zip を解凍したフォルダに cd コマンドで移動し、TSS を実行する前に以下のコマンドにより、インターネットからダウンロードした PowerShell スクリプトであることを示す ADS (Alternate Data Streams) の Zone.Identifier を削除することでエラーの回避が可能です。

Get-ChildItem -Recurse | Unblock-File

※コマンドには “|"(パイプ) 記号が含まれます。
※英字の “l”(エル) や数字の “1”(いち) ではありません。

Unblock-File
https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/unblock-file