Windowsコマンドプロンプトを使用してWindowsサービスをインストールしますか?


回答:


517

.netフォルダーのinstallutil.exeに移動し(.net 4の場合は、たとえばC:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319です)、次のように使用してサービスをインストールします。

"C:\Windows\Microsoft.NET\Framework\v4.0.30319\installutil.exe" "c:\myservice.exe"

35
x64コンパイル済みサービスの場合は、「C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ installutil.exe」を使用します。
nme

20
奇妙なエラーが出ます。RunInstallerAttributeを持つパブリックインストーラーはありません。はい属性が.exeアセンブリで見つかりました。インストーラがないため、InstallStateファイルを削除します
Nick

1
こんにちは、私はこの解決策を試しましたが、「...ファイルが見つからないか、その依存関係の1つ」として例外を与えています 助けてください。
ShaileshDev 2017年

これらすべてと私と同じ問題を抱えているすべての人のために:もうパス全体を入れる必要はありません。単純なinstallutil.exe "C:\ YourProject.exe"で十分です。
Cataklysim 2017

1
@Cataklysim path環境変数に追加しない限り、絶対パスを使用する必要があります。
BluE

211

SC Createコマンドに問題はありません。正しい引数を知る必要があるだけです:

SC CREATE "MySVC" binpath= "D:\Me\Services\MySVC\MySVC.exe"

27
これは、サービスをインストール/変更/削除する公式の方法を参照する唯一の回答です。さらに、これはインストールされている.NET Frameworkに依存せず、.NETバイナリだけでなく、あらゆる種類のファイルで機能します。
アレハンドロ

7
うん..だから、私はこのアプローチが好きで、常にアドバイスをしました。
2017

1
このコマンドはWindowsサーバー(および一部の古いWindowsバージョン)でのみ使用できることに注意してください。Win 10にもscコマンドがありますが、コマンドは異なり、サービスの登録には使用できません。
Dashenka船長、

4
「binpath =」の後のスペースは必須であることに注意してください。@ParamvirSinghKarwal
ユルク

1
powershellを使用してこのコマンドを実行する場合、SCはSet-Contentのエイリアスであることに注意してください。SC.exeを作成すると修正されます。
Jesper Riemer Andersen

84

ディレクトリの名前にのようなスペースがある場合はc:\program files\abc 123、パスを二重引用符で囲む必要があります。

installutil.exe "c:\program files\abc 123\myservice.exe"

コマンドプロンプトからWindowsサービスをインストールする

次のようなbatファイルを設定すると、はるかに簡単になります。

例えば、サービスをインストールする「「myserviceinstaller.bat」と作成するには、管理者として実行]を

@echo off
cd C:\Windows\Microsoft.NET\Framework\v4.0.30319
installutil.exe "C:\Services\myservice.exe"

if ERRORLEVEL 1 goto error
exit
:error
echo There was a problem
pause

サービスをアンインストールする

installutilコマンドに-uを追加するだけです。

cd C:\Windows\Microsoft.NET\Framework\v4.0.30319

C:\Windows\Microsoft.NET\Framework\v4.0.30319\installutil.exe -u "C:\Services\myservice.exe"

16

以下を実行します。

  1. 管理者権限でコマンドプロンプト(CMD)を起動します。
  2. タイプ c:\windows\microsoft.net\framework\v4.0.30319\installutil.exe [your windows service path to exe]
  3. 押すreturnとそれだけです!

管理者権限で開くことが重要です。そうしないと、意味のないエラーが発生する可能性があります。いずれかを取得した場合は、まず管理者権限で開いていることを確認してください!

管理者権限開くには、[コマンドプロンプト]を右クリックして[ 管理者として実行]を選択します。

ソース:http//coderamblings.wordpress.com/2012/07/24/how-to-install-a-windows-service-using-the-command-prompt/


11

サービスのインストール:-

"C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe" 
"C:\Services\myservice.exe"

サービスのアンインストール:-

"C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe" -u "C:\Services\myservice.Service.exe"

