Jak zidentyfikować zakończony proces Windows, jeśli nadal mam jego PID?

14

Tło: W środku mojej pracy nagle pojawiła się umowa licencyjna na instalację „Microsoft Mouse and Keyboard Center”. Chciałbym zrozumieć, jaki proces uruchomił instalację, ale zobaczyłem, że nie ma go przy użyciu Process Explorer. Mogłem tylko znaleźć jego PID (patrz zrzut ekranu).

Pytanie:

Jeśli używasz Process Explorer , być może wiesz, że proces macierzysty procesu już nie istnieje i możesz zobaczyć tylko jego PID:

wprowadź tutaj opis obrazu

Czy są jakieś dzienniki systemu Windows zawierające powiązanie PID z uruchomionym procesem, więc mogę dowiedzieć się, jaki proces działał pod danym PID?

Najlepiej interesują mnie scenariusze, w których nie spodziewałem się tego, więc nie użyłem Process Monitor do przechwytywania zdarzeń w systemie.

miroxlav
źródło

Odpowiedzi:

11

Czy są jakieś dzienniki systemu Windows zawierające powiązanie PID z uruchomionym procesem

Domyślnie nie ma takich dzienników. Można jednak włączyć zdarzenia śledzenia procesów w dzienniku zdarzeń zabezpieczeń systemu Windows.

Uwagi:


Jak używać zdarzeń śledzenia procesu w dzienniku zabezpieczeń systemu Windows

W systemie Windows 2003 / XP otrzymujesz te zdarzenia, po prostu włączając zasady inspekcji procesu śledzenia.

W systemie Windows 7/2008 + należy włączyć podkategorię Audit Process Creation i opcjonalnie podkategorie Audit Process Termination, które można znaleźć w sekcji Advanced Audit Policy Configuration w obiektach zasad grupy.

Zdarzenia te są niezwykle cenne, ponieważ dają kompleksową ścieżkę audytu za każdym razem, gdy każdy plik wykonywalny w systemie jest uruchamiany jako proces. Można nawet określić, jak długo przebiegał proces, łącząc zdarzenie tworzenia procesu ze zdarzeniem kończącym proces, używając identyfikatora procesu znalezionego w obu zdarzeniach. Przykłady obu zdarzeń przedstawiono poniżej.

wprowadź tutaj opis obrazu

Źródło Jak używać zdarzeń śledzenia procesu w dzienniku zabezpieczeń systemu Windows


Jak włączyć tworzenie procesu kontroli

  1. Uruchom gpedit.msc

  2. Wybierz „Ustawienia systemu Windows”> „Ustawienia zabezpieczeń”> „Zasady lokalne”> „Zasady inspekcji”

    wprowadź tutaj opis obrazu

  3. Kliknij prawym przyciskiem myszy „Śledź śledzenie procesu” i wybierz „Właściwości”

  4. Zaznacz „Sukces” i kliknij „OK”

    wprowadź tutaj opis obrazu


Co to jest śledzenie procesu kontroli

To ustawienie zabezpieczeń określa, czy system operacyjny kontroluje zdarzenia związane z procesem, takie jak tworzenie procesów, zakończenie procesu, obsługa duplikacji i pośredni dostęp do obiektów.

Jeśli to ustawienie zasad jest zdefiniowane, administrator może określić, czy kontrolować tylko sukcesy, tylko awarie, zarówno sukcesy, jak i niepowodzenia, lub w ogóle nie kontrolować tych zdarzeń (tj. Ani sukcesów, ani niepowodzeń).

Jeśli włączona jest kontrola sukcesu, wpis kontroli jest generowany za każdym razem, gdy system operacyjny wykonuje jedną z tych czynności związanych z procesem.

Jeśli włączona jest kontrola awarii, wpis kontroli jest generowany za każdym razem, gdy system operacyjny nie wykona jednej z tych czynności.

Domyślnie: brak audytu

Ważne: Aby uzyskać większą kontrolę nad zasadami inspekcji, użyj ustawień w węźle Zaawansowana konfiguracja zasad inspekcji. Aby uzyskać więcej informacji na temat konfiguracji zaawansowanych zasad inspekcji, zobacz http://go.microsoft.com/fwlink/?LinkId=140969 .

