以前、テキストをファイルに出力する方法をご紹介しました。
今回は、[Start-Transcript]を使用して作業ログを取得(出力)する方法を解説します。
作業ログ取得の開始と終了
PowerShellでは、以下のコマンドを使用することで、作業ログを取得するタイミングを制御することが可能です。
作業ログの取得開始
Start-Transcript
作業ログの取得終了
Stop-Transcript
サンプル色々!PowerShellのリファレンスはこちら↓↓
サンプルと実行結果
サンプルのソースコードになります。
Start-Transcript Write-Host "あいうえお" Write-Host "かきくけこ" Write-Host "さしすせそ" Stop-Transcript
こちらを実行すると、下記のようにログファイルが出力されます。
格納パス:C:\Users\{ユーザー名}\Documents
ファイル名:PowerShell_transcript.{PC名}.{***}.YYYYMMDDhhmmss.txt
**********************
Windows PowerShell トランスクリプト開始
開始時刻: 20220202130459
ユーザー名: **********
RunAs ユーザー: **********
構成名:
コンピューター: **********
ホスト アプリケーション: C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -Command if((Get-ExecutionPolicy ) -ne 'AllSigned') { Set-ExecutionPolicy -Scope Process Bypass }; & '**********'
プロセス ID: 69720
PSVersion: 5.1.19041.1320
PSEdition: Desktop
PSCompatibleVersions: 1.0, 2.0, 3.0, 4.0, 5.0, 5.1.19041.1320
BuildVersion: 10.0.19041.1320
CLRVersion: 4.0.30319.42000
WSManStackVersion: 3.0
PSRemotingProtocolVersion: 2.3
SerializationVersion: 1.1.0.1
**********************
トランスクリプトが開始されました。出力ファイル: C:\Users\****\Documents\PowerShell_transcript.****.****.20220202130459.txt
あいうえお
かきくけこ
さしすせそ
**********************
Windows PowerShell トランスクリプト終了
終了時刻: 20220202130459
**********************
ログの出力先を変更する
ログの出力先を変更する方法です。
併せて使用可能なオプションについても解説しています。
上書き
ログの出力先を変更する場合は、「-Path {出力先パス\ファイル名}」と記述します。
サンプルでは、黄色の文字列になります。
Start-Transcript -Path C:\work\ps1.log Write-Host "あいうえお" Write-Host "かきくけこ" Write-Host "さしすせそ" Stop-Transcript
追記
ログの出力先を変更しつつ、追記する場合は、「-Append -Path {出力先パス\ファイル名}」と記述します。
サンプルでは、黄色の文字列になります。
Start-Transcript -Append -Path C:\work\ps1.log Write-Host "あいうえお" Write-Host "かきくけこ" Write-Host "さしすせそ" Stop-Transcript
出力するログが存在する場合はエラー
出力するログファイルが既に存在する時にエラーとする場合は、「-NoClobber -Path {出力先パス\ファイル名}」と記述します。
サンプルでは、黄色の文字列になります。
また、エラー内容を確認できるよう、最後に「Pause」を入れています。
Start-Transcript -NoClobber -Path C:\work\ps1.log Write-Host "あいうえお" Write-Host "かきくけこ" Write-Host "さしすせそ" Stop-Transcript Pause
下記が既にファイルが存在する場合のエラー内容になります。
Start-Transcript : ファイル C:\work\ps1.txt は既に存在しますが、NoClobber が指定されました。
発生場所 C:\work_module\blog.ps1:3 文字:1
+ Start-Transcript -NoClobber -Path C:\work\ps1.txt
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ResourceExists: (C:\work\ps1.txt:String) [Start-Transcript], UnauthorizedAccessException
+ FullyQualifiedErrorId : NoClobber,Microsoft.PowerShell.Commands.StartTranscriptCommand
あいうえお
かきくけこ
さしすせそ
Stop-Transcript : トランスクリプションの停止中にエラーが発生しました: ホストは現在トランスクリプト化していません。
発生場所 C:\work_module\blog.ps1:9 文字:1
+ Stop-Transcript
+ ~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [Stop-Transcript]、PSInvalidOperationException
+ FullyQualifiedErrorId : InvalidOperation,Microsoft.PowerShell.Commands.StopTranscriptCommand
続行するには、Enter キーを押してください...:
記事は以上になります。
ロガーなどを作成せずに簡単に実行ログを出力させる方法になります。





コメント