วิธีเปลี่ยนชื่อบริการของ windows หลังจากสร้าง


20

ฉันได้สร้างบริการ windows สำหรับเซิร์ฟเวอร์ Tomcat และมันทำงานได้ดี แต่ตอนนี้ฉันต้องการเปลี่ยนชื่อบริการโดยไม่ลบมัน

cmd \ GUI มีขั้นตอนใดบ้างในการเปลี่ยนชื่อบริการ

คำตอบ:


25

@ bfhd คำตอบจะใช้งานได้หากคุณต้องการเปลี่ยนชื่อที่แสดง (ซึ่งเป็นชื่อที่ปรากฏในรายการServices.mscแต่ไม่ใช่ชื่อบริการ "ของจริง" (ซึ่งเป็นชื่อของคีย์รีจิสทรีที่มีข้อมูลบริการและใช้ใน API เช่นOpenService ) ส่วนข้อสังเกตของบทความ MSDN นี้จะพูดถึงชื่อบริการและชื่อที่แสดงอีกเล็กน้อย

น่าเสียดายที่ไม่มีวิธีที่เป็นทางการในการเปลี่ยนชื่อบริการ อย่างไรก็ตามอาจเป็นไปได้หากคุณต้องเปลี่ยนชื่อบริการแทนการติดตั้งใหม่ภายใต้ชื่อใหม่ด้วยเหตุผลบางประการ ทำดังต่อไปนี้:

  1. หยุดบริการ คุณอาจจะสับสนผู้จัดการควบคุมบริการถ้าคุณทำเช่นนี้ในบริการที่ทำงานอยู่ (คุณอาจสับสนได้ แต่นี่มันแฮ็คมาก)
  2. เปิด regedit.exe (ตัวแก้ไขรีจิสทรี)
  3. นำทางไปยัง HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servicesและค้นหาคีย์ย่อยด้วยชื่อบริการของคุณ
  4. คลิกขวาที่คีย์ที่คุณพบในขั้นตอนที่ 3 และเลือกเปลี่ยนชื่อ ป้อนชื่อใหม่สำหรับบริการ
  5. รีสตาร์ทคอมพิวเตอร์ Services.exeกระบวนการที่โฮสต์ตัวจัดการควบคุมบริการจะไม่เห็นการเปลี่ยนแปลงเว้นแต่คุณจะทำ ความพยายามที่จะเริ่มกระบวนการเปลี่ยนชื่อ (หรือมิฉะนั้นโต้ตอบกับมันเลยจริง ๆ ) จะล้มเหลว

ฉันไม่สัญญากับการทำงานนี้ มันอาจจะน่าลอง แต่ถ้าด้วยเหตุผลบางอย่างเพียงแค่ติดตั้งบริการภายใต้ชื่อใหม่เป็นที่ยอมรับไม่ได้

หากคุณต้องทำสิ่งนี้โดยทางโปรแกรมอาจมีฟังก์ชั่นRegRenameKeyที่สามารถทำตามขั้นตอนที่สี่สำหรับคุณได้ ฉันอาจมีความเครียดเพราะเท่าที่ฉันสามารถบอกได้ฟังก์ชั่นนี้ไม่เป็นทางการโดยสิ้นเชิง มันไม่ได้อยู่ใน MSDN และมีข้อมูลเล็กน้อยเกี่ยวกับมัน สิ่งเดียวที่ฉันค้นพบนอกเหนือจากส่วนหัวของ Windows (ซึ่งมีต้นแบบและระบุว่าเป็นเฉพาะใน Vista - NT6.0 - และใหม่กว่า) เป็นโพสต์ในฟอรัม Sysinternalsซึ่งระบุว่าเรียกว่า syscall NT (เช่นไม่มีเอกสาร) ) ต้นแบบฟังก์ชั่นจากWinReg.hคือ

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

26

โปรแกรมบรรทัดคำสั่งของ Windows เพื่อเปลี่ยนบริการคือ "sc"

นี่คือหน้าอ้างอิงของ Microsoft: https://technet.microsoft.com/en-us/library/bb490995.aspx

ในการเปลี่ยนชื่อที่แสดงของบริการคุณสามารถเรียกใช้:

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

ในการเปลี่ยนปฏิบัติการที่คุณสามารถเรียกใช้:

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

สำหรับทั้งคำสั่งเหล่านั้นตรวจสอบให้แน่ใจว่าคุณมีช่องว่างระหว่าง = และชื่อใหม่ (เช่น. displayname= "New Name", NOT displayname="New Name" )


1
หากโพงของคุณใช้โปรแกรมตรวจสอบจะมี[oldservicename]w.exeไดรฟ์ของคุณอยู่ อย่าลืมเปลี่ยนชื่อนั้น
จิ้น

11
สิ่งนี้จะเปลี่ยนชื่อที่แสดงของบริการไม่ใช่ชื่อบริการ
David Sherret

1
ชื่อบริการและชื่อที่แสดงเป็นสองสิ่งที่แตกต่างกัน ชื่อที่แสดงคุณจะเห็นได้อย่างรวดเร็วก่อนในหน้าต่างบริการ ชื่อบริการคุณต้องทำ Properties เพื่อดู
Sandburg
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.