Windowsサービス名を作成後に変更する方法


19

Tomcatサーバー用のWindowsサービスを作成し、正常に実行されていますが、サービス名を削除せずに変更したいです。

サービス名を変更するためのcmd \ GUIステップはありますか?

回答:


24

@bfhdの答えは、表示名(のリストに表示されるServices.mscだけで、「実際の」サービス名(サービス情報を含むレジストリキーの名前ではなく、 APIなどOpenServiceこのMSDNの記事の備考セクションでは、サービス名と表示名についてもう少し説明しています。

残念ながら、サービスの名前を変更する公式の方法はありません。ただし、何らかの理由で新しい名前でサービスを再インストールするのではなく、絶対にサービスの名前を変更する必要がある場合は、おそらく可能です。以下をせよ:

  1. サービスを停止します。実行中のサービスでこれを行うと、おそらくサービスコントロールマネージャーが混乱するでしょう。(とにかく混乱させるかもしれませんが、これは非常にハッキーです。)
  2. regedit.exe(レジストリエディター)を開きます。
  3. 移動するHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servicesと、あなたのサービスの名前を持つサブキーを見つけます。
  4. 手順3で見つけたキーを右クリックし、[名前の変更]を選択します。サービスの新しい名前を入力します。
  5. コンピューターを再起動します。Services.exe、サービスコントロールマネージャーをホストするプロセスは、変更しない限り変更を認識しません。名前を変更したプロセスを開始しようとすると(または実際にそれと対話することはありません)、失敗します。

私はこれが機能することを約束しません。ただし、何らかの理由で新しい名前でサービスを再インストールするだけでは受け入れられない場合は、おそらく試してみる価値があります。

プログラムでこれを行う必要がある場合、RegRenameKey上記の4番目のステップを実行できる関数存在する場合があります。私が知る限り、この機能は完全に非公式であるため、私は強調するかもしれません。MSDNにはなく、貴重な情報がほとんどありません。Windowsヘッダー(プロトタイプがあり、Vista-NT6.0以降のみにあることを示す)以外に私が見つけた唯一のものは、Sysinternalsフォーラムの投稿です。 )。からの関数プロトタイプ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
Tomcatがモニタープログラムを使用している場合は、[oldservicename]w.exeドライブ上にあります。その名前を変更することを忘れないでください
2015

11
これにより、サービス名ではなくサービスの表示名が変更されます。
デビッドシャーレット16

1
サービス名と表示名は異なるものです。表示名。サービスウィンドウに一目でわかります。サービス名、表示するにはプロパティを実行する必要があります。
サンドバーグ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.