2012-12-06 6 views
0

기본적으로 이벤트 로그에서 일부 로그 항목을 추출하고 형식을 지정한 다음 텍스트 파일에 쓰려는 다음 전자 메일로 보내려고합니다. 이것은 Windows Server 백업 모니터링 용도입니다.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. 너는 작전에서 너는 그것을 저장하고 싶은 곳에 다른 폴더 존경을 만든다;) –

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

관련 문제