これは https://serverfault.com/questions/102098/powershell-script-showing-commands-run の複製です。ここでこの質問をする方が適切だと思いました。
私はPowerShellスクリプトをいじっていますが、それらは非常にうまく機能しています。ただし、自分で手動で入力した場合と同様に、実行されたすべてのコマンドを表示する方法があるかどうか疑問に思っています。これは、バッチファイルの「エコーオン」に似ています。 PowerShellコマンドライン引数、コマンドレットを確認しましたが、明確なものは見つかりませんでした。
Start-Transcriptは、exe出力をキャッチしません。それは私にとってショーストッパーです。私はそれを言うのが嫌いですが、これを行うことがわかった最善の方法は次のとおりです。
cmd /c powershell.exe -file c:\users\hillr\foo.ps1 > foo.log
これはすべてのAFAICTをキャプチャします。
Set-PSDebug -Trace 1
C:\workspaces\silverlight> start-transcript -?
NAME
Start-Transcript
SYNOPSIS
Creates a record of all or part of a Windows PowerShell session in a text file.
SYNTAX
Start-Transcript [[-Path] <string>] [-Append] [-Force] [-NoClobber] [-Confirm] [-WhatIf] [<CommonParameters>]
DESCRIPTION
The Start-Transcript cmdlet creates a record of all or part of a Windows PowerShell session in a text file. The transcript includes all command that the user
types and all output that appears on the console.
RELATED LINKS
Online version: http://go.Microsoft.com/fwlink/?LinkID=113408
Stop-Transcript
REMARKS
To see the examples, type: "get-help Start-Transcript -examples".
For more information, type: "get-help Start-Transcript -detailed".
For technical information, type: "get-help Start-Transcript -full".
注意#1:警告/エラー/デバッグではなく、メインコンソールの出力ストリームに書き込まれたもののみを記録します。
注#2:ネイティブコンソールアプリケーションを記録する必要がある場合は、 わずかな回避策が必要になります
目的のコマンドに-verboseを追加しました。例えば。
Copy-Item c:\xxx d:\xxx -verbose