如何在远程计算机上启动和停止服务?

时间:2009-02-17 06:26:33

标签: windows

我在项目中有一个要求,即我们必须在远程计算机(位于同一LAN上)中停止特定服务“x”,远程更改注册表项并再次启动服务。

我尝试了sc \server stop service命令,但收到错误:

  

[SC] GetServiceKeyName FAILED 1060:

     

指定的服务不作为已安装的服务存在。

我正在使用Windows 2003 SP1。 Windows上是否有可用的内置命令或API?

我需要在命令提示符下运行命令。

4 个答案:

答案 0 :(得分:7)

另请注意,“sc”命令行工具所需的“服务名称”参数并不总是等同于您在服务控制面板小程序中看到的名称(即服务“显示名称”)。

例如,我的服务控制面板小程序中显示为“Adobe Acrobat Update Service”的服务具有“AdobeARMservice”的实际名称。在通过“sc”实用程序管理服务时,您必须使用后者,而不是前者。

示例:

sc Stop "AdobeARMservice" (works)
sc Stop "Adobe Acrobat Update Service" (doesn't work)

要获取服务的“真实”名称,请在服务控制面板小程序中双击其条目,然后在“常规”选项卡上查看“服务名称”字段。

当然在某些情况下,显示名称和服务名称是相同的。

答案 1 :(得分:4)

您可能希望从PSTools查看SysInternals。这些工具是免费提供的,可以帮助您管理远程Windows机器上的进程。

PsTools套件中包含的工具可以作为包下载:

PsExec - execute processes remotely
PsFile - shows files opened remotely
PsGetSid - display the SID of a computer or a user
PsInfo - list information about a system
PsKill - kill processes by name or process ID
PsList - list detailed information about processes
PsLoggedOn - see who's logged on locally and via resource sharing 
PsLogList - dump event log records
PsPasswd - changes account passwords
PsService - view and control services
PsShutdown - shuts down and optionally reboots a computer
PsSuspend - suspends processes
PsUptime - shows you how long a system has been running since its last reboot

答案 2 :(得分:2)

来自此URL

To stop a service remotely you can use the command sc.

Example:
> sc \\computer stop "Service Name"
> sc \\computer start "Service Name"

也许你错过了一个“\”字符?

答案 3 :(得分:0)

使用OpenCSManager,然后使用OpenService,然后使用StartService。