2012-12-06 158 views
0

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

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 

首先 - 它说,它无法写入文件,因为它不存在吗?尽管我在上面创建了它。

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

回答

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 
+0

它仍然产生错误 - 找不到路径的一部分... – PnP

+0

@TheD增加了文件夹的创建。在你OP你创建一个不同的文件夹方面你想要保存它;) –

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 
+0

Facepalm!感谢明显的指针:) – PnP