Share via


Start-Transcript

建立文本檔中所有或部分 PowerShell 工作階段的記錄。

Syntax

Start-Transcript
     [[-Path] <String>]
     [-Append]
     [-Force]
     [-NoClobber]
     [-IncludeInvocationHeader]
     [-UseMinimalHeader]
     [-WhatIf]
     [-Confirm] 
     [<CommonParameters>]
Start-Transcript
     [[-LiteralPath] <String>]
     [-Append]
     [-Force]
     [-NoClobber]
     [-IncludeInvocationHeader]
     [-UseMinimalHeader]
     [-WhatIf]
     [-Confirm] 
     [<CommonParameters>]
Start-Transcript
     [[-OutputDirectory] <String>]
     [-Append]
     [-Force]
     [-NoClobber]
     [-IncludeInvocationHeader]
     [-UseMinimalHeader]
     [-WhatIf]
     [-Confirm] 
     [<CommonParameters>]

Description

Cmdlet Start-Transcript 會將 PowerShell 工作階段的所有或部分記錄建立至文字檔。 文字記錄包含使用者輸入的所有命令,以及控制臺上出現的所有輸出。

根據預設, Start-Transcript 使用預設名稱,將文字記錄儲存在下列位置:

  • 在 Windows 上:$HOME\Documents
  • 在 Linux 或 macOS 上: $HOME

預設檔案名態 PowerShell_transcript.<computername>.<random>.<timestamp>.txt

從 Windows PowerShell 5.0 開始, Start-Transcript 在所有文字記錄產生的檔名中包含主機名。 檔名也包含名稱中的隨機字元,以防止當您同時啟動兩個或多個文字記錄時,可能會覆寫或重複。 如果您將文字記錄儲存在集中式位置,則包含計算機名稱很有用。 隨機字元字串可防止猜測檔名,以取得檔案的未經授權存取權。

如果目標檔案沒有位元組順序標記 (BOM), Start-Transcript 則預設為 Utf8NoBom 目標檔案中的編碼方式。

範例

範例 1:使用預設設定啟動文字記錄檔

Start-Transcript

此命令會在預設檔案位置啟動文字記錄。

範例 2:在特定位置啟動文字記錄檔

Start-Transcript -Path "C:\transcripts\transcript0.txt" -NoClobber

此命令會在的C:\transcripts檔案中Transcript0.txt啟動文字記錄。 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
Start-Transcript

文字記錄檔的完整路徑會儲存在喜好設定變數中 $Transcript 。 如需喜好設定變數的詳細資訊 $Transcript ,請參閱 about_Preference_Variables

參數

-Append

指出這個 Cmdlet 會將新的文字記錄新增至現有檔案的結尾。 使用 Path 參數來指定檔案。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Confirm

執行 Cmdlet 之前先提示您確認。

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Force

允許 Cmdlet 將文字記錄附加至現有的唯讀檔案。 在唯讀檔案上使用時,Cmdlet 會將檔案許可權變更為讀寫。 使用此參數時,Cmdlet 無法覆寫安全性限制。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-IncludeInvocationHeader

指出執行命令時,此 Cmdlet 會記錄時間戳。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-LiteralPath

指定文字記錄檔的位置。 與 Path 參數不同,LiteralPath 參數的值會與輸入時完全相同。 不會將任何字元解譯為通配符。 如果路徑包含逸出字元,請以單引弧括住它。 單引號會通知PowerShell不要將任何字元解譯為逸出序列。

Type:String
Aliases:PSPath, LP
Position:0
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-NoClobber

表示此 Cmdlet 不會覆寫現有的檔案。 根據預設,如果文字記錄檔存在於指定的路徑中, Start-Transcript 則會覆寫檔案而不發出警告。

Type:SwitchParameter
Aliases:NoOverwrite
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-OutputDirectory

指定要在其中儲存文字記錄的特定路徑和資料夾。 PowerShell 會自動指派文字記錄名稱。

Type:String
Position:0
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Path

指定文字記錄檔的位置。 輸入檔案的路徑 .txt 。 不允許通配符。 如果路徑中的任何目錄不存在,命令就會失敗。

如果您未指定路徑, Start-Transcript 請使用全域變數值 $Transcript 中的路徑。 如果您尚未建立此變數, Start-Transcript 請將文字記錄儲存在預設位置和檔名中。

Type:String
Position:0
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UseMinimalHeader

在文字記錄前面加上簡短標頭,而不是預設包含的詳細標頭。 此參數已在PowerShell 6.2中新增。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

顯示執行 Cmdlet 後會發生的情況。 Cmdlet 未執行。

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

輸入

None

您無法使用管線將物件傳送至此 Cmdlet。

輸出

String

此 Cmdlet 會傳回包含確認訊息和輸出檔案路徑的字串。

備註

若要停止文字記錄,請使用 Stop-Transcript Cmdlet。

若要記錄整個工作階段,請將 命令新增 Start-Transcript 至您的設定檔。 如需詳細資訊,請參閱 about_Profiles