Fix Start-Transcript error when $Transcript is a PSObject wrapped string (#24963)

This commit is contained in:
Kris Borowinski
2025-02-07 22:23:05 +05:00
committed by GitHub
parent 1790f3a3e9
commit 0beb24e10f
2 changed files with 6 additions and 1 deletions
@@ -177,7 +177,7 @@ namespace Microsoft.PowerShell.Commands
}
else
{
_outFilename = (string)value;
_outFilename = (string)PSObject.Base(value);
}
}
@@ -86,6 +86,11 @@ Describe "Start-Transcript, Stop-Transcript tests" -tags "CI" {
$outputFilePath = Join-Path $TestDrive "PowerShell_transcript*"
ValidateTranscription -scriptToExecute $script -outputFilePath $outputFilePath
}
It "Should create Transcript file with 'Transcript' preference variable" {
# Casting to PSObject is necessary because Set-Variable does not automatically wrap the value in a PSObject
$script = "Set-Variable -Scope Global -Name Transcript -Value ([PSObject]'$transcriptFilePath'); Start-Transcript"
ValidateTranscription -scriptToExecute $script -outputFilePath $transcriptFilePath
}
It "Should Append Transcript data in existing file if 'Append' parameter is used with Path parameter" {
$script = "Start-Transcript -path $transcriptFilePath -Append"
ValidateTranscription -scriptToExecute $script -outputFilePath $transcriptFilePath -append