2012-12-06 194 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