Cài đặt dịch vụ Windows bằng dấu nhắc lệnh Windows?


323

Tôi muốn cài đặt dịch vụ Windows bằng dấu nhắc lệnh Windows (không phải dấu nhắc lệnh của Visual Studio).

Làm thế nào để tôi làm điều này?

Câu trả lời:


517

Điều hướng đến installutil.exe trong thư mục .net của bạn (ví dụ: .net 4 là C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319) và sử dụng nó để cài đặt dịch vụ của bạn, như thế này:

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

35
Nếu đó là dịch vụ được biên dịch x64, hãy sử dụng "C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ installutil.exe".
nme 23/2/2016

20
Tôi nhận được một lỗi kỳ lạ. Không có trình cài đặt công khai với RunInstallerAttribution. Có thuộc tính có thể được tìm thấy trong hội đồng .exe. Xóa tệp InstallState vì không có trình cài đặt
Nick

1
Xin chào, tôi đã thử giải pháp này nhưng đưa ra ngoại lệ là "... không tìm thấy tệp hoặc một trong các phụ thuộc của nó." Xin vui lòng giúp đỡ.
ShaileshDev

Đối với tất cả mọi người có cùng một vấn đề như tất cả những điều này và tôi: Bạn không cần phải đặt toàn bộ con đường trong đó nữa. một cài đặt đơn giản "C: \ YourProject.exe" là đủ.
Cataklysim

1
@Cataklysim Bạn phải sử dụng đường dẫn đầy đủ, trừ khi bạn thêm nó vào biến môi trường đường dẫn.
BluE

211

Không có gì sai với lệnh SC Tạo. Chỉ cần bạn biết các đối số chính xác:

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

27
Đây là câu trả lời duy nhất tham chiếu cách chính thức để cài đặt / sửa đổi / xóa dịch vụ. Hơn nữa, điều này không phụ thuộc vào .NET Framework được cài đặt và hoạt động với bất kỳ loại tệp nào, không chỉ các tệp nhị phân .NET.
Alejandro

7
Đúng ... đó là lý do tại sao tôi thích cách tiếp cận này và luôn tư vấn cho nó vì tất cả các công việc cần phải được thực hiện trong exe có thể thuộc về bất kỳ phiên bản .net fw nào.
Sid

1
đáng lưu ý rằng lệnh này chỉ có sẵn cho máy chủ windows (và một số phiên bản Windows cũ hơn). Win 10 cũng có một sclệnh nhưng nó có gì đó khác biệt, không thể được sử dụng để đăng ký dịch vụ.
Thuyền trưởng Dashenka

4
Lưu ý rằng không gian sau "binpath =" là bắt buộc. @ParamvirSinghKarwal
Urk

1
Nếu sử dụng powershell để chạy lệnh này, lưu ý rằng SC là bí danh cho Set-Content. Viết SC.exe sẽ khắc phục điều đó.
Jesper Riemer Andersen

84

Nếu tên thư mục có khoảng trắng như thế c:\program files\abc 123, thì bạn phải sử dụng dấu ngoặc kép quanh đường dẫn.

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

Cài đặt dịch vụ windows từ dấu nhắc lệnh

Nó làm cho mọi thứ dễ dàng hơn nhiều nếu bạn thiết lập một tập tin bat như sau,

ví dụ: Để cài đặt dịch vụ, hãy tạo "myserviceinstaller.bat" và " Chạy với tư cách quản trị viên "

@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

để gỡ cài đặt dịch vụ,

Chỉ cần thêm một -u vào lệnh installutil.

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

Thực hiện như sau:

  1. Khởi động dấu nhắc lệnh (CMD) với quyền quản trị viên.
  2. Kiểu c:\windows\microsoft.net\framework\v4.0.30319\installutil.exe [your windows service path to exe]
  3. Báo chí returnvà đó là điều đó!

Điều quan trọng là phải mở bằng quyền quản trị nếu không bạn có thể thấy các lỗi phát sinh không có ý nghĩa. Nếu bạn nhận được bất kỳ, hãy kiểm tra bạn đã mở nó với quyền quản trị viên trước!