DavidPostill
źródło
Dave, może mógłbyś użyć podejścia „najszybszy pistolet na zachód” . Podczas pisania długiej i rozbudowanej odpowiedzi, wykonałem kroki w drugiej odpowiedzi (tak samo jak dodałeś później) i miałem zamiar ją zaakceptować. Więc teraz mam dylemat, który odpowiedzieć ... :)
miroxlav
1
Wolałbym mieć najlepszą odpowiedź niż pierwsza odpowiedź;) Jeśli są tym samym, to jest to bonus. Poinformowałem Cię (w komentarzu teraz), że przygotowuję moją odpowiedź. Korzystam z wolnego połączenia internetowego za pośrednictwem telefonu komórkowego: /
DavidPostill
Oh tak, zrobiłeś. OTOH, być może nie wstydź się pisać „możesz włączyć rejestrowanie kontroli w lokalnych politykach”, publikuj i kontynuuj tworzenie odpowiedzi o wartości edukacyjnej. Czasami nawet mała wskazówka może mi pomóc (OP) niż czekać 60 minut na świetną odpowiedź :) Znaczy, wiem, gdzie są lokalne zasady, potrzebowałem tylko drobnej wskazówki.
miroxlav
@DavidPostill: Byłoby miło, gdybyś mógł wspomnieć, jak często te dzienniki są czyszczone (lub jak często powinny być czyszczone ręcznie), ponieważ wyobrażam sobie, że mogą się dość długo ...
Mehrdad
1
@ Mehrdad Dzienniki zdarzeń można, jeśli to konieczne, usunąć z wiersza poleceń za pomocą wevtutil. Jest to łatwiejsze niż korzystanie z GUI Podglądu zdarzeń.
DavidPostill
3

Jedynym sposobem, aby to zobaczyć, jest włączenie kontroli, aby śledzić tworzenie procesów.

Z programu „Local Security Policy” (Wpisz secpol.mscna ekranie uruchamiania, jeśli masz problemy z jego odnalezieniem), przejdź do „Security Settings -> Local Polices -> Audit Policy”, a następnie włącz „Audit process tracking” dla „Success”.

wprowadź tutaj opis obrazu

Gdy to zrobisz, przejdź do przeglądarki zdarzeń i sprawdź dziennik zdarzeń „Secruity”, tam zobaczysz wpisy „Sukces audytu” za każdym razem, gdy proces zostanie rozpoczęty lub zakończony.

Proces zakończył się.

Przedmiot:
    ID bezpieczeństwa: SYSTEM
    Nazwa konta: SCOTT-PC $
    Domena konta: GRUPA ROBOCZA
    Identyfikator logowania: 0x3E7

Przetwarzać informacje:
    Identyfikator procesu: 0x1338
    Nazwa procesu: C: Windows System32 enable.exe
    Status wyjścia: 0x0

Konieczne będzie przekonwertowanie szukanego identyfikatora procesu z dziesiętnego na szesnastkowy (3336 zmieni się na 0xD08). Najprostszym sposobem konwersji jest otwarty kalkulator systemu Windows, przejdź do trybu „Programmer”, wprowadź liczbę w trybie „dec”, a następnie kliknij tryb „hex”. Wyświetlany numer zostanie przekonwertowany na heks dla ciebie.

Scott Chamberlain
źródło
Tak, tego typu odpowiedzi oczekiwałem. Mówiąc wprost: włącz rejestrowanie, a tym samym sprawdzaj jego wyniki.
miroxlav
0

Jeśli jest to jeden raz i nie chcesz zawsze rejestrować swoich procesów, sugerowałbym użycie Microsoft Process Monitor ( https://technet.microsoft.com/en-us/Library/bb896645.aspx ). Musi być uruchamiany przed pojawieniem się popularnego, ale nawet po zakończeniu procesu nadrzędnego przechwyci wszystkie informacje, których szukałeś.

mrTomahawk
źródło