Start-Transcript
テキスト ファイルへの PowerShell セッションのすべてまたは一部のレコードを作成します。
構文
Start-Transcript
[[-Path] <String>]
[-Append]
[-Force]
[-NoClobber]
[-IncludeInvocationHeader]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Start-Transcript
[[-LiteralPath] <String>]
[-Append]
[-Force]
[-NoClobber]
[-IncludeInvocationHeader]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Start-Transcript
[[-OutputDirectory] <String>]
[-Append]
[-Force]
[-NoClobber]
[-IncludeInvocationHeader]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
説明
Start-Transcript
コマンドレットは、PowerShell セッションのすべてまたは一部のレコードをテキスト ファイルに作成します。 トランスクリプトには、ユーザーが入力したすべてのコマンドと、コンソールに表示されるすべての出力が含まれます。
既定では、Start-Transcript
は、既定の名前を使用して、トランスクリプトを次の場所に格納します。
- 既定の場所:
$HOME\Documents
- 既定のファイル名:
PowerShell_transcript.<computername>.<random>.<timestamp>.txt
Windows PowerShell 5.0 以降では、Start-Transcript
はすべてのトランスクリプトの生成されたファイル名にホスト名を含めます。 ファイル名には、2 つ以上のトランスクリプトを同時に開始するときに上書きや重複を防ぐために、名前にランダムな文字も含まれています。 コンピューター名を含めると、トランスクリプトを一元化された場所に格納する場合に便利です。 ランダムな文字列を使用すると、ファイル名を推測してファイルへの不正アクセスを取得できなくなります。
Append パラメーターを使用する場合、ターゲット ファイルにバイトオーダー マーク (BOM) がない場合 Start-Transcript
、ターゲット ファイル内のエンコードが既定で ASCII
されます。 この動作により、トランスクリプト内でマルチバイト文字が不適切にエンコードされる可能性があります。
例
例 1: 既定の設定でトランスクリプト ファイルを開始する
Start-Transcript
このコマンドは、既定のファイルの場所でトランスクリプトを開始します。
例 2: 特定の場所でトランスクリプト ファイルを開始する
Start-Transcript -Path "C:\transcripts\transcript0.txt" -NoClobber
このコマンドは、Transcript0.txt
の C:\transcripts
ファイルでトランスクリプトを開始します。 noClobber パラメーター、既存のファイルが上書きされないようにします。
Transcript0.txt
ファイルが既に存在する場合、コマンドは失敗します。
例 3: 一意の名前でトランスクリプト ファイルを開始し、ファイル共有に保存する
次の例では、共有の場所に格納するのに十分な一意の名前を持つトランスクリプト ファイルを作成します。 ファイル名は、ユーザーの名前、PowerShell を実行しているコンピューターのホスト名、PowerShell のバージョン、および日付と時刻から作成されます。 トランスクリプトは、\\Server01\Transcripts
ファイル共有に格納されます。
$sharePath = '\\Server01\Transcripts'
$username = $Env:USERNAME
$hostname = hostname
$version = $PSVersionTable.PSVersion.ToString()
$datetime = Get-Date -F 'yyyyMMddHHmmss'
$filename = "Transcript-${username}-${hostname}-${version}-${datetime}.txt"
$Transcript = (Join-Path -Path $sharePath -ChildPath $filename).ToString()
Start-Transcript
トランスクリプト ファイルへの完全なパスは、$Transcript
基本設定変数に格納されます。
$Transcript
基本設定変数の詳細については、「about_Preference_Variables」を参照してください。
パラメーター
-Append
このコマンドレットによって、既存のファイルの末尾に新しいトランスクリプトが追加されることを示します。 Path パラメーターを使用して、ファイルを指定します。
型: | SwitchParameter |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Confirm
コマンドレットを実行する前に確認を求めるメッセージが表示されます。
型: | SwitchParameter |
Aliases: | cf |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Force
コマンドレットがトランスクリプトを既存の読み取り専用ファイルに追加できるようにします。 読み取り専用ファイルで使用すると、コマンドレットはファイルのアクセス許可を読み取り/書き込みに変更します。 このパラメーターを使用する場合、コマンドレットはセキュリティ制限をオーバーライドできません。
型: | SwitchParameter |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-IncludeInvocationHeader
このコマンドレットは、コマンドの実行時にタイムスタンプをログに記録することを示します。
型: | SwitchParameter |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-LiteralPath
トランスクリプト ファイルの場所を指定します。 Path パラメーターとは異なり、LiteralPath パラメーターの値は、型指定されたとおりに使用されます。 ワイルドカードとして解釈される文字はありません。 パスにエスケープ文字が含まれている場合は、単一引用符で囲みます。 一重引用符は、エスケープ シーケンスとして文字を解釈しないように PowerShell に通知します。
型: | String |
Aliases: | PSPath |
配置: | 0 |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-NoClobber
このコマンドレットが既存のファイルを上書きしないことを示します。 既定では、トランスクリプト ファイルが指定したパスに存在する場合、Start-Transcript
は警告なしでファイルを上書きします。
型: | SwitchParameter |
Aliases: | NoOverwrite |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-OutputDirectory
トランスクリプトを保存する特定のパスとフォルダーを指定します。 PowerShell によってトランスクリプト名が自動的に割り当てられます。
型: | String |
配置: | 0 |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Path
トランスクリプト ファイルの場所を指定します。
.txt
ファイルへのパスを入力します。 ワイルドカードは使用できません。 パス内のディレクトリのいずれかが存在しない場合、コマンドは失敗します。
パスを指定しない場合、Start-Transcript
は $Transcript
グローバル変数の値のパスを使用します。 この変数を作成していない場合、Start-Transcript
はトランスクリプトを既定の場所とファイル名に格納します。
型: | String |
配置: | 0 |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-WhatIf
コマンドレットを実行した場合の動作を示します。 コマンドレットは実行されません。
型: | SwitchParameter |
Aliases: | wi |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
入力
None
このコマンドレットにオブジェクトをパイプすることはできません。
出力
このコマンドレットは、確認メッセージと出力ファイルへのパスを含む文字列を返します。
メモ
トランスクリプトを停止するには、Stop-Transcript
コマンドレットを使用します。
セッション全体を記録するには、Start-Transcript
コマンドをプロファイルに追加します。 詳細については、about_Profilesを参照してください。
注
Start-Transcript
を使用すると、$InformationPreference
の既定値が Continue
に変更されます。
Write-Information
からの出力はコンソールに書き込まれますが、トランスクリプト ファイルには書き込まれません。
$InformationPreference
が SilentlyContinue
に設定されている場合、情報メッセージはコンソールに書き込まれませんが、トランスクリプト ファイルに書き込まれます。 これは PowerShell 6 以降で修正されています。