Ostrzeż użytkownika, jeśli spróbuje się wylogować

10

Chcę, aby pewien użytkownik lokalny się nie wylogował. zawsze. To bardzo podobne do tego głupiego pytania , jednak niekoniecznie obchodzi mnie, czy są tam przyciski, chcę wyświetlić okno komunikatu z informacją „Nie wylogowuj konsoli” przyciskiem „OK”, który następnie anuluje wylogowanie próba. Czy można to zrobić za pomocą skryptu wylogowania?

istnieją zasady grupy, które wyłączają przycisk wylogowania w menu startowym i oknie dialogowym CTRL-ALT-DEL. Chciałbym jednak bardziej jak http://msdn.microsoft.com/en-us/library/ms811998.aspx , który wydaje się nie być w serwerze 2008 R2? A może tęsknię?

Próbowałem nawet wyłączyć przycisk wylogowywania na starcie , ale nie działa, jak zauważył Matt w tym podobnym pytaniu

Czy można utworzyć skrypt wylogowania, który wyświetla okno dialogowe ostrzegające użytkownika przed nie wylogowaniem, a następnie anuluje wylogowanie?

Rozumiem, że to głupia potrzeba - niestety nie jestem w stanie zmienić ani odepchnąć. Wyczerpałem te opcje. Zachęcamy do zdobycia mnóstwa pozytywnych opinii na temat komentarza wyjaśniającego, że jest to naprawdę głupi plan, który w oczywisty sposób łagodzi objawy wielu problemów systemowych, a nie rozwiązuje cokolwiek. W pełni rozumiem, że ten sposób postępowania w rzeczywistości stwarza problemy. Chcę, aby zostało to zrobione, abym mógł wykonać tę umowę i nigdy więcej z nimi nie współpracować.

dfstandish
źródło
18
To naprawdę głupi plan, który łagodzi symptomy wielu problemów systemowych, a nie rozwiązuje cokolwiek. Taki sposób postępowania w rzeczywistości stwarza problemy. Skończ z tym kontraktem i nigdy więcej nie współpracuj z nimi.
Michael Hampton
1
Oprócz tego, że jest to głupia rzecz do zrobienia, jest to również coś, czego inni ludzie nie skorzystaliby z wiedzy, jak to zrobić. To tylko stworzy problemy, więc głosowanie na zamknięcie.
HostBits
3
Chociaż zgadzam się, że to głupi plan i nie znam motywu, mogę powiedzieć, że mógłbym skorzystać z podobnego rozwiązania. Wszyscy mamy do czynienia z głupim, starszym oprogramowaniem, takim jak „demon”, który ma okno @ # $ @ # $ @ wykonane w VB6 i nie działa jako usługa, ponieważ ma różnego rodzaju wyskakujące komunikaty i kończysz ze skryptem AuthoHotKey klikającym OK za każdym razem, gdy się pojawią ... więc zapobieganie wylogowaniu byłoby przydatne ...
ETL
1
@MichaelHampton, proszę pana, masz absolutną rację. Powinienem dodać: „Chcę to zrobić, aby otrzymać wynagrodzenie, a potem nigdy więcej dla nich nie pracować”. jak zauważył ETL, istnieje wiele rodzajów złej spuścizny ... i jak zauważył Cheekaleak, każda odpowiedź na to pytanie przyczyni się do zła na świecie. Powiedziawszy to, wciąż chcę to zhakować i gotowe.
dfstandish
Gdzie jest potrzeba roota? Jeśli to było tak jak ja i potrzebujesz procesu / aplikacji do działania jako ten użytkownik z interaktywną sesją pulpitu, możesz spojrzeć na uzyskanie Firedaemon i skonfigurować usługę, która działa jako ten użytkownik dla tej aplikacji z sesją 0.
TheCleaner

Odpowiedzi:

14

