1

我知道如何远程重启机器,所以这很容易。但是,问题的复杂性在于尝试设置以下内容。我想控制网络上的机器以供下班后使用,这样当用户注销并回家或关闭他们的计算机时,python 或 python + windows 的某种组合可以重新启动他们的机器(为了清洁)并自动登录,在晚上运行一个进程,然后在早上,停止所述进程并重新启动机器,以便用户可以像往常一样轻松登录。

我环顾四周,运气不太好,尽管看起来可以通过更改注册表来做到这一点。不过,这听起来像是一个粗略的想法,每天都要修改注册表。有没有更简单的方法?

4

3 回答 3

3

除非您绝对需要桌面,否则您可能想要考虑运行您正在考虑作为Windows 服务的任何程序。有几个与此相关的问题,例如这里这里,以及关于Active State的食谱。这并不涉及真正需要启动或登录计算机。

也总是可以选择计划任务等等。这实际上可以通过 Python 以编程方式完成,例如在这篇博文中。

至于打开电源关闭的计算机,虽然我从来没有做过任何事情,但我知道 Windows 支持LAN 唤醒功能,并且似乎有一些很好的资源,包括ActiveState 上的配方

如果您需要一个桌面来运行您的程序,我认为您别无选择,只能弄乱注册表以允许自动登录,因为我不相信 Window 的 GINA 可以以任何形式或形式编写脚本。

于 2010-06-18T00:34:52.693 回答
1

除了注册表之外,我想不出任何方法可以严格按照您的意愿去做,至少在没有更严厉的措施的情况下不会。但是做这个注册表修改没什么大不了的。只需更改自动登录用户名/密码并重新启动计算机。要在用户注销时重新启动计算机,请给他们一个“注销”选项,该选项实际上是重新启动而不是注销;我见过其他地方这样做。

(编辑)仅供参考:对于注册表编辑,Windows 有一个 REG 命令,如果您决定采用该路线,它将很有用。(/编辑)

另外,您要运行什么样的进程?如果它不是一个需要你交互的 GUI 应用程序,你不必经历任何巨大的痛苦;只需远程运行应用程序。在我的工作中,我们使用 psexec 来做这件事非常简单,而且我还创建了远程运行代码的 C++ 程序。这并不难,我这样做的方式是让 C++ 调用 WinAPI 函数在远程 PC 上远程注册服务并启动它,然后服务做我想做的任何事情(本身,或作为启动其他东西的暂存点),然后注销自身。我只将 Python 用于简单的网页内容,所以我不确定它对访问所需的 DLL 有什么样的支持,但如果它可以做到这一点,你仍然可以在这里使用 Python。

甚至更好的是,如果您不需要远程执行此操作,而只想每天晚上完成,您可以使用 Windows 调度程序来运行您想要在夜间运行的任何应用程序。您甚至可以通过编程方式执行此操作,因为有几个 Windows 命令可以做到这一点:一个是“at”命令,我现在不记得另一个是什么,但只需用谷歌搜索一下就可以找到它。

于 2010-06-18T00:24:21.237 回答
0

感谢您的回复。为了更清楚地了解我在做什么,我有一个在启动时自动启动的程序,因此最好先登录。我正在为一个渲染农场编写一个管理器来工作,它将把我们的人白天使用的所有机器都变成渲染服务器,然后在晚上(例如,当他们注销一段时间时)将它们变成渲染服务器。

我不确定我是否一定需要 GUI 应用程序,但是计算机需要启动并登录才能启动执行渲染的服务器应用程序,我不确定是否可以在不登录的情况下完成。我是什么m 需要运行的是 Autodesk 的 Backburner Server.exe

也许不需要特别登录就可以运行,但我不熟悉做那种性质的事情。

于 2010-06-19T15:55:07.367 回答