如何从 CMD 重新启动服务

如何从 CMD 重新启动服务

我有一个 python 脚本,它将通过注册表启动蓝牙服务,方法是将值替换Startmanual我需要做的是从 CMD 重新启动服务。现在我知道我可以通过键入以下内容来执行此操作:net start "Bluetooth Support Service"但是,当我在运行脚本后执行此操作时,它找不到该服务并输出以下内容:

C:\Users\z-perkins-thomas\Documents\bin\python\fix-dap>net start "Bluetooth Support Service"

System error 1058 has occurred.

The service cannot be started, either because it is disabled or because it has no enabled devices associated with it.

重新启用服务后,重新启动服务的正确方法是什么?

答案1

在注册表中设置值不会更新服务控制管理器的内存信息。支持的方法是使用 SCM 的 API 或为您执行此操作的命令行程序:

sc config bthserv start= demand

请注意,服务名称bthserv是服务的 ID,而不是其显示名称。您可以在服务 MMC 管理单元 ( services.msc) 中的属性窗口中查看给定服务的 ID。

然后您将能够正常启动该服务。

奇怪的是,虽然手动修改注册表确实会使服务显示新的更改状态,但该服务仍然被禁用。我对此进行了测试,发现只有使用支持的方法或重新启动后,它才会真正启用。由于您的脚本已经在使用 Windows 实用程序 ( net),因此使用也sc不会降低其可移植性。

相关内容