こんにちは。
けいぞうです。
今回は「PowerShellスクリプトの事項結果をログ出力する方法」についての記事です。
[目次]
PowerShellのログ出力方法まとめ
よく使われるログ出力方法は以下の3つです。
- Set-Content/Add-Content
- Out-File
- Start-Transcript
Set-Content/Add-Content
Set-Contentは指定したパスに指定した内容を上書き保存で出力します。
既存ファイルに追記したい場合は、Add-Contentを使用します。
Set-Content -Path "出力先のパス" -Value "出力したい内容"
Add-Content -Path "出力先のパス" -Value "出力したい内容"
OutFile
指定したパスに、パイプラインで渡された内容が上書き保存で出力されます。
"出力したい内容" | Out-File "出力先のパス"
既存ファイルに追記したい場合は、「-Append」を付与します。
"出力したい内容" | Out-File "出力先のパス" -Append
Start-Transcript
Start-TranscriptからStop-Transcriptまでで実行されたコマンドレットを、指定されたパスのファイルに全て出力します。
Start-Transcript "出力先のパス"
#処理内容
Stop-Transcript
イメージとしては、StartからStopまでの処理の標準出力を全て指定のパスのファイルにするという感じです。
例えば、以下のようなスクリプトを実行したとします。
Start-Transcript "C:\work\Script\log.txt"
#DataTableの作成
$hoge = New-Object System.Data.DataTable
#列の追加
$hoge.Columns.Add("c1")
$hoge.Columns.Add("c2")
$hoge.Columns.Add("c3")
#データ(行)の追加
$hoge.Rows.Add("bbb","bbb","ccc")
$ResultTable = @{
"TargetUser" = $hoge
"result" = 1
}
$ResultTable
Stop-Transcript
結果として、「C:\work\Script\log.txt」にこんな感じで出力されます。
**********************
Windows PowerShell トランスクリプト開始
開始時刻: 20200405122041
ユーザー名: XXXXXXXXX
RunAs ユーザー: XXXXXXXXX
構成名:
コンピューター: XXXX (Microsoft Windows NT 10.0.18362.0)
ホスト アプリケーション: C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
プロセス ID: 3364
PSVersion: 5.1.18362.628
PSEdition: Desktop
PSCompatibleVersions: 1.0, 2.0, 3.0, 4.0, 5.0, 5.1.18362.628
BuildVersion: 10.0.18362.628
CLRVersion: 4.0.30319.42000
WSManStackVersion: 3.0
PSRemotingProtocolVersion: 2.3
SerializationVersion: 1.1.0.1
**********************
トランスクリプトが開始されました。出力ファイル: C:\work\Script\log.txt
AllowDBNull : True
AutoIncrement : False
AutoIncrementSeed : 0
AutoIncrementStep : 1
Caption : c1
ColumnName : c1
Prefix :
DataType : System.String
DateTimeMode : UnspecifiedLocal
DefaultValue :
Expression :
ExtendedProperties : {}
MaxLength : -1
Namespace :
Ordinal : 0
ReadOnly : False
Table : {}
Unique : False
ColumnMapping : Element
Site :
Container :
DesignMode : False
AllowDBNull : True
AutoIncrement : False
AutoIncrementSeed : 0
AutoIncrementStep : 1
Caption : c2
ColumnName : c2
Prefix :
DataType : System.String
DateTimeMode : UnspecifiedLocal
DefaultValue :
Expression :
ExtendedProperties : {}
MaxLength : -1
Namespace :
Ordinal : 1
ReadOnly : False
Table : {}
Unique : False
ColumnMapping : Element
Site :
Container :
DesignMode : False
AllowDBNull : True
AutoIncrement : False
AutoIncrementSeed : 0
AutoIncrementStep : 1
Caption : c3
ColumnName : c3
Prefix :
DataType : System.String
DateTimeMode : UnspecifiedLocal
DefaultValue :
Expression :
ExtendedProperties : {}
MaxLength : -1
Namespace :
Ordinal : 2
ReadOnly : False
Table : {}
Unique : False
ColumnMapping : Element
Site :
Container :
DesignMode : False
c1 : bbb
c2 : bbb
c3 : ccc
Key : result
Value : 1
Name : result
Key : TargetUser
Value : {System.Data.DataRow}
Name : TargetUser
**********************
Windows PowerShell トランスクリプト終了
終了時刻: 20200405122042
**********************
最近のコメント