Kiedy miałem okazję to zrobić, sposób, w jaki skutecznie wyłączyłem wylogowanie (i zamknięcie / ponowne uruchomienie), polega na wykonaniu trzech czynności.

  1. Użyj obiektów zasad grupy lub lokalnych zasad bezpieczeństwa (lub ustawienia rejestru), aby usunąć opcję wylogowania dostępną w menu Ctrl+ Alt+ Del.

    • Aby usunąć opcję z menu Ctrl+ Alt+ Del, musisz przejść do User Configuration-> Administrative Templates-> System-> Ctrl+Alt+Del Optionsi włączyć Remove Logoffzasadę.

  2. Użyj obiektów zasad grupy lub lokalnych zasad bezpieczeństwa (lub ustawienia rejestru), aby skonfigurować dostępne opcje wylogowania, ponownego uruchomienia i zamknięcia dostępne w menu Start.

    • Aby zmienić domyślne zachowanie przycisku zasilania, przejdź do User Configuration-> Administrative Templates-> Start Menu and Taskbari włącz Change Start Menu power buttonzasadę.
      • Ustawienie tego Lockjest prawdopodobnie tym, czego szukasz.
    • Aby usunąć przyciski zamykania / restartu / uśpienia / hibernacji z menu Start, musisz przejść do User Configuration-> Administrative Templates-> Start Menu and Taskbari włączyćRemove and prevent access to the Shut Down, Restart, Sleep and Hibernate command
    • Aby usunąć opcję wylogowania, przejdź do User Configuration-> Administrative Templates-> Start Menu and Taskbari włącz Remove Logoff on the Start Menuzasadę

  3. Zmień uprawnienia na shutdown.exei logoff.exe(dzięki, Ryan!), Aby żadne konto użytkownika nie mogło go wykonać. (Jeśli nie musisz się martwić, że użytkownicy uruchamiają się shutdown.exez wiersza poleceń, możesz to pominąć).

    • (Zazwyczaj zostawiam konto usługi lub moje zapasowe konto administratora z uprawnieniami, aby w razie potrzeby móc je zmienić z minimalnym wysiłkiem).
    • Domyślnie jest włączony C:\Windows\systm32\, a uprawnienia pozwalają użytkownikom i administratorom czytać i wykonywać, ale zastrzega sobie pełną kontrolę nad SYSTEMi Trusted Installer.
    • Trusted Installer jest także właścicielem, więc aby zmienić uprawnienia, musisz przejąć własność za pomocą konta administracyjnego.

Po zakończeniu tych czynności nie ma możliwości wylogowania, ponownego uruchomienia, wyłączenia, hibernacji lub uśpienia komputera bez wysiłku ... lub odłączenia kabla zasilającego.

Teraz menu startowe mojego serwera wygląda jak na poniższym obrazku (a zmiana użytkownika pozwala tylko innemu użytkownikowi zalogować się):

wprowadź opis zdjęcia tutaj

A menu Ctrl+ Alt+ Delwygląda następująco:

wprowadź opis zdjęcia tutaj

Beznadziejny
źródło
3
Tajny sos polega na tym, że musisz zmienić zachowanie przycisku zasilania - jeśli nie wyłączysz wylogowywania, nie będzie to miało wpływu.
thekbb
1
logoff.exe .....
Ryan Ries
4

Wolałem dodać to jako komentarz, ale dzięki polityce witryny nie mogę komentować ...

Jeśli chodzi o skrypty wylogowywania, nie wiem, co można zrobić. Ale w aplikacji Windows Forms w języku C # możesz zarejestrować się w SystemEvents, takim jak SessionSwitch i SessionEnding. Ostatni zapewnia nawet właściwość Cancel w EventArgs. Taka aplikacja .Net może pomóc w twoim przypadku, ale oczywiście użytkownik może najpierw zamknąć tę aplikację (lub zabić ją z TaskManager), a następnie nadal się wylogować.

Nawiasem mówiąc: tak, wiem, że takie głupie rzeczy trzeba czasem zrobić: istnieją firmy programistyczne piszące programy, które powinny być Usługami Windows, ale działają z GUI w interaktywnej sesji ...

Bernhard Hiller
źródło
2
Krótki program, który wyświetla okno dialogowe, a następnie anuluje zamknięcie, działałby, ale można go również zabić z poziomu Menedżera zadań, co może zniweczyć cel.
Michael Hampton