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ć.
źródło
Odpowiedzi:
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.
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.
User Configuration
->Administrative Templates
->System
->Ctrl+Alt+Del Options
i włączyćRemove Logoff
zasadę.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.
User Configuration
->Administrative Templates
->Start Menu and Taskbar
i włączChange Start Menu power button
zasadę.Lock
jest prawdopodobnie tym, czego szukasz.User Configuration
->Administrative Templates
->Start Menu and Taskbar
i włączyćRemove and prevent access to the Shut Down, Restart, Sleep and Hibernate command
User Configuration
->Administrative Templates
->Start Menu and Taskbar
i włączRemove Logoff on the Start Menu
zasadęZmień uprawnienia na
shutdown.exe
ilogoff.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.exe
z wiersza poleceń, możesz to pominąć).C:\Windows\systm32\
, a uprawnienia pozwalają użytkownikom i administratorom czytać i wykonywać, ale zastrzega sobie pełną kontrolę nadSYSTEM
iTrusted 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ę):
A menu Ctrl+ Alt+ Delwygląda następująco:
źródło
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 ...
źródło