2013-08-29 47 views
11

Tôi đã tạo một dịch vụ Windows với Delphi cho một ứng dụng máy khách.Cách cài đặt dịch vụ windows từ dòng lệnh chỉ định tên và mô tả?

Để cài đặt nó tôi sử dụng

c:\Test\MyService.exe /install (or /uninstall) 

này cài đặt các dịch vụ và các dịch vụ trong Windows nó sẽ liệt kê với tên "MyService" và mô tả sản phẩm nào.

Cách xác định tên khác và chèn mô tả (để được nhìn thấy khi chạy services.msc)?

Lưu ý: Tôi cần điều này vì trên cùng một máy tôi cần cài đặt nhiều lần dịch vụ tương tự (1 trên mỗi cơ sở dữ liệu).

Hiện tại, giải pháp thay thế duy nhất mà tôi muốn đổi tên là dịch vụ exe, nhưng tôi muốn tìm ra cách dòng lệnh chính xác để làm điều đó (vì tôi làm điều này từ ShellExecute).

Cập nhật: Bằng cách nào đó tôi muốn tìm kiếm một cái gì đó tương tự (! Này chỉ là vì những lý do giải thích tất nhiên - InstallService.exe là một cái tên tôi chỉ phát minh):

InstallService.exe c:\Test\MyService.exe /install /name='MyService1' 
    /description='This is my service for database 1' 

mà còn là một phiên bản nhỏ gọn hơn sẽ ổn như:

c:\Test\MyService.exe /install /name='MyService1' 
    /description='This is my service for database 1' 
+3

+1 Tôi không thấy lý do tại sao câu hỏi này xứng đáng với một downvote –

+0

Lưu ý rằng Delphi 'TService' không khởi động dịch vụ khi nó được tạo với tên khác với thuộc tính' Name'. Xem [Dịch vụ không bắt đầu] (http://stackoverflow.com/q/18599201/859646) để biết mô tả sự cố và cách khắc phục. – JRL

+0

@Jerry - đó không phải là một câu hỏi tồi, nhưng nó dường như không có chủ đề. Perhpas đó sẽ giải thích downvote. Super User thích hợp hơn cho câu hỏi "làm cách nào để sử dụng lệnh này". – jww

Trả lời

13

Windows đã giao hàng với tiện ích bạn cần, cụ thể là sc create.

 
>sc create /? 
DESCRIPTION: 
     Creates a service entry in the registry and Service Database. 
USAGE: 
     sc create [service name] [binPath= ] ... 

OPTIONS: 
NOTE: The option name includes the equal sign. 
     A space is required between the equal sign and the value. 
type= 
     (default = own) 
start= 
     (default = demand) 
error= 
     (default = normal) 
binPath= 
group= 
tag= 
depend= 
obj= 
     (default = LocalSystem) 
DisplayName= 
password= 

Điều này sẽ tạo dịch vụ và cho phép bạn chỉ định tên và tên hiển thị.

Để chỉnh sửa mô tả bạn cần sc description:

 
>sc description /? 
DESCRIPTION: 
     Sets the description string for a service. 
USAGE: 
     sc description [service name] [description] 

Tùy chọn hiển nhiên khác là xây dựng dòng lệnh phân tích vào dịch vụ của bạn. Đó là tầm thường dễ dàng để làm. Chỉ cần chỉ định các trình xử lý cho các sự kiện BeforeInstall và/hoặc AfterInstall của dịch vụ và xử lý các công tắc ở đó.

+0

THanks rất nhiều. Tôi đã thử tất cả từ dòng lệnh và nó hoạt động như mong đợi. Nó hoạt động cũng với cùng một thời gian không có nghĩa là exe insatlled (tất nhiên eith khác nhau [tên dịch vụ] – LaBracca

+2

hơn nữa 'sc xóa [tên dịch vụ]' đóng vòng lặp – LaBracca

+0

Yup, sc là anh chàng của bạn –

Các vấn đề liên quan