0

基本上,我从事件日志中提取一些日志条目,对其进行格式化,然后将其写入文本文件,然后我将通过电子邮件发送。这是出于 Windows Server Backup 监视目的。

New-Item -ItemType directory -Path C:\WSBReports\
New-Item -ItemType file -Path C:\WSBReports\DailyReport.txt

$yestDate = (Get-Date) - (New-TimeSpan -day 1)
# echo $yestDate
Get-WinEvent -logname "Microsoft-Windows-Backup" |
            where {$_.timecreated -ge $yesterday} |

Format-Table TimeCreated, ID, ProviderName, Message -AutoSize -Wrap > C:\WSB_Reports\DailyReport.txt

首先 - 它说它不能写入文件,因为它不存在?即使我在上面创建了它。

而且 - 我认为逻辑是错误的,因为每次脚本运行时我都需要覆盖这个文件,这可能吗?

4

2 回答 2

2


Get-WinEvent -logname "Microsoft-Windows-Backup" |
            where {$_.timecreated -ge **$yesterday**} |

$yesterday 未定义,因为您对变量的拼写是 $yestDate!

我的以下脚本按预期工作


Get-WinEvent -logname "Application" | where {$_.timecreated -ge $yestDate} | format-table ItemCreated,ID,ProviderName,Message  -AutoSize -Wrap > C:\WSBReports\DailyReport.txt
于 2012-12-06T13:58:59.460 回答
1

尝试:

New-Item -Type directory -Path C:\WSB_Reports\

$yesterday = (Get-Date) - (New-TimeSpan -day 1)
Get-WinEvent -logname "Microsoft-Windows-Backup" |
            where {$_.timecreated -ge $yesterday} |

Format-Table TimeCreated, ID, ProviderName, Message -AutoSize -Wrap | 
out-file  C:\WSB_Reports\DailyReport.txt
于 2012-12-06T13:45:56.453 回答