gpt4 book ai didi

batch-file - 通过sc安装后如何自动启动Windows服务?

转载 作者:行者123 更新时间:2023-12-03 19:51:19 25 4
gpt4 key购买 nike

我创建了一个用于安装服务的批处理文件,因为我需要在没有 Visual Studio 的 PC 上安装我的服务。

批处理文件内容:

@echo OFF
echo Installing service...
sc create "MyService" binpath= %~dp0\MyService.exe start= auto
echo Installing service complete
pause

我需要在安装后自动启动 MyService,所以我编写了以下代码:
private void svInstaller_AfterInstall(object sender, InstallEventArgs e)
{
ServiceController sc = new ServiceController(svInstaller.ServiceName);
sc.Start();
}

如果我使用 InstallUtil 通过 Visual Studio 命令提示符安装我的服务,则没有任何问题。
当我通过批处理文件安装服务时,我的服务没有自动启动。

通过批处理文件安装后如何自动启动我的服务?

更新:感谢 Sam Denty 的回答,我的问题解决了。
但我还有一个问题: 当我通过 sc 安装我的服务时,我在 AfterInstall 函数中的代码不起作用?

最佳答案

这可以通过使用 net start service 来实现。或 sc start命令( see previous question on that )。

使用 sc start 启动服务,语法为:

sc [<ServerName>] start <ServiceName> [<ServiceArguments>]

<ServerName>
Specifies the name of the remote server on which the service is located. The name must use the Universal Naming Convention (UNC) format (for example, \\myserver). To run SC.exe locally, omit this parameter.
<ServiceName>
Specifies the service name returned by the getkeyname operation.
<ServiceArguments>
Specifies the service arguments to pass to the service to be started.

示例:
sc start MyService

更新脚本:
@echo OFF
echo Installing service...
sc create "MyService" binpath= %~dp0\MyService.exe start= auto
sc start MyService
echo Installing service complete
pause

关于batch-file - 通过sc安装后如何自动启动Windows服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43161349/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com