0

我决定将 Python 作为一种新的语言来学习。我要做的第一件事是编写一个脚本,允许我从本地机器远程重启其他机器上的服务。当远程机器需要用户名和密码才能登录时,我将如何做到这一点?我不需要为我提供完整的解决方案,但可能需要一些关于我应该使用哪些库或在编写脚本时需要解决的任何问题的指示。

编辑:所有远程机器都使用 Windows 2003

4

5 回答 5

3

人们通常推荐paramiko作为一个库来做 ssh(我假设你需要 ssh 才能进入远程机器)。有一个很好的教程

编辑:在 Windows 上,最简单的方法可能是使用 SysInternals psservice实用程序,使用 os.system 调用;这可以启动远程服务,并接受登录凭据。

如果您想直接在 Python 中执行此操作,则需要win32service.StartService。在此之前,您需要打开远程服务管理器,然后再打开远程服务。在此之前,您需要模拟您要执行操作的用户,请参见示例

于 2009-08-26T07:15:36.513 回答
3

看看基于paramiko的Fabric。这确实是一个使用 python 自动化远程任务的好工具。

Fabric Documentation将向您展示它的易用性。

于 2009-08-26T07:19:02.093 回答
1

您的远程计算机正在运行什么样的操作系统?如果是 linux,ssh(1)请使用subprocess模块运行。

如果是windows,则获取win32 extensions。它们允许您调用 Windows 函数。应该有一个 API 允许访问服务。如果他们不这样做,有一个名为sc( docs ) 的工具,您可以使用 subprocess 模块运行它。

于 2009-08-26T07:18:02.080 回答
1

目标机器的操作系统是什么?如果“服务”是“Windows NT 服务”,并且您的本地计算机也是 Windows,我将使用 IronPython 作为 Python 语言实现并直接调用 .net System.Management 命名空间中的 WMI 工具——它们的意思是对于这样的远程管理员。

于 2009-08-26T07:20:26.363 回答
0

在 Windows 上,wmi 模块现在非常适合这个。

于 2013-03-13T16:53:26.357 回答