For Each strComputer in arrComputers
Set objWMIService = G("winmgmts:" &
"{impersonationLevel=impersonate,(Backup, Security)}!\\" & strComputer)
Set colLogFiles = objWMIService.ExecQuery("Select * from Win32_NTEventLogFile")
For Each objLogFile in colLogFiles
errBackupLog = objLogFile.BackupEventLog("C:\" & strBackupName &
strComputer & "-" & objLogFile.LogFileName & ".evt")
EventLogFile = strBackupName & strComputer & "-" &
objLogFile.LogFileName & ".evt"
If errBackupLog <0 Then
WScript.Echo "The " & objLogFile.LogFileName & " could not be cleared from "
& strComputer & "."
Else
objLogFile.ClearEventLog()
End If
Next
oWSH.MapNetworkDrive "X:", "\\" & strComputer & "\C$"
oFS.MoveFile "X:\*.evt", "\\<computername>\C$\Script\EventLogs\"
oWSH.RemoveNetworkDrive "X:"
Next
위 vbscript 는,
WMI를 이용해서 윈도우에 있는 이벤트로그를 특정 evt 파일로 백업하는 스크립트 입니다.
코드내용은 아주 간단한 내용입니다.
위 코드에서 지정해줘야 하는 변수는,
strComputer --> 이벤트로그를 백업하는 로컬 또는 네트워크 컴퓨터
strBackupName --> 백업파일 저장 이름
errBackupLog 는 WMI BackupEventLog 메소드의 리턴값입니다.
0 : Success 성공
8 : Privilege missing 권한없음
21 : Invalid parameter 파라미터값이 잘못되어 있음
183 : Archive file name already exists 이미 동일한 백업파일명이 있음
(* 덮어쓰기 옵션도 지원하면 좋을텐데....)
마지막 부분에서, MapNetworkDrive 는 네트워크 드라이브로 연결해서 특정 컴퓨터에 네트워크로 복사하는 것입니다.
이벤트로그 MMC에서 하던것을, 예약작업 관리자에 걸어 놓으면 자동으로 할수가 있겠죠.
댓글 없음:
댓글 쓰기