Windows hizmet adını oluşturduktan sonra değiştirme


20

Tomcat sunucusu için windows hizmeti oluşturdum ve iyi çalışıyor ama şimdi silmeden hizmet adını değiştirmek istiyorum.

hizmet adını değiştirmek için herhangi bir cmd \ GUI adımları var mı?

Yanıtlar:


25

@ bfhd'nin yanıtı, yalnızca Görünen Adı (listede gösterilen şeydir Services.msc, ancak "gerçek" hizmet adı (hizmet bilgilerini içeren kayıt defteri anahtarının adıdır) ve API'ler gibi OpenService). bölümüne Açıklamalar Bu MSDN makalede biraz daha görünen adları vs hizmet adları hakkında görüşmelerde.

Ne yazık ki, bir hizmetin adını değiştirmenin resmi bir yolu yoktur. Ancak, bir nedenle herhangi bir nedenle yeni adla yeniden yüklemek yerine hizmeti kesinlikle yeniden adlandırmanız gerekiyorsa , muhtemelen mümkündür . Aşağıdakileri yapın:

  1. Hizmeti durdurun. Çalışan bir hizmette bunu yaparsanız, muhtemelen hizmet denetim yöneticisini karıştıracaksınız. (Her neyse karıştırabilirsiniz, bu çok acayip.)
  2. regedit.exe(Kayıt Defteri Düzenleyicisi) öğesini açın .
  3. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ServicesHizmetinizin adının bulunduğu alt anahtara gidin ve bulun.
  4. 3. adımda bulduğunuz anahtarı sağ tıklatın ve Yeniden Adlandır'ı seçin. Hizmet için yeni bir ad girin.
  5. Bilgisayarı yeniden başlatın. Services.exe, hizmet denetim yöneticisini barındıran işlem, siz değiştirmedikçe değişikliği görmez; yeniden adlandırılan işlemi başlatma girişimleri (veya aslında başka bir şekilde etkileşimde bulunma) başarısız olur.

Bu işe söz vermiyorum. Herhangi bir nedenle sadece yeni bir adla hizmeti yeniden yüklemek çok kabul edilemez ise, muhtemelen denemeye değer.

Bu program kullanarak yapmak gerekiyorsa, orada olabilecek bir işlev var RegRenameKeysizin için yukarıda dördüncü adımı yapabilirsiniz. Ben stres olabilir , şimdiye kadar söyleyebilirim, bu fonksiyon tamamen gayri resmi olduğu için mevcut; MSDN'de değil ve bu konuda çok az bilgi var. Windows üstbilgileri dışında bulduğum tek şey (prototipi olan ve yalnızca Vista - NT6.0 - ve daha yeni sürümlerde olduğunu gösteren), bir NT syscall (ayrıca belgesiz) olarak adlandırdığını gösteren bir Sysinternals forum postası ). Fonksiyon prototip gelen WinReg.h, olan

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

27

Hizmetleri değiştirmek için Windows komut satırı programı "sc" dir.

İşte Microsoft başvuru sayfası: https://technet.microsoft.com/en-us/library/bb490995.aspx

Bir hizmetin görünen adını değiştirmek için şunları yapabilirsiniz:

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

Yürütülebilir dosyayı değiştirmek için şunları çalıştırabilirsiniz:

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

Bu komutların her ikisi için, = ve yeni ad arasında bir boşluk olduğundan emin olun (örn. displayname= "New Name", NOT displayname="New Name" )


1
Tomcat'iniz monitör programını kullanıyorsa, [oldservicename]w.exesürücünüzde bir. Bu adı değiştirmeyi unutmayın
15:45

11
Bu, hizmet adını değil, hizmetin görünen adını değiştirir.
David Sherret

1
Hizmet adı ve Görünen Ad iki farklı şeydir. Görünen Ad, ilk bakışta hizmetler penceresinde görürsünüz. Hizmet adı, görmek için Özellikler yapmak zorunda.
Sandburg
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.