Để mở bằng quyền quản trị , nhấp chuột phải vào 'Dấu nhắc lệnh' và chọn 'Chạy với tư cách quản trị viên'.

Nguồn: http://coderamblings.wordpress.com/2012/07/24/how-to-install-a-windows-service-USE-the-command-prompt/


11

Cài đặt dịch vụ: -

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

Dịch vụ UnInstall: -

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

6

Tôi phải thêm một điểm nữa trong chủ đề này. Để cài đặt / gỡ cài đặt 64-bitphiên bản lắp ráp, người ta nên sử dụng 64-bitphiên bản công cụ. Để cài đặt một dịch vụ, lệnh phải là:

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

và để gỡ cài đặt lệnh nên là:

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

4

Tạo một *.battập tin bên cạnh cửa sổ dịch vụ của bạn exetập tin để cài đặt với bối cảnh sau đây:

CLS
ECHO Installing My Windows Service 

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

Tạo một *.battập tin bên cạnh cửa sổ dịch vụ của bạn exetập tin cho gỡ bỏ cài đặt với bối cảnh sau đây:

CLS
ECHO Uninstalling My Windows Service 

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

Chạy từng battệp với tư cách Quản trị viên để cài đặt hoặc gỡ cài đặt dịch vụ windows của bạn.


2
  1. Chạy Windows Command Prompt với tư cách quản trị viên
  2. dán mã này: cd C:\Windows\Microsoft.NET\Framework\v4.0.30319\để đi đến thư mục
  3. chỉnh sửa và chạy nó quá: installutil C:\ProjectFolder\bin\Debug\MyProject.exe

Lưu ý: Để gỡ cài đặt:installutil /u C:\ProjectFolder\bin\Debug\MyProject.exe


2

Mở Visual studio và chọn dự án mới bằng cách chọn Windows Servicemẫu trong Windows Desktoptab. Hơn sao chép mã sau vào tệp service_name.cs của bạn.

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." });
        }
    }
}

Nhấp chuột phải vào tệp service_name.cs và thiết kế mở dịch vụ. nhấp chuột phải và chọn Add Installer. hơn nhấp chuột phải vào serviceProcessInstaller1và thay đổi giá trị tài sản của Accounttừ Userđể Local System.

Xóa static void mainphương thức khỏi Program.cstập tin. Hơn tiết kiệm và Xây dựng dự án của bạn.

LƯU Ý:bin\Ddebug thư mục goto của thư mục dự án của bạn. Hơn mở thuộc tính của service_name.exetập tin của bạn . Hơn Compatibilitytab goto . Hơn bấm vào Change Settings For All Users.

Chọn tùy chọn Run this program as an administrator.

Bây giờ, bạn phải mở CommandPromt với tư cách Quản trị viên. Sau khi mở, đặt thư mục đến nơi InstallUtil.exetệp của bạn được đặt. ví dụ : C:\Windows\Microsoft.NET\Framework64\v4.0.30319. Bây giờ viết lệnh sau:

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

Lưu ý: -i là để cài đặt dịch vụ anh ấy và -u cho Unsinstall.

sau khi tôi đặt đường dẫn ghi nơi bạn muốn cài đặt dịch vụ của mình.

Bây giờ hãy viết lệnh trong CommandPromt như sau:

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

Lưu ý: sử dụng stopđể dừng Dịch vụ.

Bây giờ, mở ViewEventLog.exe. Chọn Nhật ký Windows> Ứng dụng. Ở đó bạn có thể kiểm tra nhật ký dịch vụ của mình bằng cách bắt đầu và dừng dịch vụ.


2

Nếu bạn đang sử dụng Powershell và bạn muốn cài đặt dịch vụ .NET, bạn có thể sử dụng Cài đặt dịch vụ mô-đun . Nó là một trình bao bọc cho công cụ InstalUtil.

