使用Windows命令提示符安装Windows服务?

Vik*_*dey 304 c# windows-services command-prompt

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

我该怎么做呢?

小智 484

导航到.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"
Run Code Online (Sandbox Code Playgroud)

  • 不要忘记"以管理员身份"运行命令提示符 (73认同)
  • 如果是x64编译服务,请使用"C:\ Windows\Microsoft.NET\Framework64\v4.0.30319\installutil.exe". (35认同)
  • 我得到一个奇怪的错误.没有RunInstallerAttribute的公共安装程序.可以在.exe程序集中找到是属性.删除InstallState文件,因为没有安装程序 (19认同)
  • 您好,我尝试了这个解决方案,但它给出了异常“...文件未找到或其依赖项之一。” 请帮忙。 (2认同)

Sid*_*Sid 174

SC Create命令没有错.只是你需要知道正确的args:

SC CREATE "MySVC" binpath= "D:\Me\Services\MySVC\MySVC.exe"
Run Code Online (Sandbox Code Playgroud)

  • 这是唯一引用*官方*安装/修改/删除服务的方法的答案.此外,这不取决于正在安装的.NET Framework,并且可以使用任何类型的文件,而不仅仅是.NET二进制文件. (18认同)
  • 请注意,“binpath=”后面的空格是必需的。@ParamvirSinghKarwal (8认同)
  • 是的..为什么我喜欢这种方法并且总是建议它,因为所有的工作都需要在exe中完成,这可以属于任何.net fw版本. (7认同)
  • 如果使用 powershell 运行此命令,请注意 SC 是 Set-Content 的别名。编写 SC.exe 可以解决这个问题。 (7认同)
  • 这不仅是唯一正确的答案,而且关于它仅适用于 Windows Server 的评论是完全错误的。我希望 @CaptainDashenka 删除该评论,以免误导任何人。它是可用的,至少在 Windows 10 Professional 下是可用的,但您必须输入“sc.exe”,因为“sc”是服务控制管理器,这完全是另一回事。文档位于:https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/sc-create (3认同)

Dha*_*777 82

如果目录的名称有空格c:\program files\abc 123,则必须在路径周围使用双引号.

installutil.exe "c:\program files\abc 123\myservice.exe"
Run Code Online (Sandbox Code Playgroud)

从命令提示符安装Windows服务

如果您设置如下的bat文件,它会使事情变得更容易,

例如,要安装服务,请创建"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
Run Code Online (Sandbox Code Playgroud)

卸载服务,

只需在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"
Run Code Online (Sandbox Code Playgroud)


Bas*_*e33 16

执行以下操作:

  1. 使用管理员权限启动命令提示符(CMD).
  2. 类型 c:\windows\microsoft.net\framework\v4.0.30319\installutil.exe [your windows service path to exe]
  3. return,那是那个!

使用管理员权限打开很重要,否则您可能会发现无意义的错误.如果你得到任何,请检查你是否先用管理员权限打开它!

要使用管理员权限打开,请右键单击"命令提示符"并选择"以管理员身份运行".

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


小智 8

安装服务: -

"C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe" 
"C:\Services\myservice.exe"
Run Code Online (Sandbox Code Playgroud)

UnInstall服务: -

"C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe" -u "C:\Services\myservice.Service.exe"
Run Code Online (Sandbox Code Playgroud)


Moh*_*yan 7

创建*.bat你的windows服务旁文件exe文件安装有以下方面:

CLS
ECHO Installing My Windows Service 

START %windir%\Microsoft.NET\Framework\v4.0.30319\installutil.exe "%~d0%~p0\YourWindowsServiceExeName.exe"
Run Code Online (Sandbox Code Playgroud)

创建*.bat你的windows服务旁文件exe文件卸载有以下方面:

CLS
ECHO Uninstalling My Windows Service 

START %windir%\Microsoft.NET\Framework\v4.0.30319\installutil.exe -u "%~d0%~p0\YourWindowsServiceExeName.exe"
Run Code Online (Sandbox Code Playgroud)

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


MKR*_*MKR 6

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

"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe"
"C:\YourFolder\YourService.exe"
Run Code Online (Sandbox Code Playgroud)

并卸载命令应该是:

"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe" -u
"C:\YourFolder\YourService.exe"
Run Code Online (Sandbox Code Playgroud)