启动成绩单没有捕捉所有输出到日志文件..?(start-Transcript not capturi

2019-07-03 11:51发布

我有下面的代码,通过去,并得到预定的任务信息,并把该屏幕日志文件上发生的输出。

不过,我已经注意到的是,所有的错误记录,除了有“访问被拒绝”服务器 - 我怎么能在日志文件中记录这些错误也是如此。

下面是代码:

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

这里是屏幕上的输出:

> 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.

下面是在日志文件输出....没有访问被拒绝出...?

> 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

Answer 1:

这与本机命令输出的行为不被记录在启动成绩单输出,但输出到控制台连接错误报告315857 。 请参阅可能的解决方案的解决方法。



Answer 2:

最简单的解决方法是将管道中的本地命令的结果Out-Host

schtasks.exe /query /S $name /fo CSV /v >$scheduledpath\$name.csv | Out-Host


Answer 3:

以上都不是为我工作。 我发现, 从2009年的链接这一问题的讨论。 但是,微软从2010年博客解决了这个问题对我来说。

总之,配管的本机命令输出到Out-默认。

  schtasks.exe /query /S $name /fo CSV /v | Out-Default

{我并没有真正尝试该行自己,但你的想法。}



Answer 4:

啊,正确的答案应该是:

$命令= “SchTasks.exe会/查询/ S $名称/ FO CSV / V 2>&1> $ scheduledpath \ $ name.csv”

即管stderror(管2)到stdout(管1),这样既示出了在标准输出。



Answer 5:

获取服务标签

    $servicetag = Get-WmiObject win32_bios | Select-Object -ExpandProperty SerialNumber 
    Write-output $servicetag

我用写输出一行在我的脚本的顶部,一个后,他们都写主机。 但是,每一个“写”输出现在显示在我的脚本。



文章来源: start-Transcript not capturing all output to log file..?