Cách thay đổi tên dịch vụ windows sau khi tạo nó


19

Tôi đã tạo dịch vụ windows cho máy chủ tomcat và nó đang chạy tốt nhưng bây giờ tôi muốn thay đổi tên dịch vụ mà không xóa nó.

Vì vậy, có bất kỳ bước cmd \ GUI để thay đổi tên dịch vụ?

Câu trả lời:


24

Câu trả lời của @ bfhd sẽ hoạt động nếu bạn chỉ muốn thay đổi Tên hiển thị (tên hiển thị trong danh sách Services.msc, nhưng không phải là tên dịch vụ "thực" (là tên của khóa đăng ký chứa thông tin dịch vụ và được sử dụng trong API như OpenService). Phần Nhận xét của bài viết MSDN này nói về tên dịch vụ so với tên hiển thị nhiều hơn một chút.

Thật không may, không có cách chính thức để thay đổi tên của một dịch vụ. Tuy nhiên, có lẽ là có thể, nếu bạn hoàn toàn phải đổi tên dịch vụ thay vì chỉ cài đặt lại dưới tên mới vì một số lý do. Làm như sau:

  1. Dừng dịch vụ. Bạn có thể sẽ nhầm lẫn trình quản lý kiểm soát dịch vụ nếu bạn làm điều này trên một dịch vụ đang chạy. (Bạn có thể nhầm lẫn nó bằng mọi cách, điều này rất hack.)
  2. Mở regedit.exe(Trình chỉnh sửa sổ đăng ký).
  3. Điều hướng đến HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servicesvà tìm khóa con với tên dịch vụ của bạn.
  4. Nhấp chuột phải vào khóa bạn đã tìm thấy ở bước # 3 và chọn Đổi tên. Nhập tên mới cho dịch vụ.
  5. Khởi động lại máy tính. Services.exe, quá trình lưu trữ trình quản lý kiểm soát dịch vụ, sẽ không thấy thay đổi trừ khi bạn thực hiện; những nỗ lực để bắt đầu quá trình đổi tên (hoặc thực tế là tương tác với nó, thực sự) sẽ thất bại.

Tôi không hứa gì về việc này. Tuy nhiên, có lẽ đáng để thử, nếu vì một lý do nào đó, chỉ cần cài đặt lại dịch vụ dưới một tên mới là không thể chấp nhận được.

Nếu bạn phải làm điều này theo chương trình, có thể tồn tại một chức năng RegRenameKeycó thể thực hiện bước thứ tư ở trên cho bạn. Tôi nhấn mạnh có thể tồn tại bởi vì, theo như tôi có thể nói, chức năng này là hoàn toàn không chính thức; Nó không có trong MSDN và có rất ít thông tin quý giá về nó. Điều duy nhất tôi tìm thấy, ngoài các tiêu đề Windows (có nguyên mẫu và chỉ ra rằng nó chỉ có trên Vista - NT6.0 - và mới hơn), là một bài đăng trên diễn đàn Sysiternals , chỉ ra rằng nó gọi là một tòa nhà chọc trời NT (cũng không có giấy tờ ). Nguyên mẫu hàm, từ WinReg.h, là

WINADVAPI
LSTATUS
APIENTRY
RegRenameKey(
    _In_ HKEY hKey,
    _In_opt_ LPCWSTR lpSubKeyName,
    _In_ LPCWSTR lpNewKeyName
);

26

Chương trình dòng lệnh Windows để thay đổi dịch vụ là "sc".

Đây là trang tham khảo của Microsoft: https://technet.microsoft.com/en-us/l Library / bb490995.aspx

Để thay đổi tên hiển thị của dịch vụ, bạn có thể chạy:

sc config "Old service name" displayname= "New service name"

Để thay đổi thực thi, bạn có thể chạy:

sc config "Service name" binpath= "C:\path\to\executable\here"

Đối với cả hai lệnh đó, hãy đảm bảo bạn có khoảng trắng giữa = và tên mới (nghĩa là displayname= "New Name", KHÔNG displayname="New Name" )


1
Nếu tomcat của bạn sử dụng chương trình màn hình, sẽ có một [oldservicename]w.exeổ đĩa của bạn.
Don Tiếtt

11
Điều này thay đổi tên hiển thị của dịch vụ chứ không phải tên dịch vụ.
David Sherret

1
Tên dịch vụ và Tên hiển thị là hai thứ khác nhau. Tên hiển thị, bạn nhìn thấy nó từ cái nhìn đầu tiên trong cửa sổ dịch vụ. Tên dịch vụ, bạn phải làm Properties để xem nó.
Sandburg
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.