我们有一个糟糕的遗留Windows应用程序(已经讨论过here),它将内容从Windows主机复制到许多Linux主机。我们在几个盒子上运行它的几个实例。每个实例都有自己的.ini
文件,其中包含列表目标服务器。通常我们需要更改这些文件的内容并重新启动流程,这个流程由我们的运营团队手工完成。我想用一个简单的基于Web的实用程序(在Linux主机上运行)替换它,它允许用户生成配置文件,将它们发送到主机并重新启动服务。生成文件很简单 - 我可能使用Perl和Template Toolkit - 并且由于服务器导出其配置目录,因此复制数据也相对容易。
重启Windows服务有哪些选择? Win32::Service
?我没有机会看起来很远,所以如果你说“x::y
让这很容易,但要注意z”你会节省我很多时间。它甚至可能吗?或者,也许你可以建议一个更好的方法来解决这个问题(遗憾地更换软件不是一个!)我不是想偷懒,只是避免浪费时间摆弄可能不会做我想要的模块。
答案 0 :(得分:3)
Ubuntu包含一个可以帮助管理Windows系统的实用程序wmic
- WMI Client
。有了适当的权限,WMI
可以轻松停止和启动Windows服务。
(手册页中的示例,而非服务控制。)
实施例
wmic -U [domain /] adminuser%password // host“select * from Win32_ComputerSystem”
答案 1 :(得分:2)
Winexe可以做到这一点;它是Linux等同于Sysinternal非常有用的PsExec工具。
上次我使用Winexe是在几年前,所以这可能已经改变,但当时有几个警告:
答案 2 :(得分:2)
您可以使用Winexe
$ winexe -U HOME/Administrator%'Pass123' //host 'cmd /C net stop wuauserv && net start wuauserv && echo AutoUpdates service restarted'
密码是在''
< - 手册之间写的,不要说这个,但是有效。
答案 3 :(得分:1)
您可以使用以下命令从Windows命令行重新启动Windows服务:
net stop service_name
net start service_name
您可以通过单击“服务”窗口中的属性找到服务名称。
这可以让你编写脚本。
答案 4 :(得分:0)
最具体的方法是构建一个处理ini更新和重新启动服务的Web服务,但鉴于这是一个内部解决方案,可能会造成大量过度杀伤。
答案 5 :(得分:0)
我通常远程启用telnet,远程登录,并使用“net stop ServiceName”和“net start ServiceName”。
答案 6 :(得分:0)
尝试使用
{{1}}