基本上我从事件日志中提取一些日志条目,对其进行格式化,然后将其写入文本文件,然后我将通过电子邮件发送。这适用于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
首先 - 它说它无法写入文件,因为它不存在?即使我在上面创建了它。
而且 - 我认为逻辑是错误的,因为我需要在每次脚本运行时始终覆盖此文件,这可能吗?
答案 0 :(得分:2)
Get-WinEvent -logname "Microsoft-Windows-Backup" |
where {$_.timecreated -ge **$yesterday**} |
$昨天未定义,因为你的变量法术是$ yestDate!
我的以下脚本按预期工作
Get-WinEvent -logname "Application" | where {$_.timecreated -ge $yestDate} | format-table ItemCreated,ID,ProviderName,Message -AutoSize -Wrap > C:\WSBReports\DailyReport.txt
答案 1 :(得分: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