Bagaimana cara mengubah nama layanan windows setelah membuatnya

19

Saya telah membuat layanan windows untuk tomcat server dan berfungsi dengan baik tetapi sekarang saya ingin mengubah nama layanan tanpa menghapusnya.

jadi apakah ada langkah cmd \ GUI untuk mengubah nama layanan?

Sasikumar Murugesan
sumber

Jawaban:

24

@ bfhd akan bekerja jika Anda hanya ingin mengubah Nama Tampilan (yang merupakan apa yang ditampilkan dalam daftar Services.msc, tetapi bukan nama layanan "asli" (yang merupakan nama kunci registri yang berisi informasi layanan, dan digunakan dalam API suka OpenService) .Bagian Keterangan dari artikel MSDN ini berbicara tentang nama layanan vs nama tampilan sedikit lebih.

Sayangnya, tidak ada cara resmi untuk mengubah nama layanan. Namun, mungkin saja, jika Anda benar - benar harus mengganti nama layanan alih-alih menginstalnya kembali dengan nama baru karena suatu alasan. Lakukan hal berikut:

  1. Hentikan layanan. Anda mungkin akan membingungkan manajer kontrol layanan jika Anda melakukan ini pada layanan yang berjalan. (Bagaimanapun Anda mungkin bingung, ini sangat hacky.)
  2. Buka regedit.exe(Editor Registri).
  3. Arahkan ke HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servicesdan temukan subkunci dengan nama layanan Anda.
  4. Klik kanan tombol yang Anda temukan di langkah # 3, dan pilih Ubah nama. Masukkan nama baru untuk layanan ini.
  5. Nyalakan ulang komputernya. Services.exe, proses yang meng-host manajer kontrol layanan, tidak akan melihat perubahan kecuali jika Anda melakukannya; upaya untuk memulai proses yang diubah namanya (atau sebaliknya berinteraksi sama sekali, sebenarnya) akan gagal.

Saya tidak menjanjikan ini bekerja. Mungkin patut dicoba, jika, karena alasan tertentu menginstal ulang layanan dengan nama baru sangat tidak dapat diterima.

Jika Anda harus melakukan ini secara terprogram, mungkin ada fungsi RegRenameKeyyang dapat melakukan langkah keempat di atas untuk Anda. Saya menekankan mungkin ada karena, sejauh yang saya tahu, fungsi ini sama sekali tidak resmi; itu bukan di MSDN dan ada sedikit info berharga tentang itu. Satu-satunya hal yang saya temukan, selain header Windows (yang memiliki prototipe, dan menunjukkan bahwa itu hanya pada Vista - NT6.0 - dan yang lebih baru), adalah posting forum Sysinternals , yang menunjukkan bahwa ia memanggil syscall NT (juga tidak berdokumen) ). Prototipe fungsi, dari WinReg.h, adalah

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

Program baris perintah Windows untuk mengubah layanan adalah "sc".

Inilah halaman referensi Microsoft: https://technet.microsoft.com/en-us/library/bb490995.aspx

Untuk mengubah nama tampilan layanan, Anda dapat menjalankan:

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

Untuk mengubah yang dapat dieksekusi, Anda dapat menjalankan:

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

Untuk kedua perintah tersebut, pastikan Anda memiliki spasi antara = dan nama baru (mis. displayname= "New Name", BUKAN displayname="New Name" )

bfhd
sumber
1
Jika kucing jantan Anda menggunakan program monitor maka akan ada [oldservicename]w.exedrive Anda. Jangan lupa ganti nama itu
Marged
11
Ini mengubah nama tampilan layanan dan bukan nama layanan.
David Sherret
1
Nama layanan dan Nama Tampilan adalah dua hal yang berbeda. Nama Tampilan, Anda melihatnya sekilas di jendela layanan. Nama layanan, Anda harus melakukan Properties untuk melihatnya.
Sandburg