Назад | Перейти на главную страницу

Как отключить «Завершение работы» в меню ctrl + alt + delete для аутентифицированного пользователя, но оставить кнопку питания на компьютере включенной?

Я работаю над настройкой киоск-ПК на работе. Единственная большая проблема, с которой я столкнулся, заключается в том, что я не могу отключить кнопку выключения в меню control + alt + delete, не отключив также кнопку питания на самом компьютере (так что только сотрудники могут выключить его). Также допустимо отключение меню control + alt + delete для определенных пользователей.

Единственный реальный ответ, который я нашел, - это написание моей собственной заглушки GINA, а это немного выходит за рамки проекта (и моих возможностей).

Дополнительные сведения: Оболочка проводника вообще не используется. В качестве оболочки используется программа, которая перезапускает киоск-приложение, если оно умирает. Компьютер также будет заблокирован в шкафу, оставляя пользователям доступ только к монитору и кб / мыши.

regedit хаки -

(предотвратить) завершение работы без входа в систему:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\system]
"shutdownwithoutlogon"=dword:00000000

работает до XP - не пробовал с> = win7

Ctrl + Alt + Del при входе в систему:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer]
"NoClose"=dword:00000001

Стартовое меню:

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer]
"NoClose"=dword:00000001

думаю Этот метод обращается к тому, что вам нужно. Я не уверен, влияет ли это на кнопку питания или нет (может зависеть от настроек питания BIOS).

Вы рассматривали возможность использования Microsoft SteadyState?

Также есть утилита что позволяет легко включать или отключать диспетчер задач.

Не уверен, что этот киоск является частью домена. Если вы входите в систему как определенный пользователь, вы можете создать объект групповой политики, предотвращающий завершение работы, и привязать его к подразделению с этим пользователем в нем. Логины ваших сотрудников не будут входить в OU, поэтому они не получат GPO и сохранят возможность завершения работы через меню «Пуск». Мы делаем это в нашем call-центре, где хотим, чтобы компьютер оставался включенным на ночь, чтобы их можно было исправить. Если их действительно нужно отключить, администратор или менеджер могут войти в систему и завершить работу.

Я не зарегистрировался раньше и не могу добавить комментарий, поэтому просто добавлю это как ответ.

Я немного далек от проекта, чтобы рассмотреть возможность использования другого метода блокировки компьютера (например, SteadyState), и все, кроме кнопки выключения и ctrl + alt + delete, заблокировано, но я буду иметь это в виду для будущее.

Что касается компьютера, являющегося частью домена, нет, он не находится в домене, а пользователь является локальным пользователем.

Я посмотрю на метод, предложенный Зерриасом завтра, и посмотрю, дает ли он то, что мне нужно.

Я нашел способ отключить меню ctrl + alt + del для аутентифицированных пользователей. Оказалось, что мне нужно было использовать заглушку gina (на самом деле я изменил существующая заглушка).

Эта заглушка gina, по-видимому, имеет несколько дополнительных функций, таких как сценарии принудительного входа / выхода и отключение приглашения ctrl + alt + del перед входом в систему без редактирования реестра. Мне пришлось использовать его, поскольку пример Microsoft в SDK для платформы Windows XP не запускался для меня должным образом, и я не мог найти другую подходящую заглушку.

Единственное изменение, которое я внес в заглушку, - это изменить содержимое WlxLoggedOnSAS в gina.c на

#ifdef DEBUGLOG
    fprintf(fpginalog,"WlxLoggedOnSAS, SasType=%i.\n",dwSasType);
    fflush(fpginalog);
#endif
    if (dwSasType == WLX_SAS_TYPE_CTRL_ALT_DEL)
    {
        /* Eat the ctrl+alt+del event */
        return WLX_SAS_ACTION_NONE;
    }
    else{
        return GWlxLoggedOnSAS( pWlxContext, dwSasType, pReserved );
    }

Затем я создал проект в Visual Studio и переместил полученную новую версию в C: \ Windows \ system32.

Последним шагом было добавление раздела реестра, чтобы он загружал заглушку gina при запуске.

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
"GinaDLL"="C:\\windows\\system32\\newgina.dll"

Недостатки:

  • Это также отключает ctrl + alt + del для администраторов, но у них есть меню «Пуск», так что для меня это не проблема. Возможно, это можно исправить с помощью небольшой модификации

  • Если вы не используете оболочку проводника, вы не сможете выйти из системы, перезагрузка компьютера - ваш единственный вариант. Возможно, можно будет использовать другую программу для регистрации горячей клавиши для выхода из системы.

  • Экран мигает на долю секунды при нажатии ctrl + alt + del.

  • Может не работать на XP SP3 или Vista (согласно нескольким веткам на других сайтах)

Примечание:

У меня сейчас нет под рукой бинарной версии модифицированной заглушки (а логин Google OpenID заблокирован на работе, поэтому я не могу загрузить его оттуда), но если вы хотите скомпилировать заглушку самостоятельно, просто получите Visual C ++ Express Edition и откройте проект, затем замените код внутри WlxLoggedOnSAS в gina.c кодом, упомянутым ранее. Когда вы его соберете, у вас должен получиться файл newgina.dll.