We found the following solution for this, as follows:
Start-Transcript "$(Split-Path $MyInvocation.MyCommand.Path -Leaf)-$((Get-Date).toUniversalTime().ToString('yyyy-MM-ddTHH-mm-ss')).log"
$ErrorActionPreference = "Stop"
trap {
Write-Error $error[0] -ErrorAction Continue
Stop-Transcript
exit 1
}
Write-Host "various things happening"
Write-Error "an error"
Stop-Transcript