如何在Windows上远程重启一个服务?

144
有时在调试时,我需要重新启动远程机器上的服务。目前,我是通过远程桌面来完成这个任务的。如何从我的本地机器上的命令行完成这个任务?

1
这些答案都没有解释如何进行远程启动,同时处理执行服务调用所需的用户权限。 - djangofan
8个回答

224

您可以使用服务控制台,在左侧单击,然后在操作菜单中选择“连接到另一台计算机”选项。

如果您只想使用命令行,则可以使用

sc \\machine stop <service>

1
在cmd.exe中完美运行。在PowerShell中无法工作,可能是因为\的原因,错误如下:Set-Content:找不到与参数名'[the name of the service]'匹配的参数。唯一的小缺点是在操作完成之前会将您返回到命令行。 - Josh Kodroff
4
由于sc命令是异步工作的,如果您需要编写脚本来重新启动服务,请查看我在此处发布的批处理脚本:https://dev59.com/iHM_5IYBdhLWcg3wXx_Z - Eric Falsken
7
在PowerShell中,您需要使用sc.exe \\machine stop <service>来停止服务。否则,我认为sc会引用另一个命令。 - CJBrew
5
用户在远程计算机上启动特定远程服务所需的最小权限集是什么? - huseyint
1
在PowerShell中,您可以使用Restart-Service命令轻松完成此操作:Get-Service W3SVC -computer myserver | Restart-Service - Jan Remunda
显示剩余4条评论

44

您可以使用mmc:

  1. 启动/运行。输入“mmc”。
  2. 文件/添加或删除管理单元... 点击“添加”
  3. 找到“服务”,并点击“添加”
  4. 选择“另一台计算机:” 并输入远程计算机的主机名/IP地址。点击完成,关闭等。

在此时,您将能够像管理本机一样管理服务。


1
糟糕,没有注意到“命令行”要求。 - Ryan Duffield
9
我需要在服务器上解除哪些端口的阻止? - The Muffin Man
2
这真是太棒了。我一直在远程访问服务器来处理服务。现在有了这个,我可以在同一个控制台中列出不同的服务器。 - Alan

9
您可以使用System Internals中的PSEXEC命令来远程执行net stop yourservice,然后再执行net start yourservice

PSService也很有用。这些工具有很强大的功能。 - Brad Bruce

6

使用命令行,您可以这样做:

AT \\computername time "NET STOP servicename"
AT \\computername time "NET START servicename"

6
为了明确,"AT"命令使用Windows计划程序来安排命令执行。它在编写多个远程命令的脚本时过于复杂,并不能保证命令的执行顺序或在下一个命令之前完成执行。相比之下,“SC”命令更为适用。请查看我在此问题中发布的批处理脚本:https://dev59.com/iHM_5IYBdhLWcg3wXx_Z - Eric Falsken

1
我建议你去看一下RSHD
你不需要为客户端操心,Windows默认就有了。

0

嗯,如果您有Visual Studio(我知道它在2005年,不确定之前的版本),您可以将远程计算机添加到“服务器资源管理器”标签中。此时,您将可以访问在该计算机上运行或可以运行的服务(以及事件日志、队列和其他一些有趣的内容)。


奇怪的是,这在VS2005中可以工作,但在VS2008中却不能。您仍然可以浏览服务,但不再直接启动或停止它们。因此,您可以右键单击服务节点并为该主机启动服务管理器。 - Peter Wone

0

一种方法是在您想要控制服务的机器上启用telnet服务器(添加/删除Windows组件)

打开dos提示符
键入telnet yourmachineip/name
登录
键入net start &serviceName*,例如w3svc

这将启动IIS,或者您可以使用net stop停止服务。

根据您的设置,您需要查看一种保护telnet连接的方法,因为我认为它是未加密的。


2
Telnet 绝对不是加密的。 - Josh Kodroff

0

这里有几个好的解决方案。如果你仍在使用Win2K并且无法在远程计算机上安装任何东西,那么这也可以起作用:

打开计算机管理控制台(右键单击“我的电脑”,选择“管理”;从“开始”菜单中的“管理工具”打开;或者从MMC中使用快照打开)。

右键单击计算机名称,选择“连接到远程计算机”

输入计算机名称和凭据,您就可以完全访问许多管理员功能,包括服务控制面板。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接