スポンサーリンク

【PowerShell】Start-Transcriptを使用したログ記録

記事内に広告が含まれています。

PowerShellでは、スクリプトの実行内容やコンソールでの操作履歴を記録する機能としてStart-Transcriptコマンドレットが提供されています。

この機能を使用することで、実行結果やエラーを含む全ての出力をテキストファイルに保存することが可能です。Start-Transcriptの基本的な使い方をまとめます。

スポンサーリンク

Start-Transcriptとは?

Start-Transcriptは、PowerShellセッション内での出力をログファイルとして記録するためのコマンドレットです。これを使用することで以下のような場面で役立ちます。

  • スクリプトのデバッグやトラブルシューティング
  • 実行ログのアーカイブ
  • コンプライアンスや監査目的での記録
スポンサーリンク

基本的な使い方

シンプルな実行例

Start-Transcriptを実行すると、自動的にログファイルが作成されます。

Start-Transcript

実行すると、以下のようなメッセージが表示されます。

Transcript started, output file is C:\Users\<ユーザー名>\Documents\PowerShell_transcript.<日時>.txt

この例では、既定の保存先であるユーザーのDocumentsフォルダーにログファイルが作成されます。

ログファイルの保存場所を指定

-Pathオプションを使用すると、保存先を指定できます。

Start-Transcript -Path "C:\Logs\MyLog.txt"

指定したパスにログファイルが保存されます。

実行内容を記録した後に終了

記録を終了するには、Stop-Transcriptを使用します。

Stop-Transcript

終了すると以下のようなメッセージが表示されます。

Transcript stopped, output file is C:\Logs\MyLog.txt

使用例

エラー出力を含めて記録

Start-Transcriptは標準出力だけでなくエラー出力も記録します。

以下のスクリプトを例に確認してみましょう。

Start-Transcript -Path "C:\Logs\ErrorLog.txt"

Write-Output "This is a normal message."
Write-Error "This is an error message."

Stop-Transcript

ログファイルには、通常のメッセージとエラーが両方記録されます。

日時を含む動的なファイル名で記録

以下の例では、実行日時をファイル名に含めてログを保存します。

$timestamp = Get-Date -Format "yyyy-MM-dd_HH-mm-ss"
$logPath = "C:\Logs\Transcript_$timestamp.txt"

Start-Transcript -Path $logPath

Write-Output "Logging started at $timestamp"

Stop-Transcript

既存のログファイルに追記

デフォルトでは、Start-Transcriptは既存のファイルを上書きします。

追記モードで記録する場合は、以下のようにリダイレクト演算子を活用します。

$logPath = "C:\Logs\MyLog.txt"

if (-Not (Test-Path $logPath)) {
    New-Item -Path $logPath -ItemType File
}

Start-Transcript -Path $logPath -Append

Write-Output "New session logged."

Stop-Transcript

注意点

  • 管理者権限
    一部の環境では、Start-Transcriptを実行するために管理者権限が必要です。
  • セッションの制約
    記録は現在のPowerShellセッションに限定されます。セッションが終了すると自動的に記録も終了します。

まとめ

Start-Transcriptは、PowerShellセッションの記録を簡単に行える便利なツールです。特にデバッグや監査において役立つ場面が多く、使い方を習得しておくことで効率的に作業を進めることができます。

主なポイントは以下のとおりです。

  • Start-Transcriptで記録開始、Stop-Transcriptで記録終了
  • -Pathオプションで保存先やファイル名を指定可能
  • エラーや標準出力を含む全ての内容を記録
タイトルとURLをコピーしました