Mam zdalną maszynę, która działa w systemie Windows 7, wylogowuje się, zamykając wszystkie uruchomione aplikacje, i automatycznie loguje się ponownie. Dzieje się to codziennie, ale nie w określonym czasie i bez określonego zadania.
Po przejrzeniu dzienników zdarzeń, jak pokazano powyżej na obrazku, znalazłem kilka zdarzeń o Id 7001 i 7002 z kategoriami zadań odpowiednio 1101 i 1102.
Korzystam z systemu Windows 7. Ten problem dotyczy innych 3 komputerów o tej samej konfiguracji.
Aby rozwiązać ten problem, szukałem w Internecie i zastosowałem rozwiązanie dotyczące obsługi klienta, które jest wymienione w linku poniżej:
Powiadomienie o wylogowaniu użytkownika w ramach programu poprawy jakości obsługi klienta
Czy ktoś może mi pomóc w śledzeniu tego problemu? Czy jestem we właściwym kierunku, aby rozwiązać ten problem?
EDYTOWAĆ.
Po sugestii udzielonej przez @TwistyImpersonator mogę powiedzieć następujące rzeczy ze szczegółowej przeglądarki zdarzeń (zdjęcia są dołączone na końcu):
W zdarzeniach systemowych:
zawsze następowały następujące zdarzenia PO zdarzeniach „Winlog”:
Service Control Manager-7036-None-Usługa wykrywania sprzętu powłoki weszła w stan zatrzymania.
W przypadku zdarzenia aplikacji następujące zdarzenia miały miejsce w tym samym czasie
Ostrzeżenie -09.11.2017 18: 19: 29-User-Profile Service-1530-None-Windows wykrył, że plik rejestru jest nadal używany przez inne aplikacje lub usługi. Plik zostanie teraz rozładowany. Aplikacje lub usługi przechowujące plik rejestru mogą później nie działać poprawnie.
SZCZEGÓŁY - 1 uchwyty rejestru użytkownika wyciekły z \ Registry \ User \ S-1-5-21-1277090162-4221482773-868009429-3552: Proces 272 (\ Device \ HarddiskVolume2 \ Windows \ System32 \ svchost.exe) otworzył klucz \ REGISTRY \ USER \ S-1-5-21-1277090162-4221482773-868009429-3552 \ Printers \ DevModePerUser
Informacja -09.11.2017 18: 19: 29-Menedżer okien pulpitu-9009-Brak-Menedżer okien pulpitu zakończył działanie z kodem (0x40010004)
Odpowiedzi:
Zanim ocenisz tę odpowiedź, pamiętaj, że jest ona w toku. Komentarze dostały zbyt wiele i nie były tak naprawdę poświęcone odpowiedziom na pytanie, ale zamiast tego znalazły przyczynę problemu.
Nie mogę obecnie zdobyć kopii win7, aby sprawdzić, jak działa poniższy kod na win7, zrobię to w przyszłym tygodniu, lub po prostu powiesz mi, czego doświadczasz ...
---- szkic odpowiedzi ----
Chociaż najlepszym rozwiązaniem twojego problemu jest znalezienie przyczyny, odpowiem na tytuł pytania:
Aby przechwycić i zapobiec wylogowaniu, w bieżący sposób dowiedziałem się, aby złapać zdarzenie „formclosing” formularza Windows w C # i sprawdzić, czy CloseReason to CloseReason.WindowsShutDown. To zdarzenie może być następnie „odrzucone” przez kod.
To jest cały kod:
Pobierz skompilowany plik binarny tutaj: BlockLogoffForm.exe
Przy obecnym projekcie konieczne byłoby uruchomienie tego programu i pozostawienie go uruchomionego, aż nastąpi automatyczne wylogowanie. Dalsze redefinicje mogą przynieść takie same działania jak aplikacja Tasktray lub podobna.
źródło