Попередити користувача, якщо він спробує вийти з системи


10

Я хочу, щоб певний місцевий користувач не виходив із системи. коли-небудь. Це дуже схоже на це нерозумне запитання , проте мені не обов’язково байдуже, чи є кнопки, я хочу спливати вікно з повідомленням "Будь ласка, не виходьте з консолі" кнопкою "ОК", яка потім скасовує журнал. спроба. Це можна зробити в сценарії виходу з системи?

існують групові політики щодо відключення кнопки виходу з системи в меню запуску та в діалоговому вікні CTRL-ALT-DEL. Однак те, що мені хотілося б, більше схоже на http://msdn.microsoft.com/en-us/library/ms811998.aspx , якого, схоже, немає на сервері 2008 R2? Або я цього сумую?

Я навіть намагався відключити кнопку виходу з системи при запуску , але це не спрацьовує, на що вказував Метт у цьому подібному питанні

Чи можливо створити сценарій виходу з системи, який відображає діалогове вікно, що попереджає користувача не виходити з системи, а потім скасовує вихід?

Я розумію, що це непроста потреба - на жаль, не в силах мене змінити чи відштовхнути. Я вичерпав ці варіанти. Не соромтеся отримувати багато коментарів, пояснюючи, що це дійсно тупий план, який очевидно пом'якшує симптом багатьох багатьох системних питань, а не вирішує щось. Я повністю розумію, що цей спосіб дій насправді створює проблеми. Я хочу, щоб це було зроблено, щоб я міг виконати цей контракт і більше ніколи більше не працювати з ними.


18
Це дійсно тупий план, який, очевидно, пом’якшує симптом багатьох багатьох системних питань, а не вирішує щось. Цей спосіб дій фактично створює проблеми. Виконайте цей контракт і більше ніколи не працюйте з ними знову.
Майкл Хемптон

1
Крім дурної речі намагатися і робити, це також те, що іншим людям не вигідно було б знати, як це робити. Це лише створить проблеми, тому голосування закрити.
HostBits

3
Хоча я згоден, це дурний план, і я не знаю мотиву, можу сказати, що я міг би отримати користь від подібного рішення. Нам усім доводиться мати справу з дурним застарілим програмним забезпеченням, таким як "deamon", у якому вікно @ # $ @ # $ @ зроблено у VB6 і не працює як сервіс, оскільки в ньому є всі види спливаючих повідомлень, і ви закінчуєте зі скриптом AuthoHotKey, натискаючи кнопку ОК кожного разу, коли вони з’являються ... тому запобігання виходу з системи буде корисним ...
ETL

1
@MichaelHampton, сер, абсолютно правильні. Я мав би додати: "Я хочу це зробити, щоб я міг отримати зарплату, а потім більше ніколи не працюватиму за них". як зазначав ETL, там є всілякі негативні негаразди ... і, як зазначив Чікалеак, будь-яка відповідь на це питання буде сприяти згубності у світі. Сказавши це, я все ще хочу зламати це і робити.
dfstandish

Де потрібна коренева потреба? Якщо мені подобалося, і вам потрібен процес / додаток, щоб запустити його як інтерактивний сеанс на робочому столі, тоді ви можете подивитися на отримання Firedaemon та налаштування служби, яка працює як цей користувач для цього додатка із сесії 0.
TheCleaner

Відповіді:


14

Коли я мав нагоду це зробити, то, як я фактично відключив вихід (і вимкнення / перезапуск), виконуючи три речі.

  1. Використовуйте GPO або локальну політику безпеки (або параметр реєстру), щоб видалити параметр виходу з системи, доступний через меню Ctrl+ Alt+ Del.

    • Щоб видалити параметр з меню Ctrl+ Alt+ Del, вам потрібно перейти до User Configuration-> Administrative Templates-> System-> Ctrl+Alt+Del Optionsі включити Remove Logoffполітику.

  2. Використовуйте GPO або локальну політику безпеки (або параметр реєстру), щоб налаштувати доступні параметри виходу з системи, перезавантаження та вимкнення, доступні через меню "Пуск".

    • Щоб змінити поведінку "Кнопка живлення" за замовчуванням, перейдіть до 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політику

  3. Змініть дозволи shutdown.exeта logoff.exe(спасибі, Райан!), Щоб жоден обліковий запис користувача не міг його виконувати. (Якщо вам не потрібно турбуватися про те, що користувачі працюють shutdown.exeіз командного рядка, ви можете пропустити це.)

    • (Зазвичай я залишаю обліковий запис служби чи свій резервний обліковий запис адміністратора з дозволами, тому я можу змінити його назад, якщо потрібно, з мінімальними зусиллями).
    • За замовчуванням воно ввімкнено C:\Windows\systm32\, і дозволи дозволяють користувачам та адміністраторам читати та виконувати, але залишає повний контроль для SYSTEMта Trusted Installer.
    • Trusted Installer є також власником, тому для зміни дозволів потрібно взяти право власності на адміністративний рахунок.

Після того, як ви все з цим закінчите, немає можливості вийти з системи, перезапустити, вимкнути сплячку або спати комп’ютер, не витрачаючи на це зусиль ... і не відключаючи кабель живлення.

Тепер меню запуску мого сервера виглядає як на зображенні нижче (а користувач, що перемикає, просто дозволяє іншому користувачеві входити):

введіть тут опис зображення

І меню Ctrl+ Alt+ Delвиглядає так:

введіть тут опис зображення


3
Таємний соус тут полягає в тому, що ви повинні змінити поведінку "кнопки живлення" - якщо ви не відключите вихід, ефект не матиме.
thekbb

1
logoff.exe .....
Ryan Ries

4

Я вважав за краще додати це як коментар, але дякую політиці сайту, я не повинен коментувати ...

Щодо скриптів для входу в систему, я не знаю, що можна зробити. Але в додатку C # Windows Forms ви можете зареєструватися для SystemEvents, таких як SessionSwitch і SessionEnding. Останній навіть надає властивість Скасувати в EventArgs. Такий додаток .Net може допомогти у вашому випадку, але, звичайно, користувач може спершу закрити цю програму (або вбити її з TaskManager), а потім все-таки вийти.

До речі: так, я знаю, що такі німі речі іноді доводиться робити: є програмні компанії, що пишуть програми, які повинні бути службами Windows, але вони працюють з графічним інтерфейсом в інтерактивному сеансі ...


2
Коротка програма, яка відображає діалогове вікно, а потім скасовує відключення, буде функціонувати, але її також можна вбити з диспетчера завдань, що може перемогти мету.
Майкл Хемптон
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.