【发布时间】:2013-10-30 04:35:13
【问题描述】:
我们有一个应用程序需要从管理员帐户转到另一个受限帐户,反之亦然。目前我们在注册表中设置自动登录,然后重启机器。由于机器启用了 EWF,这最多需要 3 次重新启动。我们的客户支持不能坐等远程机器重启,而电话里有一位愤怒的客户。
我们有一个 Windows 服务和一个在机器上运行的 ui(用 C# 编写)。其中大部分是windows 7,但也有一些是windows xp 和windows 8。
我想知道这里是否有人知道一种方法可以欺骗 Windows 以为它刚刚重新启动并自动登录到一个帐户。有人知道什么吗?我知道有一些棘手的方法可以从登录屏幕自动登录帐户,但据我所知,这需要编写一个模块来替换 windows XP 和 windows vista 及更高版本中的 GINA,因为 GINA 被替换为一个“Content Provider”,写一个 Content Provider 什么的,这两者看起来都有些矫枉过正,但可能是未来的解决方案。有什么想法吗?
注意:我们不是在帐户之间切换,以便应用程序可以在该帐户下运行进程,而是在帐户之间切换,以便真实的人具有管理访问权限或对计算机的有限访问权限。希望能更清楚一点
【问题讨论】:
-
您可以作为受限用户登录 Windows 并以管理员或任何其他用户身份运行任何应用程序。反之亦然,我相信。这会解决你的问题吗?为什么需要将整个 shell 加载为不同的用户?
-
我知道您可以欺骗 Windows 在您注销时自动重新登录,因此您不需要完全重新启动。当然,您也可以像其他人一样执行代码。但是,如果不重新启动,您将无法绕过 EWF。
-
我们使用 ewfmgr -commitanddisable -live c: 来关闭 ewf,但是作为受限用户我们不能这样做(尽管我们可以作为另一个用户运行进程,在某些情况下我们会这样做)。我们需要能够以管理员身份登录,以便技术人员和客户服务可以远程使用我们的产品并修复机器并执行受限用户无法执行的操作。如果你知道我的意思,他们不会想在命令提示符中输入命令来做所有事情
-
@PMF,这正是我要找的,你能告诉我更多细节吗?
-
首先:如果您以其他用户身份启动,例如 shell 或资源管理器,您可以像该用户一样运行任意数量的任务。您从该进程开始的所有内容都继承了调用进程的权限。对于自动登录,我不得不挖掘一下。