记录一个大的Powershell脚本

Cal*_*res 1 powershell logging

我正在写一个服务器一个大的脚本安装,我希望它是全自动的,也希望开发商能够解决它,如果它打破(因为它可能会!).为此,我想象使用Write-Output,Write-Debug,Write-Verbose,Write-Warning.

如何将所有这些写入写入(并加盖时间戳)到.txt文件?另外,我知道通常Write-Error通常用红色写,但.txt文件中没有颜色.有没有办法帮助区分它们,比如可能给它们所有的写入前缀,如Debug,Warning等?

JPB*_*anc 6

哦,来吧!为什么使用文本文件旧时尚日志记录,在整个操作系统中分散信息,需要由负责生产的人员用镊子收集?

由于PowerShell适用于.NET,因此您可以使用Even Tracing for Windows(ETW)或使用系统日志.

您可以为所有脚本创建和使用一个PowerShell日志,以便为负责生产的人员发布执行(信息)和错误的详细信息(与良好的异常处理协调).您可以为一个脚本专用日志(因为它存在DNS等日志)

这是一个例子(PowerShell V2有它自己的CmdLets):

# List of logs
Get-EventLog -list

# Creating your own log
New-EventLog -LogName "SlxScripting" -Source "MaSource"

# List of logs
Get-EventLog -list

# Writting in your own log
Write-EventLog -LogName "SlxScripting" -EventId 12 `
               -Message "Mon Message" 
               -Source "MaSource" -EntryType Warning

# Reading (consuming) in your own log
Get-EventLog -LogName "SlxScripting"  

# Suppressing your log (if needed)
Remove-EventLog -LogName "SlxScripting"
Run Code Online (Sandbox Code Playgroud)