我们有一个糟糕的传统Windows应用程序( 这里已经讨论过 )将内容从Windows主机复制到许多Linux主机。 我们在几个盒子上运行它的几个实例。 每个实例都有自己的.ini
文件,其中包含一个列表目标服务器。 我们经常需要更改这些文件的内容,并重新启动这个过程,这个过程由我们的操作团队亲自完成。 我想用一个简单的基于Web的实用程序(在Linux主机上运行)replace它,它允许用户生成configuration文件,将它们发送到主机并重新启动服务。 生成文件很容易 – 我可能会使用Perl和模板工具包 – 因为服务器导出他们的configuration目录复制数据也相对容易。
我有什么select重新启动Windows服务? Win32::Service
? 我还没有机会看很远,所以如果你说“ x::y
使这个容易,但要小心z”,你会为我节省很多时间。 这甚至有可能吗? 另外,也许你可以build议一个更好的方法来解决这个问题(更换软件不幸的是不是一个!)我不想懒惰,只是避免浪费时间摆弄模块,可能不会做我想做的事情。
Ubuntu包含一个实用程序,可以帮助管理Windows系统, WMI Client
– WMI Client
。 有了适当的权限, WMI
可以轻松停止和启动Windows服务。
(手册页中的示例,而不是服务控制。)
例
wmic -U [domain /] adminuser%password // host“select * from Win32_ComputerSystem”
Winexe可以做到这一点; 这是Sysinternal非常有用的PsExec工具的Linux。
我上一次使用Winexe是几年前,所以这可能已经改变了,但当时有一些警告:
你可以使用Winexe
$ winexe -U HOME/Administrator%'Pass123' //host 'cmd /C net stop wuauserv && net start wuauserv && echo AutoUpdates service restarted'
密码写在''
< – 手动不要说这个,但它的工作。
您可以使用以下命令从Windows命令行重新启动Windows服务:
net stop service_name net start service_name
您可以通过单击“服务”窗口中的属性来查找服务名称。
这可能会使你编写脚本。
最具体的方法是建立一个web服务来处理ini的更新和重新启动服务,但是鉴于这是一个内部的解决方案,可能是巨大的矫枉过正。
我通常远程启用telnet,telnet到框,并使用“net stop ServiceName”和“net start ServiceName”。