正如标题所示,你是如何做到这一点的所有写输出 - 无论它们出现在哪里 - 自动附加到你定义的日志文件?这样,脚本的阅读效果会更好,并且会删除一些工作!
下面的小例子,如果可能的话,我想看看没有“| Out-File”,但仍然让它们输出到那个文件!
$Author = 'Max'
$Time = Get-Date -Format "HH:mm:ss.fff"
$Title = "Illegal Software Removal"
$LogName = "Illegal_Remove_$($env:COMPUTERNAME).log"
$Log = "C:\Windows\Logs\Software" + "\" + $LogName
$RemoteLog = "\\Server\Adobe Illegal Software Removal"
Set-PSBreakpoint -Variable Time -Mode Read -Action { $global:Time = Get-Date -format "HH:mm:ss.fff" } | Out-Null
If((Test-Path $Log) -eq $False){ New-Item $Log -ItemType "File" -Force | Out-Null }
Else { $Null }
"[$Time][Startup] $Title : Created by $Author" | Out-File $Log -Append
"[$Time][Startup] Configuring initial variables required before run..." | Out-File $Log -Append
编辑:这需要在PS v2.0上运行,我不希望输出只显示在日志中的屏幕上。所以我有相同的功能,但脚本看起来像......
"[$Time][Startup] $Title : Created by $Author"
"[$Time][Startup] Configuring initial variables required before run..."
答案 0 :(得分:3)
您有两个选项,一个是在调用脚本时执行重定向,例如:
PowerShell.exe -Command "& {c:\myscript.ps1}" > c:\myscript.log
或者您可以使用Start-Transcript
命令记录shell看到的所有内容(exe输出除外)。脚本完成后,请致电Stop-Transcript
。