Tomcatサーバー用のWindowsサービスを作成し、正常に実行されていますが、サービス名を削除せずに変更したいです。
サービス名を変更するためのcmd \ GUIステップはありますか?
Tomcatサーバー用のWindowsサービスを作成し、正常に実行されていますが、サービス名を削除せずに変更したいです。
サービス名を変更するためのcmd \ GUIステップはありますか?
回答:
@bfhdの答えは、表示名(のリストに表示されるServices.msc
だけで、「実際の」サービス名(サービス情報を含むレジストリキーの名前ではなく、 APIなどOpenService
)このMSDNの記事の備考セクションでは、サービス名と表示名についてもう少し説明しています。
残念ながら、サービスの名前を変更する公式の方法はありません。ただし、何らかの理由で新しい名前でサービスを再インストールするのではなく、絶対にサービスの名前を変更する必要がある場合は、おそらく可能です。以下をせよ:
regedit.exe
(レジストリエディター)を開きます。HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
と、あなたのサービスの名前を持つサブキーを見つけます。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
);
サービスを変更する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"
)
[oldservicename]w.exe
ドライブ上にあります。その名前を変更することを忘れないでください