Разблокировать рабочую станцию ​​Windows программно - PullRequest
15 голосов
/ 06 октября 2008

Я хотел бы написать небольшое приложение, которое разблокирует рабочую станцию. Чтобы описать то, что мне нужно, очень просто: запустите исполняемый файл и в определенное время (скажем, в полночь) разблокируйте рабочую станцию. Конечно, приложение знает имя пользователя и пароль для входа в систему.

Я знаю об API LogonUser и пытался его использовать, но не получилось. У кого-нибудь есть решение, фрагмент кода, который действительно работает для этой проблемы?

Я нацеливаюсь на операционные системы NT5.


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

Ответы [ 4 ]

9 голосов
/ 06 октября 2008

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

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

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

http://www.paralint.com/projects/aucun/ - это реализация GINA, которая сможет дать вам права на вход в систему, даже если кто-то уже вошел в систему. Посмотрите, это может быть то, что вы ищете, и это намного безопаснее, чем разблокировать рабочую станцию ​​в определенное время.

В качестве альтернативы вы можете написать свою собственную реализацию GINA, которая будет выполнять разблокировку в запланированное время.

Информация о GINA

http://msdn.microsoft.com/en-gb/magazine/cc163803.aspx

http://msdn.microsoft.com/en-us/magazine/cc163786.aspx

После того, как вы разблокировали рабочий стол, я уверен, что вы захотите снова заблокировать его.

http://www.codeproject.com/win32/AntonioWinLock.asp

3 голосов
/ 06 октября 2008

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

1 голос
/ 06 октября 2008

Просто чтобы добавить еще одного потенциального клиента (без какого-либо суждения), у autoit (язык сценариев Windows) может быть ответ, как описано в этой теме:

Как разблокировать рабочий стол Xp

И я только что нашел другой сценарий, в котором можно разблокировать рабочий стол ;)

0 голосов
/ 28 октября 2011

В моей ситуации мне нужно было иметь возможность восстановить сеанс консоли после того, как я отключил сеанс терминала (я подключаюсь к киоску WinXPe с сенсорным экраном, но без клавиатуры).

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

  • автоматическая разблокировка рабочей станции после терминальной сессии на WinXP

    tscon.exe 0 /dest:console
    
  • для Windows Vista / 7 номер сеанса консоли изменился с 0 на 1, поэтому вам нужно использовать

    tscon.exe 1 /dest:console
    



Ссылка на источник: http://arstechnica.com/civis/viewtopic.php?f=15&t=69113

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...