2011/07/27

DateTime.ToString() 포맷 출력 예제

DateTime.ToString Method (String)
http://msdn.microsoft.com/en-us/library/zdtaw1bw.aspx

매번 찾아 볼려니 귀찮아서.... 요약만. ^^;;;

d: 6/15/2008
D: Sunday, June 15, 2008
f: Sunday, June 15, 2008 9:15 PM
F: Sunday, June 15, 2008 9:15:07 PM
g: 6/15/2008 9:15 PM
G: 6/15/2008 9:15:07 PM
m: June 15
o: 2008-06-15T21:15:07.0000000
R: Sun, 15 Jun 2008 21:15:07 GMT
s: 2008-06-15T21:15:07
t: 9:15 PM
T: 9:15:07 PM
u: 2008-06-15 21:15:07Z
U: Monday, June 16, 2008 4:15:07 AM
y: June, 2008

'h:mm:ss.ff t': 9:15:07.00 P
'd MMM yyyy': 15 Jun 2008
'HH:mm:ss.f': 21:15:07.0
'dd MMM HH:mm:ss': 15 Jun 21:15:07
'\Mon\t\h\: M': Month: 6
'HH:mm:ss.ffffzzz': 21:15:07.0000-07:00


2011/07/26

XPathDocument 에서 Namespace 존재하는 XML Parsing

윈도우 이벤트로그 XML 데이터를 활용해 보려고 하다가,. 기존에는 네임 스페이스 없는 XML 데이터만 파싱(네임스페이스 있는 XML 을 만들기는 하면서...ㅎㅎ)하는데 익숙해서,. 그대로 하니 쿼리가 안되서  한참 헤맴...;;

XPathDocument doc = new XPathDocument(new XmlTextReader("evtx.xml"));         
XPathNavigator nav = doc.CreateNavigator();

XmlNamespaceManager namespaceMgr = new XmlNamespaceManager(nav.NameTable);
namespaceMgr.AddNamespace("ns", "http://schemas.microsoft.com/win/2004/08/events/event");

XPathNodeIterator ni = nav.Select("//ns:Data", namespaceMgr);           
while (ni.MoveNext())
{
    ni.Current.MoveToFirstAttribute();
    string _Name = ni.Current.Value;
    ni.Current.MoveToParent();
    Console.WriteLine(_Name + ": " + ni.Current.ToString());
}

XmlNamespaceManager Class
http://msdn.microsoft.com/en-us/library/system.xml.xmlnamespacemanager.aspx


2011/07/23

wevtutil 를 이용한 이벤트로그 필터링

wevtutil 는 명령행에서 이벤트 로그를 필터링해서 가져올수 있는 유틸리티 입니다. 이벤트 로그를 가져오기 위해서는 다른 툴도 있기는 하지만,. wevtutil 는 윈도우 내장이며,. 특히 기본 이벤트 로그외 xpath 형식과 xml 데이터 형으로 가져올수 있는 강점이 있습니다.

wevtutil 에 대한 매뉴얼은 다음 페이지를 참고하시면 되겠습니다.
http://technet.microsoft.com/en-us/library/cc732848(WS.10).aspx

다음 예제는,. 윈도우 방화벽에서 룰 설정 관련 이벤트 로그만 가져오며, 특정 기간만 가져옵니다. 그리고 결과값은 XML 입니다.

wevtutil qe "Microsoft-Windows-Windows Firewall With Advanced Security/Firewall" /rd:true /q:"*[System[(EventID=2004 or EventID=2005 or EventID=2006) and TimeCreated[@SystemTime>='2011-07-01T06:10:08.000Z' and @SystemTime<='2011-07-22T06:30:00.999999999Z']]]" /f:XML

결과값이 XML 로 가져온다는 것은,. XML 포맷 특성상 데이터 호환성이 매우 높아서 여러가지 부분에서 활용이 가능합니다. 이와 같은 정형화된 포맷 데이터는 윈도우 운영체제 관리에 있어서 매우 중요한 요소입니다.



특히, XML 데이터의 경우, Text 형에서 반환하지 않는 매우 상세한 결과값을 줍니다. 이러한 XML 데이터에서 필요한 부분만 XML 파싱 처리를 하면 좋습니다.

만약,, 닷넷 프레임워크 4버젼이 설치되어 있는 시스템이라면,. EventLog 클래스를 통해서 여러가지 evtx 의 이벤트 로그를 가져오거나 EntryWrittenEventHandler 로 바로 받아 볼수 있습니다.


22-isnull-windows-adv-firewall-wevtutil.jpg

가장 많이 본 글