6

このスレッドにもう1つポイントを追加する必要があります。64-bitアセンブリのバージョンをインストール/アンインストールするには、64-bitバージョンのツールを使用する必要があります。サービスをインストールするには、コマンドは次のようになります。

"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe"
"C:\YourFolder\YourService.exe"

コマンドをアンインストールするには、次のようにする必要があります。

"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe" -u
"C:\YourFolder\YourService.exe"

4

作成*.batの横にあなたの窓サービスのファイルをexe、ファイルインストールするための次のコンテキストで:

CLS
ECHO Installing My Windows Service 

START %windir%\Microsoft.NET\Framework\v4.0.30319\installutil.exe "%~d0%~p0\YourWindowsServiceExeName.exe"

作成*.batの横にあなたの窓サービスのファイルをexeファイルアンインストールするための次のコンテキストで:

CLS
ECHO Uninstalling My Windows Service 

START %windir%\Microsoft.NET\Framework\v4.0.30319\installutil.exe -u "%~d0%~p0\YourWindowsServiceExeName.exe"

batファイルを管理者として実行し、Windowsサービスをインストールまたはアンインストールします。


2
  1. 管理者としてWindowsコマンドプロンプトを実行する
  2. このコードを貼り付けます:cd C:\Windows\Microsoft.NET\Framework\v4.0.30319\フォルダに移動します
  3. これも編集して実行します。 installutil C:\ProjectFolder\bin\Debug\MyProject.exe

注:アンインストールするには:installutil /u C:\ProjectFolder\bin\Debug\MyProject.exe


2

Visual Studioを開きWindows ServiceWindows Desktopタブでテンプレートを選択して新しいプロジェクトを選択します。次のコードをservice_name.csファイルにコピーしてください。

using System.Diagnostics;
using System.ServiceProcess;
namespace TimerService
{
    public partial class Timer_Service : ServiceBase
    {
        public Timer_Service()
        {
            InitializeComponent();
        }
        static void Main()
        {
            if (System.Diagnostics.Debugger.IsAttached)
            {
                Timer_Service service = new Timer_Service();
                service.OnStart(null);
            }
            else
            {
                ServiceBase[] ServicesToRun;
                ServicesToRun = new ServiceBase[]
                {
                    new Timer_Service()
                };
                ServiceBase.Run(ServicesToRun);
            }
        }
        protected override void OnStart(string[] args)
        {
            EventLog.WriteEvent("Timer_Service", new EventInstance(0, 0, EventLogEntryType.Information), new string[] { "Service start successfully." });
        }
        protected override void OnStop()
        {            
            EventLog.WriteEvent("Timer_Service", new EventInstance(0, 0, EventLogEntryType.Information), new string[] { "Service stop successfully." });
        }
    }
}

service_name.csファイルを右クリックして、サービスのデザイナーを開きます。右クリックしてを選択しますAdd Installer。次に、右クリックしserviceProcessInstaller1て、プロパティ値をAccountからUserに変更しますLocal System

ファイルstatic void mainからメソッドを削除しProgram.csます。プロジェクトを保存してビルドするよりも。

注:bin\Ddebugプロジェクトフォルダーのgoto フォルダー。service_name.exeファイルのプロパティを開くより。goto Compatibilityタブより。をクリックするよりChange Settings For All Users

オプションを選択しますRun this program as an administrator

ここで、管理者としてCommandPromtを開く必要があります。開いたら、InstallUtil.exeファイルを配置する場所にディレクトリを設定します。例:C:\Windows\Microsoft.NET\Framework64\v4.0.30319。次のコマンドを書きます:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319>InstallUtil.exe -i C:\TimerService\TimerService\bin\Debug\TimerService.exe

注: -iはサービスのインストール用、-uはアンインストール用です。

-iの後に、サービスをインストールするパスを書き込みに設定します。

次のようにCommandPromtにコマンドを記述します。

C:\TimerService\TimerService\bin\Debug>net start service_name