Nó lộ ra 3 lệnh

  • Cài đặt dịch vụ - gọi đường dẫn  InstallUtil.exeToExecutable lệnh
  • Install-Service IfNotInstalled - đầu tiên, nó sẽ kiểm tra xem dịch vụ có được cài đặt hay không nếu không thực hiện phương thức Install-Service
  • Gỡ cài đặt-Dịch vụ - nó gỡ cài đặt dịch vụ. Tên dịch vụ của đường dẫn đến thực thi có thể được sử dụng.

Mã cho mô-đun này có thể được xem tại đây


1
  1. khởi động dấu nhắc lệnh (CMD) với quyền quản trị viên.
  2. Nhập c: \ windows \ microsoft.net \ framework \ v4.0.30319 \ installutil.exe [đường dẫn dịch vụ windows của bạn để exe]
  3. Nhấn quay lại

1

đoạn mã sau, cài đặt và gỡ cài đặt Dịch vụ,

Mở dấu nhắc lệnh và chạy chương trình với tư cách quản trị viên và kích hoạt lệnh bên dưới và nhấn enter.

Cú pháp

Để cài đặt

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

ví dụ: Đường dẫn của chúng tôi InstallUtil.exe C: \ MyFirstService \ bin \ Debug \ MyFirstService.exe

Để gỡ cài đặt

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

ví dụ: đường dẫn của chúng tôi InstallUtil.exe -u C: \ MyFirstService \ bin \ Debug \ MyFirstService.exe

để được trợ giúp thêm, bạn có thể xem liên kết sau: chương trình mẫu


1

Bỏ các bước khi triển khai Dịch vụ Windows, không mất thời gian

1- Chạy lệnh nhắc bởi quyền Admin

2- Đảm bảo về chế độ phát hành khi biên dịch trong IDE của bạn

3- Cung cấp một loại cho trình cài đặt dự án của bạn trên quan điểm thiết kế

4- Chọn loại xác thực theo trường hợp

5- Đảm bảo về sự phụ thuộc phần mềm: Nếu bạn đang sử dụng chứng chỉ, hãy cài đặt chính xác

6- Đi giao diện điều khiển của bạn viết này:

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

có một đối số ẩn -i trước đường dẫn exe -i c:\bạn có thể sử dụng -uđể gỡ cài đặt

7- Nhìn đường dẫn .exe của bạn để có vẻ như tệp nhật ký. Bạn có thể sử dụng trình xem sự kiện để quan sát trong tính năng


1

mở dấu nhắc lệnh Nhà phát triển với tư cách Quản trị viên và điều hướng đến

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

Bây giờ sử dụng đường dẫn của bạn .exeở đó

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

0

khi phiên bản lắp ráp của bạn và dự án Visual studio Biuld của bạn cài đặt trên dot net 2 hoặc 4 cài đặt cùng một phiên bản.

cài đặt dịch vụ với installutilcùng phiên bản đó

nếu xây dựng trong dot net 4

Kiểu c:\windows\microsoft.net\framework\v4.0.30319\installutil.exe

nếu xây dựng trong dot net 2

Kiểu c:\windows\microsoft.net\framework\v2.0.11319\installutil.exe


0

1. Từ menu Bắt đầu, chọn thư mục Visual Studio, sau đó chọn Dấu nhắc lệnh dành cho nhà phát triển cho VS.

2. Dấu nhắc lệnh dành cho nhà phát triển cho Visual Studio xuất hiện.

3. Truy cập thư mục chứa tệp thực thi được biên dịch của dự án của bạn.

4.Run InstallUtil.exe từ dấu nhắc lệnh với tệp thực thi dự án của bạn làm tham số


-1

Bạn nên mở dấu nhắc lệnh, đi đến

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


-1

Mở dấu nhắc lệnh với tư cách quản trị viên, đi đến Thư mục nơi bạn .execư trú. Để cài đặt Exenhư dịch vụ

D:\YourFolderName\YourExeName /i

Để gỡ cài đặt sử dụng /u.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.