以编程方式解锁 Windows 工作站

17
我想写一个小应用程序来解锁工作站。简单来说,我需要的规格是:有一个运行exe文件,在特定时间(比如午夜)解锁工作站。当然,该应用程序知道已登录帐户的用户和密码。
我知道LogonUser API,并尝试使用过它,但失败了。是否有人有解决方案或代码片段可以真正解决这个问题?
我针对NT5操作系统进行目标定位。
嗯,既然有人开始问原因了:我正在开发一个桌面共享应用程序,我想添加解锁工作站的功能。拥有一个非常小而简单的应用程序,在特定时间解锁工作站,以分离问题并避免集成细节。

1
这听起来像是一个非常糟糕的想法。这样做的目的是什么?可能有更好的解决方案... - user1228
1
我非常确定这是一个坏主意,而且(我真的希望)也不可能实现。 - GEOCHET
研究覆盖GINA,但正如其他两个人所说,这是一个非常糟糕的想法。为什么你要这样做呢?你可以在计算机上运行一个服务来随意执行任何操作。 - Henry B
1
你能否分享一些对你有用的建议?我也遇到了同样的问题,我发现这篇文章(http://waynes-world-it.blogspot.com/2008/04/unlocking-xp2003-without-passwords.html)很有趣。但是,它对我不起作用,因为目标应用程序(Rational Functional Tester)被认为是在交互模式下定期运行,检查桌面是否真正解锁。 - dma_k
对于你们所有认为这是不好和不可能的人,我们正在构建一个远程测试平台,需要并行远程控制多台计算机。锁定的计算机很糟糕,因为我们需要控制鼠标、键盘,并捕获屏幕以处理程序。这是纯粹的邪恶吗?请清醒一点…… - Kobor42
显示剩余2条评论
4个回答

9

为了让你有答案,而不是别人留下评论更好的答案。

这当然是可能的,但正如许多人已经说过的那样,这并不明智,如果有人在电脑旁边走过,它解锁后会发生什么,他们能玩多久等等?

无论如何,除了建议您拥有一个服务来处理您想要在计算机上进行的任何工作,甚至远程连接到计算机以进行工作之外,您还可以利用以下信息。 (对于“代码示例”,您可以自己制作)

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


@finnw:我同意关于语言的观点。我编辑了它,使其职业中立化,希望这对OP没问题。你应该能够取消你的-1。 - Platinum Azure
1
另一个需要考虑的因素是:GINA 被认为已经过时。请参阅 http://msdn.microsoft.com/en-us/magazine/cc163489.aspx。 - Henry Aloni

2

0
让您的应用程序作为服务运行,这样您就不需要用户/密码,因为这已经在服务中设置好了。

2
这并没有回答问题。 - ataraxia

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接