在Windows命令提示符下安装Windows服务?

403

我想使用Windows命令提示符(而不是Visual Studio命令提示符)安装Windows服务。

我该如何做?

21个回答

591

进入你的 .net 文件夹中的 installutil.exe(例如,对于 .net 4,它可能是 C:\Windows\Microsoft.NET\Framework\v4.0.30319),然后使用它来安装你的服务,就像这样:

"C:\Windows\Microsoft.NET\Framework\v4.0.30319\installutil.exe" "c:\myservice.exe"

关于评论,对于64位应用程序,请使用以下内容:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\installutil.exe

38
如果是x64编译的服务,使用"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\installutil.exe"。 - nme
22
我遇到了一个奇怪的错误。在.exe程序集中找不到带有RunInstallerAttribute的公共安装程序。请删除InstallState文件,因为没有安装程序。 - Nick
2
嗨,我尝试了这个解决方案,但它给出了异常信息:"...文件未找到或其依赖项之一。" 请帮忙。 - ShaileshDev
1
在“Framework”和“Framework64”中使用的installutil有什么区别吗? - Robin French
1
@Cataklysim,除非您将其添加到路径环境变量中,否则必须使用完整路径。 - Tigerware
显示剩余4条评论

384

SC Create 命令没有问题。 只需知道正确的参数:

SC CREATE "MySVC" binpath= "D:\Me\Services\MySVC\MySVC.exe"

49
这是唯一一个提到官方安装/修改/删除服务的答案。此外,这不依赖于是否安装了.NET Framework,并且适用于任何类型的文件,而不仅仅是.NET二进制文件。 - Alejandro
7
是的,这就是为什么我喜欢这种方法并且总是建议使用它,因为所有工作都需要在可属于任何 .net fw 版本的 exe 中完成。 - Sid
20
请注意,“binpath=”后面的空格是必要的。@ParamvirSinghKarwal - Urk
17
如果使用PowerShell运行此命令,请注意SC是Set-Content的别名。将"SC.exe"写入命令即可解决问题。 - Jesper Riemer Andersen
5
这不仅是唯一正确的答案,而且关于它只在Windows Server上可用的评论完全错误。我希望@CaptainDashenka能够删除那个评论,以免误导任何人。它至少在Windows 10专业版下可用,但您必须将sc.exe输入为sc是服务控制管理器,这是完全不同的东西。文档在此处:https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/sc-create - DeeJayh
显示剩余3条评论

89

如果目录的名称中有空格,比如 c:\program files\abc 123,那么您必须在路径周围使用双引号。

installutil.exe "c:\program files\abc 123\myservice.exe"

从命令提示符安装Windows服务

如果您设置一个类似以下的批处理文件,将会使事情变得更容易,

例如,要安装服务,请创建一个名为“myserviceinstaller.bat”的文件,并以管理员身份运行

@echo off
cd C:\Windows\Microsoft.NET\Framework\v4.0.30319
installutil.exe "C:\Services\myservice.exe"

if ERRORLEVEL 1 goto error
exit
:error
echo There was a problem
pause

卸载服务,只需在installutil命令中添加-u

cd C:\Windows\Microsoft.NET\Framework\v4.0.30319

C:\Windows\Microsoft.NET\Framework\v4.0.30319\installutil.exe -u "C:\Services\myservice.exe"

如果命令失败,InstallUtil 将返回 **-1**。在这种情况下,您可以使用 IF NOT '%ERRORLEVEL%' == '0' 检查错误级别。 - Amessihel

17

执行以下步骤:

  1. 以管理员权限启动命令提示符 (CMD)。
  2. 键入c:\windows\microsoft.net\framework\v4.0.30319\installutil.exe [您的 Windows 服务 exe 路径]
  3. 按下 回车,就这样!

重要的是要使用管理员权限打开,否则可能会出现毫无意义的错误。 如果出现任何错误,请首先检查是否使用管理员权限打开!

以管理员权限打开,右键单击“命令提示符”,然后选择“以管理员身份运行”。

来源: http://coderamblings.wordpress.com/2012/07/24/how-to-install-a-windows-service-using-the-command-prompt/


14

安装服务:

"C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe" 
"C:\Services\myservice.exe"

卸载服务:-

"C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe" -u "C:\Services\myservice.Service.exe"

7
在你的Windows服务exe文件旁边创建一个*.bat文件,用以下内容来进行安装:
CLS
ECHO Installing My Windows Service 

START %windir%\Microsoft.NET\Framework\v4.0.30319\installutil.exe "%~d0%~p0\YourWindowsServiceExeName.exe"

在Windows服务的exe文件旁边创建一个*.bat文件,用以下内容进行卸载操作:for uninstalling
CLS
ECHO Uninstalling My Windows Service 

START %windir%\Microsoft.NET\Framework\v4.0.30319\installutil.exe -u "%~d0%~p0\YourWindowsServiceExeName.exe"

请以管理员身份运行每个bat文件,以安装或卸载您的Windows服务。


7

在这个主题中,我必须再加上一点。安装/卸载64位版本的程序集应该使用64位版本的工具。要安装服务,命令应该是:

"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe"
"C:\YourFolder\YourService.exe"

卸载的命令应该是:

"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe" -u
"C:\YourFolder\YourService.exe"

3
  1. 以管理员身份运行Windows命令提示符
  2. 粘贴此代码:cd C:\Windows\Microsoft.NET\Framework\v4.0.30319\ 以进入文件夹
  3. 编辑并运行此工具:installutil C:\ProjectFolder\bin\Debug\MyProject.exe

注意:卸载时使用:installutil /u C:\ProjectFolder\bin\Debug\MyProject.exe


3

打开管理员权限的开发人员命令提示符并导航到

cd C:\Windows\Microsoft.NET\Framework\v4.0.30319

现在使用你的.exe所在的路径。
InstallUtil "D:\backup\WindowsService\WindowsService1\WindowsService1\obj\Debug\TestService.exe"

2
以下代码可用于安装和卸载服务。
请以管理员身份打开命令提示符并执行以下命令,然后按Enter键。
语法:
安装:
卸载:
C:\windows\microsoft.net\framework\v4.0.30319>InstallUtil.exe + Your copied path + \your service name + .exe

例如:我们的路径 InstallUtil.exe C:\MyFirstService\bin\Debug\MyFirstService.exe

卸载:

 C:\windows\microsoft.net\framework\v4.0.30319>InstallUtil.exe -u + Your copied path + \your service name + .exe

例如:我们的路径 InstallUtil.exe -u C:\MyFirstService\bin\Debug\MyFirstService.exe

如需更多帮助,请参阅以下链接:示例程序


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接