start-Transcript not capturing all output to log file..?

powershell, powershell-2.0

Solution

This behavior with native command output not being recorded in Start-Transcript output but being output to the console is reported in connect bug 315857. See workarounds for possible solutions.

Problem

I have the below code that goes through and gets scheduled tasks info and puts the output that occurs on the screen to a log file. However, what I have noticed is that all errors are logged EXCEPT for servers that have "Access is denied" - how can I log those errors in the log file as well. Below is the code: ``` Start-Transcript -path $scheduledpath\logging.txt -append foreach ($name in $names) { Write-Host "Running Against Server $name" -ForegroundColor Magenta if ( Test-Connection -ComputerName $name -Count 1 -ErrorAction SilentlyContinue ) { #$Command = "schtasks.exe /query /S $name /fo CSV /v >c:\tools\Scheduled\$name.csv" $Command = "schtasks.exe /query /S $name /fo CSV /v >$scheduledpath\$name.csv" Invoke-Expression $Command Clear-Variable Command -ErrorAction SilentlyContinue } else{ Write-Host "$name is Down" -ForegroundColor Red } } Stop-Transcript ``` Here is the output on the screen: ``` > Running Against Server SV064909 > SV064909 is Down > Running Against Server SV081372 > SV081372 is Down > Running Against Server YBEF008690_vorher_SV064930 > YBEF008690_vorher_SV064930 is Down > Running Against Server Alt_SV064921 > Alt_SV064921 is Down > Running Against Server SV073632 > ERROR: Access is denied. > Running Against Server SV073633 > ERROR: Access is denied. ``` Here is the output in the LOG file....no ACCESS IS DENIED Shown...? ``` > Running Against Server SV064909 > SV064909 is Down > Running Against Server SV081372 > SV081372 is Down > Running Against Server YBEF008690_vorher_SV064930 > YBEF008690_vorher_SV064930 is Down > Running Against Server Alt_SV064921 > Alt_SV064921 is Down > Running Against Server SV073632 > Running Against Server SV073633 ```

Original source