2015-05-02 14 views
5

Używam ManagementEventWatcher w ciągu ostatnich kilku miesięcy, aby oglądać na rozpoczęcie nowych procesów i działa bez żadnych problemów. Jednak niedawno ponownie wypróbowałem moją aplikację i wydaje się, że wydarzenia związane z nowym procesem nie są już wywoływane.ManagementEventWatcher dla Win32_ProcessStartTrace już nie działa w Win 8.1

Oto przykładowy kod:

var startWatch = new ManagementEventWatcher(new WqlEventQuery("SELECT * FROM Win32_ProcessStartTrace")); 

a zdarzenie:

private static void ProcessStart_EventArrived(object sender, EventArrivedEventArgs e) 
{ 
      Console.WriteLine("AppStarted"); 
} 

Przetestowałem to też na maszynie innej przyjaciółki (również Win 8.1), który miał starą binarny (który pracował tylko w porządku również w ciągu ostatnich kilku miesięcy), a on już nie przyjmuje wydarzeń.

Problem wydaje się istnieć tylko w systemie Win32_ProcessStartTrace, ponieważ funkcja Win32_ProcessStopTrace działa dobrze i odbiera zdarzenia po zatrzymaniu procesu.

Czy były ostatnio jakieś aktualizacje systemu Windows, które mogłyby w tym przeszkadzać? Środowisko mojego systemu nie zmieniło się od czasu ostatniego działania (oprócz aktualizacji wygranych).

+0

I repro, obecnie jest uszkodzony. Jeśli nie chcesz zadzwonić do pomocy technicznej firmy Microsoft, po prostu poczekaj na nieco nieuniknioną aktualizację. –

+0

Czy ktoś wie, czy Microsoft kiedykolwiek to naprawi? – TTat

+0

Wygląda na to, że zostało naprawione! – TTat

Odpowiedz

1

Wystąpił ten problem. Aby to naprawić, musisz odinstalować aktualizację Windows "kb3045999".

Aby to zrobić:

  1. Otwórz usługę Windows Update
  2. Kliknij "Zobacz historię Update"
  3. Kliknij "zainstalowane aktualizacje" w górnym
  4. Przewiń w dół, aż zostanie wyświetlony komunikat „Aktualizacja zabezpieczeń dla systemu Windows (KB3045999)
  5. Kliknij prawym przyciskiem myszy i odinstalować
  6. Uruchom ponownie komputer

Problem powinien zostać rozwiązany.

1

Jest to spowodowane aktualizacją systemu Windows kb3045999.

Po zainstalowaniu tej aktualizacji zabezpieczeń w systemie Windows 8.1 lub Windows Server 2012 R2, aplikacje, które wymagają zarządzania Windows Instrumentation (WMI) API bezpośrednio, albo że API połączenia, które opierają się na WMI (takich jak klasa ManagementEventWatcher) nie otrzymują poprawnego statusu procesu (niezależnie od tego, czy proces jest uruchomiony, czy nie działa).

Rozwiązanie: Aby rozwiązać ten problem, należy zainstalować poprawkę 3094199.

Aktualizacja 07/11/2015: Firma Microsoft wydała poprawkę.


Możesz użyć wiersza polecenia, aby odinstalować tę aktualizację.

wusa /uninstall /kb:3045999 

Zobacz WUSA - Windows Update Standalone Installer dla większej liczby parametrów.

Aktualizacja 23/08/2015: Dla mnie rozwiązanie już nie działa.

Powiązane problemy