Предупредить пользователя, если он попытается выйти из системы
Я хочу, чтобы определенный локальный пользователь не выходил из системы. Когда-либо. Это очень похоже на этот глупый вопрос, однако мне не обязательно беспокоиться о наличии кнопок, я хочу открыть окно с сообщением "Пожалуйста, не выходите из консоли" с кнопкой "ОК", которая затем отменяет выход из системы. попытка. Это можно сделать в сценарии выхода?
Существуют групповые политики для отключения кнопки выхода из стартового меню и в диалоге CTRL-ALT-DEL. Однако то, что я хотел бы больше походить на http://msdn.microsoft.com/en-us/library/ms811998.aspx, который, как представляется, не в Server 2008 R2? Или я скучаю по нему?
Я даже пытался отключить кнопку выхода из системы при запуске, но она не работает, как указал Мэтт на этот похожий вопрос.
Можно ли создать сценарий выхода из системы, который отображает диалоговое окно, предупреждающее пользователя не выходить из системы, а затем отменяет выход из системы?
Я понимаю, что это глупая необходимость - к сожалению, я не в силах изменить или оттолкнуть. Я исчерпал эти варианты. Не стесняйтесь получить массу комментариев на комментарий, объясняющий, что это действительно глупый план, который, очевидно, смягчает симптомы многих системных проблем, а не что-то решает. Я полностью понимаю, что этот курс действий фактически создает проблемы. Я хочу, чтобы это было сделано, чтобы я мог закончить с этим контрактом и никогда больше не работать с ними.
2 ответа
Когда мне приходилось делать это, я эффективно отключал выход из системы (и выключение / перезапуск), выполняя три вещи.
Используйте объекты групповой политики или локальные политики безопасности (или параметр реестра), чтобы удалить параметр выхода из системы, доступный через меню Ctrl+Alt+Del.
- Чтобы удалить параметр из меню Ctrl+Alt+Del, необходимо перейти к
User Configuration
->Administrative Templates
->System
->Ctrl+Alt+Del Options
и включитьRemove Logoff
политика.
- Чтобы удалить параметр из меню Ctrl+Alt+Del, необходимо перейти к
Используйте объекты групповой политики или локальные политики безопасности (или параметр реестра), чтобы настроить доступные параметры выхода из системы, перезапуска и завершения работы, доступные через меню "Пуск".
- Чтобы изменить поведение кнопки питания по умолчанию, перейдите к
User Configuration
->Administrative Templates
->Start Menu and Taskbar
и включитьChange Start Menu power button
политика.- Установка его в
Lock
это, вероятно, то, что вы ищете.
- Установка его в
- Чтобы удалить кнопки выключения / перезапуска / сна / спящего режима из меню "Пуск", необходимо перейти к
User Configuration
->Administrative Templates
->Start Menu and Taskbar
и включитьRemove and prevent access to the Shut Down, Restart, Sleep and Hibernate command
- Чтобы удалить опцию выхода из системы, перейдите к
User Configuration
->Administrative Templates
->Start Menu and Taskbar
и включитьRemove Logoff on the Start Menu
политика
- Чтобы изменить поведение кнопки питания по умолчанию, перейдите к
Изменить разрешения на
shutdown.exe
а такжеlogoff.exe
(спасибо, Райан!), чтобы ни одна учетная запись пользователя не могла его выполнить. (Если вам не нужно беспокоиться о пользователях, работающихshutdown.exe
из командной строки, вы можете пропустить это.)- (Обычно я оставляю служебную учетную запись или резервную учетную запись администратора с разрешениями, чтобы при необходимости можно было изменить ее обратно, с минимальными усилиями).
- По умолчанию это в
C:\Windows\systm32\
и разрешения позволяют пользователям и администраторам читать и выполнять, но оставляет за собой полный контроль надSYSTEM
а такжеTrusted Installer
, Trusted Installer
также является владельцем, поэтому для изменения разрешений необходимо вступить во владение с учетной записью администратора.
Как только вы закончите со всем этим, вы не сможете выйти из системы, перезагрузить компьютер, выключить его, перевести в спящий режим или перевести компьютер в спящий режим без особых усилий... или отсоединения кабеля питания.
Теперь меню "Пуск" моего сервера выглядит так, как показано на рисунке ниже (и переключение пользователя просто позволяет другому пользователю войти в систему):
И меню Ctrl+Alt+Del выглядит так:
Я бы предпочел добавить это в качестве комментария, но благодаря политике сайта я не должен комментировать...
Что касается сценариев выхода из системы, я не знаю, что можно сделать. Но в приложении C# Windows Forms вы можете зарегистрироваться для таких системных событий, как SessionSwitch и SessionEnding. Последний даже предоставляет свойство Cancel в EventArgs. Такое приложение.Net может помочь в вашем случае, но, конечно, пользователь может сначала закрыть это приложение (или убить его из TaskManager), а затем по-прежнему выходить из системы.
Кстати: да, я знаю, что такие глупости иногда приходится делать: есть компании-разработчики программного обеспечения, которые пишут программы, которые должны быть службами Windows, но работают с графическим интерфейсом в интерактивном сеансе...