chaoschciałem zrobić szybką wrzutę na temat odczytywania zdarzeń z logu ‚applications and services logs’… i okazuje się, że to całe małe universum XMLowe…

najważniejsze informacje: logi systemowe można czytać łatwo i przyjemnie przy pomocy ‚get-EventLog’. jednak kiedy chce się odczytać coś z logów aplikacji zaczynają się schody. jest polecenie ‚Get-WinEvent‚, jednak mechanizm za nim się kryjący jest okrutnie nieprzyjemny. cała architektura oparta jest na XMLu, w związq z czym jakiekolwiek przeszukiwanie albo jest pop(*^@#!@ne albo niewydajne. przykłady filtrów XML – standardowy i xPath ze strony technet:

w dużym skrócie – jest to zupełnie nieprzydatne w zastosowaniu codziennej administracji ponieważ:

  • trzeba nie tyle ‚znać’ obsługę XML ale ‚mieć ją wkompliowaną w mózg’. jak ktoś z tego korzysta dzień w dzień, to może trzepnie taki kodzik na kolanie, ale jak raz na jakiś czas trzeba coś wyszukać…
  • nie da się na stałe zrobić zapytania, ponieważ zdarzenia mają różną strukturę – składają się z różnych elementów. jak to w XML – trzeba ‚crawlować’  po elementach, bo ich struktura nie jest z góry znana
  • dwie różne metody, dwa totalnie różne zapisy, do tego w żaden sposób nie przystające do reszty PS

a przecież XML można przedstawić za pomocą obiektu… czemu ten wynalazek nie zwraca normalnego, ludzkiego obiektu z atrybutami?

polecam art, w którym można poczytać jak się przez to przegryźć.

a na szybko, bez developerki, może niewydajnie, ale działa:

scenariusz: znaleźć logi hyper-v, w których są wpisy dotyczące maszyny o nazwie ‚VMNAME’

inne pomocnicze polecenia na początek to ‚get-WinEvent -listProvider *’ oraz ‚get-WinEvent -listLog *’. trzeba jakiś list otwarty do scripting guy’a napisać, żeby ponaciskał na uczłowieczenie dostępu do logów aplikacyjnych… ahhh.. żeby tak czas pozwolił to można własny moduł napisać… /:

eN.