2010. 9. 27. 22:25
안녕하세요. 엉스데브 입니다.
이번엔 PowerShell 에서 이벤트 로그 저장 설정을 변경하는 방법에 대해 알아보았습니다.
PowerShell 에서 기본적으로 제공하는 cmdlet 중 하나인 Limit-EventLog 을 사용하면 됩니다.
Limit-EventLog cmdlet 을 통해 다음의 3가지 이벤트 로그 저장 설정을 변경 할 수 있습니다.
1. 최대 로그 크기
2. 최대 로그 크기에 도달 했을 때 취할 액션
3. 이벤트가 이벤트 로그 내에서 유지되어야 하는 최소 일수
먼저 현재 이벤트 로그 목록 및 설정 상태를 확인 합니다. 다음과 같이 실행하면 됩니다.
1. 최대 로그 크기 를 변경하려면, 다음과 같이 실행하면 됩니다.
2. 최대 로그 크기에 도달 했을 때 취할 액션을 변경하려면, 다음과 같이 실행하면 됩니다.
최대 로그 크기에 도달 했을 때 취할 액션은 다음의 3가지 중 하나를 지정 가능 합니다.
- DoNotOverwrite: 기존 항목이 유지되고 새 항목이 삭제됩니다.
- OverwriteAsNeeded: 각각의 새 항목이 가장 오래된 항목을 덮어씁니다.
- OverwriteOlder: 새 이벤트가 MinimumRetentionDays 속성에 지정된 값보다 오래된 이벤트를 덮어씁니다. MinimumRetentionDays 속성에 지정된 값보다 오래된 이벤트가 없는 경우 새 이벤트가 삭제됩니다.
3. 이벤트가 이벤트 로그 내에서 유지되어야 하는 최소 일수를 변경하려면 다음과 같이 실행하면 됩니다.
반드시 최대 로그 크기에 도달 했을 때 취할 액션이 OverwriteOlder 로 지정 되어야 합니다.
헌데, 문제를 발견했습니다.
저는 이벤트 로그가 가득 찼을 때 이벤트 로그를 별도 저장 해 두고 새롭게 쌓게(아카이빙) 하고 싶었습니다만,
현재 PowerShell에서는 이렇게 설정 할 수 있는 방법을 찾을 수 없었습니다.
대신 wevtutil 이라는 커맨드라인 유틸리티를 통해 설정이 가능했습니다. 다음과 같이 실행하면 됩니다.
* 위 명령에 대한 자세한 설명을 보시려면, 아래 더보기를 클릭하세요.
wevtutil 은 Windows 2008 부터 제공되는 커맨드 라인 유틸리티로서, 새롭게 변경 된 이벤트 로그 시스템을 커맨드 라인 상에서 관리 할 수 있도록 도와 줍니다.
wevtutil 을 자세히 살펴 본 결과, PowerShell 에서는 설정 할 수 있는 모든 부분을 설정 할 수 있을 뿐만 아니라,
PowerShell 에서는 설정 할 수 없는 부분도 wevtutil 은 수정이 가능 했습니다.
현재는 PowerShell 에서 제공하는 이벤트 로그 관련 cmdlet 보다 wevtutil 가 훨씬 강력한 기능을 가지고 있다고 판단 됩니다.
PowerShell 에서도 커맨드라인 유틸리티를 자유롭게 사용 할 수 있으므로, 이벤트 로그 설정과 관련한 작업시 wevtutil 을 적극적으로 사용하는 것이 바람직 하다고 봅니다. 물론 Object 기반의 처리를 못한다는 아쉬움은 남습니다.
앞으로 PowerShell 은 더욱더 강력해져서 윈도우 시스템의 모든 부분을 다룰 수 있게 되리라 기대하고 있습니다만,
역시 아직은 아쉬운 부분이 많이 있는것 같습니다.
PowerShell 이 더 강력해 지기를 바래 봅니다.
이번엔 PowerShell 에서 이벤트 로그 저장 설정을 변경하는 방법에 대해 알아보았습니다.
PowerShell 에서 기본적으로 제공하는 cmdlet 중 하나인 Limit-EventLog 을 사용하면 됩니다.
Limit-EventLog cmdlet 을 통해 다음의 3가지 이벤트 로그 저장 설정을 변경 할 수 있습니다.
1. 최대 로그 크기
2. 최대 로그 크기에 도달 했을 때 취할 액션
3. 이벤트가 이벤트 로그 내에서 유지되어야 하는 최소 일수
먼저 현재 이벤트 로그 목록 및 설정 상태를 확인 합니다. 다음과 같이 실행하면 됩니다.
Get-EventLog -List
1. 최대 로그 크기 를 변경하려면, 다음과 같이 실행하면 됩니다.
Limit-EventLog -LogName "로그이름" -MaximumSize "로그크기"
2. 최대 로그 크기에 도달 했을 때 취할 액션을 변경하려면, 다음과 같이 실행하면 됩니다.
Limit-EventLog -LogName "로그이름" -OverFlowAction "액션"
최대 로그 크기에 도달 했을 때 취할 액션은 다음의 3가지 중 하나를 지정 가능 합니다.
- DoNotOverwrite: 기존 항목이 유지되고 새 항목이 삭제됩니다.
- OverwriteAsNeeded: 각각의 새 항목이 가장 오래된 항목을 덮어씁니다.
- OverwriteOlder: 새 이벤트가 MinimumRetentionDays 속성에 지정된 값보다 오래된 이벤트를 덮어씁니다. MinimumRetentionDays 속성에 지정된 값보다 오래된 이벤트가 없는 경우 새 이벤트가 삭제됩니다.
3. 이벤트가 이벤트 로그 내에서 유지되어야 하는 최소 일수를 변경하려면 다음과 같이 실행하면 됩니다.
반드시 최대 로그 크기에 도달 했을 때 취할 액션이 OverwriteOlder 로 지정 되어야 합니다.
Limit-EventLog -LogName "로그이름" -OverFlowAction OverwriteOlder -RetentionDays "유지일수"
헌데, 문제를 발견했습니다.
저는 이벤트 로그가 가득 찼을 때 이벤트 로그를 별도 저장 해 두고 새롭게 쌓게(아카이빙) 하고 싶었습니다만,
현재 PowerShell에서는 이렇게 설정 할 수 있는 방법을 찾을 수 없었습니다.
대신 wevtutil 이라는 커맨드라인 유틸리티를 통해 설정이 가능했습니다. 다음과 같이 실행하면 됩니다.
wevtutil sl "로그이름" /rt:true /ab:true
* 위 명령에 대한 자세한 설명을 보시려면, 아래 더보기를 클릭하세요.
wevtutil 은 Windows 2008 부터 제공되는 커맨드 라인 유틸리티로서, 새롭게 변경 된 이벤트 로그 시스템을 커맨드 라인 상에서 관리 할 수 있도록 도와 줍니다.
wevtutil 을 자세히 살펴 본 결과, PowerShell 에서는 설정 할 수 있는 모든 부분을 설정 할 수 있을 뿐만 아니라,
PowerShell 에서는 설정 할 수 없는 부분도 wevtutil 은 수정이 가능 했습니다.
현재는 PowerShell 에서 제공하는 이벤트 로그 관련 cmdlet 보다 wevtutil 가 훨씬 강력한 기능을 가지고 있다고 판단 됩니다.
PowerShell 에서도 커맨드라인 유틸리티를 자유롭게 사용 할 수 있으므로, 이벤트 로그 설정과 관련한 작업시 wevtutil 을 적극적으로 사용하는 것이 바람직 하다고 봅니다. 물론 Object 기반의 처리를 못한다는 아쉬움은 남습니다.
앞으로 PowerShell 은 더욱더 강력해져서 윈도우 시스템의 모든 부분을 다룰 수 있게 되리라 기대하고 있습니다만,
역시 아직은 아쉬운 부분이 많이 있는것 같습니다.
PowerShell 이 더 강력해 지기를 바래 봅니다.
'Powershell > 엉스데브' 카테고리의 다른 글
PowerShell 로 원격 서버 관리하기. (5) | 2010.10.05 |
---|---|
PowerShell 에서 작업 한 모든 내용을 기록하기(Start-Transcript) (0) | 2010.09.28 |
PowerShell 에서 윈도우 내장 방화벽 관리하기 (0) | 2010.09.15 |
PowerShell 을 통해 IIS 관리하기2 (FTP 사이트 만들기) (0) | 2010.08.25 |
PowerShell 로 zip 파일 압축해제 및 압축 하기. (1) | 2010.08.25 |