注:stopサービスの停止に使用します。

次に、を開きViewEventLog.exeます。「Windowsログ」>「アプリケーション」を選択します。そこで、サービスを開始および停止することにより、サービスのログを確認できます。


2

Powershellを使用していて、.NETサービスをインストールする場合は、Install-Serviceモジュールを使用できます。これは、InstalUtilツールのラッパーです。

3つのコマンドを公開します

  • Install-Service- InstallUtil.exe pathToExecutableコマンドを呼び出します 
  • Install-ServiceIfNotInstalled-最初に、サービスがインストールされているかどうかをチェックします。
  • Uninstall-Service-サービスをアンインストールします。実行可能ファイルへのパスのServiceNameを使用できます。

このモジュールへのコードはここで見ることができます


1
  1. 管理者権限でコマンドプロンプト(CMD)を起動します。
  2. c:\ windows \ microsoft.net \ framework \ v4.0.30319 \ installutil.exe [Windowsサービスのexeへのパス]と入力します。
  3. プレスリターン

1

次のコード、サービスのインストールとアンインストール、

コマンドプロンプトを開き、管理者としてプログラムを実行し、以下のコマンドを実行して Enterキーを押します。

構文

インストールするには

C:\windows\microsoft.net\framework\v4.0.30319>InstallUtil.exe + Your copied path + \your service name + .exe

例:私たちのパスInstallUtil.exe C:\ MyFirstService \ bin \ Debug \ MyFirstService.exe

アンインストールするには

 C:\windows\microsoft.net\framework\v4.0.30319>InstallUtil.exe -u + Your copied path + \your service name + .exe

例:InstallUtil.exe -u C:\ MyFirstService \ bin \ Debug \ MyFirstService.exeのパス

詳細については、次のリンクを参照してください:サンプルプログラム


1

Windowsサービスを展開するときの手順を省略し、時間を無駄にしない

1-管理者権限でコマンドプロンプトを実行する

2- IDEでコンパイルするときのリリースモードについて保証する

3-デザインビューでプロジェクトインストーラーにタイプを指定する

4- ケースに応じて認証タイプを選択

5-ソフトウェアの依存関係を確認します。証明書を使用している場合は、正しくインストールします

6-コンソールに移動して次のように記述します。

C:\Windows\Microsoft.NET\Framework\yourRecentVersion\installutil.exe c:\yourservice.exe

アンインストールに-i c:\使用できるexeパスの前に隠し-i引数があります-u

7- .exeパスを調べて、ログファイルのようです。イベントビューアを使用して機能観察できます


1

管理者として開発者コマンドプロンプトを開き、次の場所に移動します

cd C:\Windows\Microsoft.NET\Framework\v4.0.30319

今あなたの.exeある場所のパスを使用してください

InstallUtil "D:\backup\WindowsService\WindowsService1\WindowsService1\obj\Debug\TestService.exe"

0

ドットネット2または4のアセンブリバージョンとVisual StudioプロジェクトのBiuld設定が同じバージョンでインストールされる場合。

installutil同じバージョンのサービスをインストールする

ドットネット4をビルドする場合

タイプ c:\windows\microsoft.net\framework\v4.0.30319\installutil.exe

ドットネット2を構築する場合

タイプ c:\windows\microsoft.net\framework\v2.0.11319\installutil.exe


0

1. [スタート]メニューからVisual Studioディレクトリを選択し、[VSの開発者コマンドプロンプト]を選択します。

2.Visual Studioの開発者コマンドプロンプトが表示されます。

3.プロジェクトのコンパイルされた実行可能ファイルがあるディレクトリにアクセスします。

4.プロジェクトの実行可能ファイルをパラメーターとしてコマンドプロンプトからInstallUtil.exeを実行します。



-1

管理者としてコマンドプロンプトを開き、ユーザーが.exe存在するフォルダーに移動します。Exeサービスとしてインストールするには

D:\YourFolderName\YourExeName /i

アンインストールするには、を使用します/u

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.