Jak mogę usunąć określone zdarzenia z dziennika zdarzeń w systemie Windows Server 2008?

20

Czy potrzebuję do tego narzędzia innej firmy?

JC.
źródło
4
Ja też. Przychodzą mi na myśl tylko złe rzeczy.
Stu Thompson
3
Mam też taką prośbę. Na przykład: RDP ma pewne problemy z jedną z moich drukarek. Pojawia się w dzienniku aplikacji z dużym tłustym X, który jest następnie odbierany WSZYSTKO (szczególnie na kontrolerach domeny, np. Dcdiag itp.) I powoduje znacznie więcej problemów. Być może lepszym pytaniem jest: jak ukryć rejestrowanie niektórych rodzajów błędów?
Matt Rogish
3
Zło, ha. Miałem przypadkową aplikację, która pisała wiadomości, które powodowały problemy z usługą powiadomień.
JC.
2
@Matt Rogish sposobem na wyeliminowanie rejestrowania określonego rodzaju błędu jest naprawienie błędu. Fakt, że rejestruje jakiś problem, wskazuje, że coś jest nie tak, co należy naprawić, a nie przyjazne przypomnienie o napełnieniu samochodu gazem.
mrTomahawk
1
To moja własna usługa, którą napisałem. Byłem tylko ciekawy, czy da się to zrobić.
JC.

Odpowiedzi:

18

Microsoft celowo uniemożliwia ci to. Cała koncepcja Podglądu zdarzeń polega na przedstawieniu Ci pewnych wydarzeń, które mogą wymagać Twojej uwagi. Gdyby ktoś mógł wejść i usunąć dowolne przypadkowe zdarzenie, wówczas system mógłby - w pewnym sensie - zostać skompromitowany bez twojej wiedzy, przez co byłby niebezpieczny.

Jeśli masz zarejestrowane zdarzenie błędu, dowiedz się, co jest przyczyną problemu, i napraw je. Nie chcesz łatać dziury w tamie, wbijając w nią woreczek gumy.

Jeśli coś zbyt często rejestruje zdarzenia informacyjne lub ostrzegawcze, wówczas źródło dziennika zdarzeń (Microsoft lub firma zewnętrzna) ma wiele ustawień, które wskazują, jak często lub do jakiego poziomu rejestrowania jest skonfigurowane dla aplikacji. W tym celu udajesz się zminimalizować rejestrowanie, a nie operację na dzienniku zdarzeń.

mrTomahawk
źródło
4
Tylko administrator powinien mieć dostęp do dzienników, a jeśli złośliwy użytkownik uzyska uprawnienia administracyjne do twojego urządzenia, to już jesteś.
bambams
2
@mrTomahawk, To nie ma znaczenia. Najwyraźniej ktoś pyta „Jak mogę usunąć określone zdarzenia z dziennika zdarzeń w systemie Windows Server 2008?” chce to zrobić. Jak więc możemy to zrobić? Jeśli nie jest to możliwe, dlaczego? Jak to możliwe, że nie jest to możliwe?
Pacerier
Masz ważny punkt. Ale jak odfiltrować zdarzenia, niż je usunąć? Jeśli z jakiegoś powodu mamy dużo hałasu i pracujemy nad tym, ale chcemy również zobaczyć, co jeszcze ma problemy, jak to robimy?
John Rocha,
1
@JohnRocha Z szybkiego wyszukiwania wynika, że ​​w ich filtrowaniu nie ma operatora „nie”. Co wydaje się absurdalne.
reirab
1
@JohnRocha Wykonywanie niestandardowych zapytań w dzienniku zdarzeń wykorzystuje ograniczony podzbiór XPath 1.0 do pisania zapytań w formacie XML. Wyrażenia XPath w elemencie Select określają, co odzyskujesz. Element Pomiń podąża za Wybierz i usuwa elementy, których nie chcesz.
JamieSee
35

Stanowisko PO jest ważne. Problem numer jeden z rejestrowaniem, raportowaniem błędów i alarmowaniem to biały szum. Gdy zgłaszanych jest zbyt wiele „błędów”, a większość z nich ma niski priorytet lub w ogóle ich nie dotyczy, administratorzy zwykle ignorują WSZYSTKIE błędy. Dobry czy zły, to tylko fakt z życia.

Jednym z błędów, o których mówi, jest (chyba) zdarzenie o identyfikatorze 1111. Oznacza to po prostu, że masz drukarkę zmapowaną ze sterownikiem, który nie jest dostępny na serwerze, z którym jesteś połączony. W większości przypadków jest to błąd, który nie ma znaczenia ... nie ma co „naprawiać”, ponieważ nie stanowi to problemu.

