sbi*_*sbi 20 windows windows-service
如何使用某些参数启动服务?在另一个问题中,我发现
net start servicename 等等
但是如果我尝试这个,就会向我net
抛出一个语法错误。
我究竟做错了什么?
编辑:澄清net start servicename
工作正常,但我需要将参数传递给服务。我可以services.msc
通过在启动服务之前填写启动参数来手动执行此操作。但是我怎么能从脚本中做到这一点呢?
另一个编辑:对不起,但我的问题具有误导性。在我的测试中,我有更多的参数,这不是/blah
net start
抱怨。事实上,任何以斜杠开头的东西都可以。所以net start servicename /blah
行得通,net start servicename blah
行不通。既然我需要net start servicename /foo bar
,bar
那就是问题所在。
NET START
据我所知,不允许您传递任意参数(似乎它们必须以 / 为前缀),我相信正确的方法是修改适当的注册表项并停止/启动服务。假设您的自定义服务名为 MyService:
[HKLM\SYSTEM\CurrentControlSet\Services\MyService]
"ImagePath":C:\Projects\MyService\bin\MyService.exe Parameter1 Parameter2
Run Code Online (Sandbox Code Playgroud)
但实际上,更好的方法是将您的配置存储在服务知道的地方,例如注册表或文件系统,并读取您需要的任何值。正如您所看到的,自定义命令行比它应该的要痛苦一些。
如果这是 .NET 开发的服务,您可以在文件系统上创建可执行文件的n 个副本,并让每个副本自动从相应的 app.config 文件中获取参数。
听起来您可能已经在 Win32 框之外走得太远了。由于这听起来像是自定义开发,因此任何其他提供的解决方案虽然可能不是您的理想选择,但都能正常工作并且是一种更安全的方法。
小智 5
net start servicename /foo
对于单个参数
net start servicename /"foo bar"
对于字符串或参数列表
注意:这个问题已经有 8 年历史了,但我没有资格对已接受的答案发表评论,这仍然是 2018 年 google 的热门结果,所以我想澄清一下现在关于问题最终编辑的工作。
归档时间: |
|
查看次数: |
130772 次 |
最近记录: |