以编程方式解锁Windows工作站

时间:2008-10-06 13:13:28

标签: windows security winapi

我想写一个解锁工作站的小应用程序。把我需要的规格变得非常简单:让一个在规定的时间运行的exe(让我们说是午夜)解锁工作站。 当然,应用程序知道登录帐户的用户和密码。

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

我的目标是NT5操作系统。


好吧,因为人们开始问的原因是什么:我正在开发桌面共享应用程序,我想添加解锁工作站的功能。使用非常小且简单的应用程序在规定的时间解锁工作站是为了分离问题并避免集成细节。

4 个答案:

答案 0 :(得分:9)

这样你就可以得到答案,而不是人们留下的答案可能会更好地作为评论。

这当然是可能的,尽管很多人已经说过这并不是真的很明智,如果有人在电脑上解锁时会发生什么,他们需要玩多久等等?

Anway,除了暗示你有服务在计算机上做任何你想要的工作,或者甚至远程连接到计算机做工作,你可能能够使用户获得以下信息。 (至于'代码例外'你可以自己制作)

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

答案 1 :(得分:3)

让您的应用作为服务运行,然后您不需要使用该服务设置的用户/密码。

答案 2 :(得分:1)

只是为了添加另一个引导(没有任何判断),autoit(脚本Windows语言)可能有答案,如本主题所述:

How to unlock an Xp desktop

我刚发现另一个scenario where one might want to unlock a desktop;)

答案 3 :(得分:0)

对于我的情况,我需要能够在断开终端会话后恢复控制台会话(我连接到带触摸屏的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