Jeśli chcesz znaleźć rzeczywiste problemy i masz określone identyfikatory zdarzeń, których nie chcesz przejrzeć, utwórz niestandardowy widok, wykonując następujące czynności:

  1. W dzienniku zdarzeń kliknij „Filtruj bieżący dziennik” w okienku akcji.
  2. Mniej więcej w połowie wyskakującego okna dialogowego znajdziesz pole tekstowe z <All Event IDs>
  3. Zamień ten tekst na swoje potrzeby dotyczące filtrów.
    • Jeśli chcesz tylko określone zdarzenie, umieść tam identyfikator zdarzenia.
    • Jeśli masz wielokrotności, użyj przecinków, aby je rozdzielić.
    • Jeśli chcesz wykluczyć, użyj znaku minus.
    • W tym przypadku użylibyśmy „-1111” (bez cudzysłowu).
  4. Kliknij „OK” w oknie dialogowym.
  5. W okienku akcji kliknij teraz „Zapisz filtr w widoku niestandardowym”.

Teraz, gdy chcesz przejrzeć dziennik zdarzeń, skorzystaj z niestandardowego widoku i zostaną wyświetlone tylko te informacje, które naprawdę Cię dotyczą.

Wiem, że jest to późny post do martwego wątku, ale mam nadzieję, że pomoże komuś innemu, kto googluje bardziej niż posty „[Działa zgodnie z przeznaczeniem, n00b!]” ;-)

Chad Patrick
źródło
6
To filtrowanie, a nie usuwanie. Szczerze mówiąc, dałeś świetną (i przydatną) odpowiedź na pytanie, które nie zostało zadane.
mfinni
1
@mfinni, i szczerze mówiąc, nie udzielił żadnej odpowiedzi na zadane pytanie . Pytanie 35 tys. Odwiedzających tę stronę zadaje.
Pacerier
4
Jest to świetna i przydatna odpowiedź, która najlepiej odpowiada intencji pierwotnego pytania, biorąc pod uwagę ograniczenia nałożone przez Microsoft.
Mike Beaton,
2
Myślę, że komentarze po obu stronach są prawidłowe. Informacje na temat filtrowania są o wiele bardziej pomocne niż pozostawienie odpowiedzi „nie możesz”. Przyjęta odpowiedź jest poprawna i dałem jej +1. Odpowiedź @ chad-patrick jest również bardzo pomocna, ja też dałem +1 tej. Ale odpowiedź Chada ma wadę, nie powinieneś po prostu używać znaku minus na identyfikatorach zdarzeń , ponieważ niektóre aplikacje używają tych samych liczb. Wymagane jest bardziej rygorystyczne filtrowanie dostawcy i identyfikatora zdarzenia. Ponieważ szczegóły na ten temat są poza kontekstem, oto link startowy: bit.ly/1d9seDp
TonyG
4

W systemie Windows jedyne, co możesz zrobić, to wyczyścić cały dziennik. Znalazłem tylko jedną aplikację innej firmy, która twierdzi, że to robi - Winzapper , jednak nigdy jej nie używałem i mówi, że jest dla NT i 2000, więc nie wiem, czy będzie działać na serwerze 2003/2008. Należy pamiętać, że podczas korzystania z nich istnieje możliwość uszkodzenia dziennika zdarzeń, dlatego należy postępować ostrożnie.

Sam Cogan
źródło
1

Rozwiązaniem problemu może być zmiana zasad inspekcji w zasadach grupy. Nie wiedząc, czego konkretnie nie chcesz pokazywać, nie jestem pewien, czy jest na to odpowiednie ustawienie, ale oto przykład.

W konsoli zarządzania zasadami grupy przejdź do sekcji Konfiguracja komputera - Ustawienia systemu Windows - Ustawienia zabezpieczeń - Zasady lokalne - Zasady inspekcji. Nie ma tu MNIE ziarnistości, ale może uda ci się pozbyć tego, co wypełnia twoje dzienniki. (Moje DC nie są 2008, więc mam to z perspektywy AD 2003, mam nadzieję, że nie jest zupełnie inaczej)

Kara Marfia
źródło
Dobra uwaga, ale nie usuwam istniejących dzienników. Wpływa tylko na przyszłe dzienniki.
Pacerier
-1

Możesz napisać aplikację .net, aby usunąć dziennik zdarzeń i źródło zdarzeń.

Przykładowy kod źródłowy, jak poniżej:

class Program
{
    static void Main(string[] args)
    {
        System.Diagnostics.EventLog.DeleteEventSource("YourEventSourceName");
        System.Diagnostics.EventLog.Delete("YourEventName");
    }
}

Odniesienie: http://msdn.microsoft.com/en-us/library/system.diagnostics.eventlog(v=vs.100).aspx

qifahuang
źródło
Jak mogę usunąć WSZYSTKIE wpisy Dziennik zdarzeń aplikacji ?, nie usuwaj dziennika zdarzeń aplikacji, tylko wpisy
Kiquenet
Czy ktoś to przetestował? Czy to działa na wszystkie wydarzenia?
Pacerier
-1

Możesz usunąć wpis z tej lokalizacji rejestru udziału, aby usunąć zdarzenie:

HKEY_LOCAL_MACHINE \ SYSTEM \ ControlSet001 \ services \ eventlog

Aashish Gupta
źródło
Nie, nie możesz stamtąd usunąć określonego wydarzenia. Stamtąd możesz usunąć / zniszczyć dzienniki zdarzeń i dostawców. Nie to samo.
Rob Moir