以编程方式解锁Windows工作站

我想编写一个解锁工作站的小应用程序。 把我需要的规格放在非常简单的位置:运行一个exe文件,并在规定的时间(比如午夜)解锁工作站。 当然,应用程序知道login帐户的用户和密码。

我知道LogonUser API,并尝试使用它,但失败了。 有没有人有解决scheme,代码摘录,实际上适用于这个问题?

我的目标是NT5操作系统。


那么,因为人们开始问是什么原因:我正在做一个桌面共享应用程序,我想添加解锁工作站的function。 有一个非常小的和简单的应用程序来解锁站在一个确定的时间是为了分离问题,并避免了整合的细节。

就这样,你有一个答案,而不是人留下的答案可能会更好的评论。

这当然是可能的,但是很多人已经说过,这并不是真正的明智之举,如果有人在计算机旁边走动,解锁,他们需要玩多久等等,会发生什么?

除了建议你有一个服务来做你想要的任何工作,或者甚至远程连接到计算机做工作,你可能会使用户的以下信息。 (至于“代码擅长”,你可以自己做)

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

让您的应用程序作为服务运行,那么您不需要像服务一样设置用户/密码。

只是添加另一个领导(没有任何判断), autoit (一个脚本Windows语言)可能有一个答案,在这个线程中描述:

如何解锁XP桌面

而我刚刚发现了另一个可能想要解锁桌面的场景 ;)

对于我的情况,我需要能够恢复控制台会话后,我断开了我的终端会话(我连接到一个触摸屏,但没有键盘的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