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


Answers:


517

导航到.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"

35
如果它是x64编译服务,请使用“ C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ installutil.exe”。
nme 2016年

20
我收到一个奇怪的错误。没有带有RunInstallerAttribute的公共安装程序。在.exe程序集中可以找到yes属性。删除InstallState文件,因为没有安装程序
Nick

1
嗨,我尝试了这种解决方案,但是它给出的异常是“ ...未找到文件或其依赖项之一”。请帮忙。
ShaileshDev

对于与所有这些问题和我都有同样问题的每个人:您不再需要把整个路径都放在其中。一个简单的installutil.exe“ C:\ YourProject.exe”就足够了。
Cataklysim

1
@Cataklysim您必须使用完整路径,除非您将其添加到路径环境变量中。
BluE

211

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

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

27
这是引用安装/修改/删除服务的官方方式的唯一答案。而且,这不依赖于安装的.NET Framework并可以与任何类型的文件一起工作,而不仅仅是.NET二进制文件。
亚历杭德罗(Alejandro)

7
是的,这就是为什么我喜欢这种方法并始终建议它的原因,因为所有工作都需要完成到可以属于任何.net fw版本的exe文件中。
希德

1
值得注意的是,此命令仅适用于Windows Server(和某些较旧的Windows版本)。Win 10也有一个sc命令,但这是不同的,不能用来注册服务。
达申卡上尉'19

4
注意,“ binpath =”之后的空格是必须的。@ParamvirSinghKarwal
Urk,

1
如果使用powershell运行此命令,请注意SC是Set-Content的别名。编写SC.exe将解决此问题。
Jesper Riemer Andersen

84

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

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

从命令提示符安装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

卸载服务,

只需在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"

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/


11

安装服务:

"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"

6

我必须在该线程中再加一点。要安装/卸载64-bit程序集版本,应使用64-bit工具版本。要安装服务,命令应为:

"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"

4

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

CLS
ECHO Installing My Windows Service 

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

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

CLS
ECHO Uninstalling My Windows Service 

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

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


2
  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


2

打开Visual Studio并通过Windows ServiceWindows Desktop选项卡中选择模板来选择新项目。将以下代码复制到您的service_name.cs文件中。

using System.Diagnostics;
using System.ServiceProcess;
namespace TimerService
{
    public partial class Timer_Service : ServiceBase
    {
        public Timer_Service()
        {
            InitializeComponent();
        }
        static void Main()
        {
            if (System.Diagnostics.Debugger.IsAttached)
            {
                Timer_Service service = new Timer_Service();
                service.OnStart(null);
            }
            else
            {
                ServiceBase[] ServicesToRun;
                ServicesToRun = new ServiceBase[]
                {
                    new Timer_Service()
                };
                ServiceBase.Run(ServicesToRun);
            }
        }
        protected override void OnStart(string[] args)
        {
            EventLog.WriteEvent("Timer_Service", new EventInstance(0, 0, EventLogEntryType.Information), new string[] { "Service start successfully." });
        }
        protected override void OnStop()
        {            
            EventLog.WriteEvent("Timer_Service", new EventInstance(0, 0, EventLogEntryType.Information), new string[] { "Service stop successfully." });
        }
    }
}

右键单击service_name.cs文件,然后打开服务设计器。右键单击并选择Add Installer。而不是右键单击serviceProcessInstaller1并将其属性值Account从更改UserLocal System

static void mainProgram.cs文件中删除方法。比保存并生成您的项目。

注意:bin\Ddebug项目文件夹的goto 文件夹。比打开service_name.exe文件的属性。比转到Compatibility标签。比点击Change Settings For All Users

选择选项Run this program as an administrator

现在,您必须以管理员身份打开CommandPromt。打开后,将目录设置InstallUtil.exe为放置文件的位置。例如:C:\Windows\Microsoft.NET\Framework64\v4.0.30319。现在编写以下命令:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319>InstallUtil.exe -i C:\TimerService\TimerService\bin\Debug\TimerService.exe

注意: -i用于安装服务,-u用于卸载。

在-i设置之后,在您要安装服务的位置写入路径。

现在,在CommandPromt中编写命令,如下所示:

C:\TimerService\TimerService\bin\Debug>net start service_name

注:使用stop的停止服务。

现在,打开ViewEventLog.exe。选择Windows日志>应用程序。您可以在此处通过启动和停止服务来查看服务日志。


2

如果您使用的是Powershell,并且要安装.NET服务,则可以使用Install-Service模块。它是InstalUtil工具的包装。

它公开了3个命令

  • 安装服务-调用  InstallUtil.exe pathToExecutable命令
  • Install-ServiceIfNotInstalled-如果未执行Install-Service方法,则首先检查是否已安装服务
  • 卸载服务-卸载服务。可以使用可执行文件路径的ServiceName。

可以在这里查看此模块的代码


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

1

以下代码,安装和卸载服务,

打开命令提示符并以管理员身份运行该程序,然后启动以下命令,然后按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

要获得更多帮助,您可以查看以下链接:示例程序


1

简化部署Windows服务的步骤,不要浪费时间

1-通过管理员权限运行命令提示符

2-在IDE中进行编译时确保释放模式

3-在设计视图中为项目安装程序输入类型

4-根据情况选择身份验证类型

5-确保软件相关性:如果使用证书,请正确安装

6-在控制台上输入以下内容:

C:\Windows\Microsoft.NET\Framework\yourRecentVersion\installutil.exe c:\yourservice.exe

-i c:\可以-u用于卸载的exe路径前有一个隐藏的-i参数

7-查找您的.exe路径以显示日志文件。您可以使用事件查看器来观察功能


1

以管理员身份打开Developer命令提示符并导航至

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

现在使用路径你.exe在那里

InstallUtil "D:\backup\WindowsService\WindowsService1\WindowsService1\obj\Debug\TestService.exe"

0

当您的程序集版本和Visual Studio项目点网2或4上的Biuld设置安装为相同版本时。

使用installutil相同版本的安装服务

如果内置于点网4

类型 c:\windows\microsoft.net\framework\v4.0.30319\installutil.exe

如果内置于点网2

类型 c:\windows\microsoft.net\framework\v2.0.11319\installutil.exe


0

1.从“开始”菜单中,选择“ Visual Studio”目录,然后选择“ VS的开发人员命令提示符”。

2.出现Visual Studio开发人员命令提示符。

3.访问项目的已编译可执行文件所在的目录。

4,以项目的可执行文件作为参数从命令提示符运行InstallUtil.exe


-1

您应该打开命令提示符,转到

C:\windows\microsoft.net\framework\v4.0.30319\InstallUtil.exe -i ".EXE file of window service"


-1

以管理员身份打开命令提示符,转到您.exe所在的文件夹。Exe作为服务安装

D:\YourFolderName\YourExeName /i

要卸载,请使用/u

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.