2013년 4월 23일 화요일

powershell script를 사용해 eventlog를 백업 및 삭제 해보자

powershell script (ps1)을 이용하여 eventlog를 백업 하고 삭제 해보자

파워쉘을 사용하여 이벤트로그를 백업 하는 방법을 찾아봤다...
난 파워쉘에 대해 잘 알지 못해 구글링 해보았다.
파워쉘을 이용하여 이벤트 로그를 csv로 백업(링크1)하는 방법도 있고
dumpel.exe를 이용하여 이벤트로그를 백업(링크2)하는 방법도 있지만
파워쉘을 이용하여 evtx파일로 백업(링크3)하는게 내가 찾는 방법이고 제일 좋을 것 같다.


본래 링크3의 블로그 내용에는 다음과 같이 ps1이 짜여져 있지만

$today = (Get-Date).ToString("yyyyMMdd")


Get-WmiObject Win32_NTEventLogFile |
Where-Object { $_.LogFileName -Like "360*"} |
ForEach-Object {
#폴더가 미리 만들어져 있지 아니하면 저장 시 오류 남
$filename = "C:\" + $_.LogfileName + $today + '.evtx'
#기존에 있던 파일을 삭제하되 에러나도 닥치고 진행
del $filename -ErrorAction SilentlyContinue
#ReturnValue=0이면 성공적으로 백업받은 것임
$_.BackupEventLog($filename).ReturnValue
}



실행 안되는 부분과 필요없는 부분을 빼면
*필요없는 부분 : Where-Object { $_.LogFileName -Like "360*"} 
*실행안되는 부분 : del $filename -ErrorAction SilentlyContinue 는
                           Clear-Eventlog -LogName [LogName]로 변경


$today = (Get-Date).ToString("yyyyMMdd")

Get-WmiObject Win32_NTEventLogFile |
ForEach-Object {
#폴더가 미리 만들어져 있지 아니하면 저장 시 오류 남
$filename = "C:\" + $_.LogfileName + $today + '.evtx'
#ReturnValue=0이면 성공적으로 백업받은 것임
$_.BackupEventLog($filename).ReturnValue
}


Clear-Eventlog -LogName [LogName]


자~~ 여기까지가 아주 기본적인 단계이다..여기에다가 네트워크 드라이브를 붙여서 원격지에 저장하도록 해볼꺼다..



댓글 없음:

댓글 쓰기