0

基本的に、イベント ログからいくつかのログ エントリを抽出してフォーマットし、それをテキスト ファイルに書き込んでメールで送りたいと考えています。これは、Windows Server バックアップの監視を目的としています。

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**} |

変数のスペルが $yestDate であるため、$yesterday は未定義です!

次のスクリプトは期待どおりに機能しています


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 に答える