如何在Windows上使用某些启动参数启动服务


17

如何使用某些参数启动服务?在另一个问题中,我发现

净启动服务名称等等

但是,如果我尝试这样做,则会向我net抛出语法错误。

我究竟做错了什么?

编辑:澄清net start servicename工作正常,但我需要将参数传递给服务。我可以services.msc通过在启动服务之前填写启动参数来手动执行此操作。但是如何从脚本执行此操作?

另一个编辑:对不起,但我的问题有误导性。在我的测试中,我有更多的参数,而不是/blah net start抱怨。实际上,任何以斜杠开头的东西都可以。所以net start servicename /blah作品,net start servicename blah不能正常工作。既然我需要net start servicename /foo barbar那就是问题所在。

Answers:


29
sc启动fooservice arg1 arg2 ...

我不知道当时我怎么能错过您的答案,但是我很高兴我现在(偶然)发现了它。这就像一个魅力-甚至使用并非以开头的参数/。非常感谢!
2010年

这是2018年,似乎“ sc start ...”和“ net start ...”在Windows 10中均不起作用。编辑注册表确实可以工作serverfault.com/questions/507561/…–
MarcH

8

NET START据我所知,您将不允许您传递任意参数(似乎必须以/开头),我相信正确的方法是修改适当的注册表项并停止/启动服务。假设您的自定义服务称为MyService:

[HKLM\SYSTEM\CurrentControlSet\Services\MyService]
"ImagePath":C:\Projects\MyService\bin\MyService.exe Parameter1 Parameter2

确实,更好的方法是将配置存储在服务知道的地方,例如注册表或文件系统,并读取所需的任何值。如您所见,自定义命令行比原本要痛苦的多。

如果这是.NET开发的服务,则可以在文件系统上创建n个可执行文件副本,并让每个副本从相应的app.config文件中自动获取参数。

听起来您可能已经超出Win32框了。由于这听起来像是自定义开发,所以其他任何提供的解决方案(虽然可能不是您的理想选择)都将正常工作,并且是更安全的方法。


啊。该服务需要一个配置文件。它要么使用默认文件名,要么使用默认文件名。由于我需要运行服务的两个不同实例,因此需要将它们指向不同的配置文件。不得不摆弄注册表似乎是一个非常丑陋的黑客。除此之外,还有其他方法吗?
2010年

Goyuix,请参阅我编辑的问题。net start 确实接受参数,但仅接受以开头的参数/
2010年

Goyuix,我现在使用sc.exe。请参阅grawity的答案(当时我设法以某种方式错过了它)。
2010年

4

使用时,在每个参数之前需要一个斜杠net start。另外,请确保引用带空格的参数。

net start servicename /param0 /"param1 with spaces" /"/param2_has_slash"

再看我的问题。我也有(必须)以斜杠开头的参数。那我该如何通过呢?
2012年

试试这个:net start servicename /“ / foo” / bar
Even Mien 2012年

3

net start servicename /foo 对于一个论点

net start servicename /"foo bar" 用于字符串或参数列表

注意:这个问题已有8年历史了,但是我没有评论已接受答案的声誉,这仍然是2018年google上的最佳成绩,所以我想澄清一下关于最终编辑问题的现行解决方案。


注意:我给了你一个赞,所以现在你的答案排在第4位,您的代表人数也有所增加。在这里玩得开心!:-)
sbi

1

您需要使用控制面板服务中显示的实际服务名称。如果包含空格,则必须在服务名称两边加上引号。

要获取实际的服务名称,只需在net start命令提示符下键入任何参数即可。它应该为您提供所有正在运行的服务的列表,以便您可以获取实际的服务名称。然后使用net start <servicename>


Robert,这是我的一项服务,我先安装它,然后在脚本中启动。我net start "my-service-name"很好 这是net start "my-service-name" /blah给我一个错误消息。我也尝试过net start "my-service-name" -blah,这也是语法错误。
2010年

0

InstSrv和SrvAny可以协助吗?指南和链接


我已经简短地看了一下,但我不这么认为。(如果我错了,请纠正我。)我有一个真实的服务可执行文件,并且运行良好。只是(用于测试)我需要从脚本安装和启动它,并且需要将参数传递给服务。
2010年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.