2010. 9. 28. 15:29

안녕하세요. 엉스데브 입니다.

오늘은 PowerShell 에서 작업 한 내용을 기록하는 방법에 대해 알아보겠습니다.

작업 내용을 기록하는 것은 아주 중요한 일입니다.
하지만, 작업만 하기에도 바쁜데 별도로 기록까지 하려면 어려움이 있는게 사실이죠.
그래서 PowerShell 은 기본적으로 History 기능을 제공하며, 대단히 큰  도움이 됩니다.

하지만, History 기능은 입력한 내용만 기록 할 뿐, 출력 내용까지 기록 하지는 않습니다.
입력 및 출력까지 PowerShell 로 작업 한 모든 기록을 남기고자 한다면, Start-Transcript cmdlet 을 사용하면 됩니다.




Start-Transcript cmdlet 을 아무런 추가 파라미터 없이 실행하게 되면, 기본적으로 내문서 디렉터리에
"PowerShell_transcript.날자시간정보.txt" 형식의 이름으로 작업 내용이 기록되는 파일이 생성 됩니다.




Start-Transcript cmdlet 의 자세한 파라미터 정보를 보시려면, 아래의 더보기 를 클릭하세요.




작업 내용 기록을 종료하고 싶을 때에는 Stop-Transcript cmdlet 을 사용하거나, 그냥 PowerShell 창을 닫으면 됩니다.




Start-Transcript cmdlet 을 Profile 에 넣어서 항상 작업 기록이 남도록 해 두었습니다. 든든하네요. ^^

작업 기록이란게 남길때는 귀찮지만, 나중에 필요할때는 정말 절실한 데이터 입니다.
여러분들 모두 작업 기록을 꼭 남기셔서 차후에 유용하게 사용하실 수 있기를 바랍니다.

Posted by 알 수 없는 사용자
:
2010. 9. 27. 22:25
안녕하세요. 엉스데브 입니다.

이번엔 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 이 더 강력해 지기를 바래 봅니다.
Posted by 알 수 없는 사용자
:
2010. 9. 15. 19:19


안녕하세요 @우주인입니다.
파워쉘을 사용할때 출력결과가 너무 많아 보거나, 따로 복사하기 까다로울때가 있습니다.
이때 유용한 cmdlet이 바로 clip 입니다.  간단히 명령어 뒤에 | 연결하여 사용하시면 Windows Clipboard로 자동복사되니 워드패드나 메모장에 출력하여 사용이 가능합니다.

PS C:\Users\jaguly> Get-Process | clip


원본: http://vstarmanv.tistory.com/entry/Clip을-이용한-복사

'Powershell > @우주인' 카테고리의 다른 글

PowerShell Debug(Set-PSDebug)  (0) 2010.10.05
[MSSQL]WMI for SQL Management(2)-ClientNetworkProtocol  (0) 2010.10.05
Add-PSSnapin  (0) 2010.09.15
PowerShell Default Snap-Ins  (0) 2010.09.15
.NET Assembly load  (0) 2010.09.15
Posted by 알 수 없는 사용자
:

BLOG main image
Windows Server를 공부 하는 사람들의 팀블로그 by 마성민

카테고리

분류 전체보기 (76)
Windows (2)
Powershell (56)
AD (0)
Exchange (6)
System Center (9)
IIS (0)
SQL (3)
Sharepoint (0)

태그목록

Tistory Cumulus Flash tag cloud by BLUEnLIVE requires Flash Player 9 or better.

Total :
Today : Yesterday :