Запустите программу на компьютерном запуске, когда никто не зарегистрирован, и покажите окно, когда кто-то действительно входит в систему (ОС: Windows)

Просто поместите, это на CRL перечисляет и создает новый сертификат.

19
задан 20 March 2014 в 21:32
3 ответа

Прикинул, как это сделать сам. Это своего рода обходной путь, но это то, что я ожидал получить.

Остановить! Пока не передергивайся. Читайте дальше ...

  • Запустите его, настройте так, чтобы администратор входил в систему автоматически.

  • Создайте задачу в Планировщике заданий. Установите его для запуска, только когда пользователь (администратор) вошел в систему. Триггер - «при входе в систему», и укажите, что это только тогда, когда администратор входит в систему.

  • Создайте вторую задачу. Запускать, только когда пользователь вошел в систему, запускать при входе в систему администратора. Действие должно быть «запустить программу», а программа - «C: \ Windows \ System32 \ rundll32.exe» с полем аргумента, установленным на «user32.dll, LockWorkStation».

Теперь, если вы перезагрузите компьютер, администратор автоматически войдет в систему, запустится программа, которую вы хотите запустить, и рабочая станция заблокируется. Если я вхожу в систему через подключение к удаленному рабочему столу, я вижу окно программы и использую графический интерфейс. Я могу заблокировать / разблокировать компьютер без проблем и отключать / повторно подключаться по своему усмотрению. Нет проблем, если я пойду на сервер и зарегистрируюсь на реальной рабочей станции. Поскольку администратор уже вошел в систему, задача не будет запускаться снова (она не создает бесконечного цикла входа в систему, из которого вы не можете выйти).

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

28
ответ дан 2 December 2019 в 20:15

У меня есть программа, которая запускается при запуске системы с помощью Планировщика заданий на Windows Server. 2012. Программа должна запускаться, даже если компьютер перезагружается автоматически.

Тогда почему бы вам не сделать ее системной службой, как указано в спецификациях Windows?

Как я могу решить эту проблему?

Вы не можете. Фоновые программы не должны взаимодействовать с пользовательским интерфейсом. Или: пользовательский интерфейс должен запускать собственную программу, которая затем подключается к службе. Пользовательский интерфейс, работающий в пользовательском пространстве вошедшего в систему пользователя, выполняет презентацию, служба Windows выполняет обработку. Вот как разрабатывается модель примерно на 15 лет.

Я очень удивлен, что Microsoft допускает такое ограничение в своем планировщике.

Меня больше удивляет, что вы никогда не задумывались, чтобы спросить, почему.

Есть несколько проблем:

  • Когда несколько человек входят в систему, кто получает пользовательский интерфейс?
  • Когда пользователь выходит из системы, вы завершаете программу ? ОЙЧ.
  • Безопасность. Фоновая программа может работать с ограниченными правами - доступ к пользовательскому интерфейсу для пользователя означает, что пользователь может выполнять код там. Модель обмена сообщениями Windows - ах - полна проблем.

Я не хочу создавать отдельную программу только с графическим интерфейсом, которая подключается к исходной между прочим.

Ни меня, ни Microsoft на данный момент не волнует, чем вы хотите заниматься. Существует устоявшаяся и поддерживаемая модель для привязки фоновой обработки к пользовательскому интерфейсу, вошедшему в систему - использовать ее или нет. Но если нет, не рассказывайте о проблемах безопасности, которые вы поднимаете.

16
ответ дан 2 December 2019 в 20:15

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

Теперь, если ваша программа обнаруживает, что explorer. exe запускается (или каким-то другим способом определить логин пользователя) и волшебным образом трансформируется или порождает некоторый дочерний процесс на этом новом идентификаторе сессии, тогда любой, кто входит в систему, с радостью увидит, что вы делаете.

0
ответ дан 2 December 2019 в 20:15

Теги

Похожие вопросы