Windows 2012: jak sprawić, by przycisk zasilania działał w każdym przypadku?

9

Potrzebuję, aby niektóre serwery Windows 2012 zostały poprawnie zamknięte za pomocą przycisku zasilania.

  • Jeśli nikt nie jest zalogowany, przycisk zasilania poprawnie zamyka serwer
  • Jeśli ktoś jest zalogowany bez programu blokującego, to też jest w porządku

Ale:

  • jeśli sesja jest zablokowana, przycisk zasilania nic nie robi
  • jeśli ktoś jest zalogowany za pomocą programu blokującego (na przykład notatnik z niezapisanym dokumentem), przycisk również nic nie robi

W poprzednich wersjach systemu Windows konfigurowałem zachowanie przycisku zasilania za pomocą GUI i modyfikowałem klucz rejestru ( HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\system\shutdownwithoutlogon), ale nie wydaje się to bardziej odpowiednie.

Czy ktoś zna „oficjalny” sposób lub sztuczkę?

Edycja:
dziennik systemowy wyświetla zdarzenie za każdym razem, gdy naciskam przycisk zasilania. The kernel power manager has initiated a shutdown transitionz identyfikatorem zdarzenia 109.
Gdy sesja jest zablokowana, po tym zdarzeniu nic nie następuje. I żadnych innych zdarzeń w innych dziennikach.
Gdy program odmawia zamknięcia, mam odpowiedni wpis w dzienniku, więc wkrótce będzie to w porządku.

Gregory MOUSSAT
źródło
2
Pokaż te cholerne inteligentne przełączniki, które są naprawdę inteligentne: wyciągnij przewód zasilający F ^ i% # ing ze ściany!
Totem - Przywróć Monikę

Odpowiedzi:

5

Fakt, że nie można wyłączyć serwera z 2012 r., Gdy sesja jest zablokowana, prawdopodobnie wynika z projektu. Stawiłem czoła podobnej potrzebie i nie znam żadnej zmiany zasad ani rejestru, aby na to pozwolić.

Zastosowałem prostą sztuczkę: zarejestrowałem zdarzenie przycisku zasilania, które po prostu uruchomiłem mój ulubiony shutdown.exe z pożądanymi parametrami po upływie limitu czasu.
Jeśli użyjesz poprawnych parametrów zamykania, nie zostaną zablokowane przez otwarte programy.

Aby przechwytywać zdarzenia, wystarczy otworzyć harmonogram zadań i utworzyć zadanie uruchamiane na żądanym identyfikatorze zdarzenia.

Bertrand SCHITS
źródło
3
W
celach informacyjnych używam
4
Również w celach informacyjnych zdarzenie w moim przypadku jest zdarzeniem podstawowym o tych właściwościach Log: System, Źródło: Kernel-Power, ID zdarzenia: 109
ndemou
1

Sprawdź AutoEndTasks :

Możesz ustawić go dla wszystkich użytkowników, tworząc tutaj klucz vs HKCU: HKEY_USERS.DEFAULT \ Panel sterowania \ Desktop

Ponadto istnieje kilka ustawień, które można wykonać za pomocą zasad grupy, które można znaleźć tutaj: Konfiguracja komputera> Szablony administracyjne> System> Opcje zamykania> Wyłącz automatyczne zamykanie aplikacji blokujących lub anulujących zamykanie

Dodatkowe opcje dostrajania, które możesz zajrzeć to: WaitToKillServiceTimeout , WaitToKillAppTimeout , HungAppTimeOut

Poproszę także to, co powiedział MarcoZink, sprawdź swoje Biosa i sprawdź, czy nie skonfigurowano żadnego specjalnego ustawienia dla twojego przycisku zasilania, który mógłby trzymać rzeczy w górze.

NPS
źródło
1
Nie popierałbym tego, co MarcoZink powiedział o BIOSie, ponieważ pytanie wyraźnie stwierdza: „Jeśli nikt nie jest zalogowany, przycisk zasilania poprawnie wyłącza serwer”
ndemou