Windowsコマンドプロンプト(Visual Studioコマンドプロンプトではありません)を使用してWindowsサービスをインストールしたいのですが。
どうやってこれをするの?
.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"
SC Createコマンドに問題はありません。正しい引数を知る必要があります。
SC CREATE "MySVC" binpath= “D:\Me\Services\MySVC\MySVC.exe"
ディレクトリの名前にc:\program files\abc 123
のようなスペースがある場合は、パスを二重引用符で囲む必要があります。
installutil.exe "c:\program files\abc 123\myservice.exe"
次のように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"
以下を実行してください。
c:\windows\Microsoft.net\framework\v4.0.30319\installutil.exe [your windows service path to exe]
と入力管理者権限で開くことが重要です。そうしないと、発生した意味のないエラーを見つける可能性があります。入手した場合は、まず管理者権限で開いていることを確認してください。
管理者権限で開くには、[コマンドプロンプト]を右クリックして[管理者として実行]を選択します。
サービスのインストール: -
"C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe"
"C:\Services\myservice.exe"
UnInstall Sevice: -
"C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe" -u "C:\Services\myservice.Service.exe"
このスレッドにもう1点追加しなければなりません。 64ビット版のアセンブリをインストール/アンインストールするには、64ビット版のツールを使用する必要があります。サービスをインストールするには、コマンドは次のようになります。
"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"
Powershellを使用していて.NETサービスをインストールしたい場合は Install-Service moduleを使用できます。 InstalUtilツールのラッパーです。
3つのコマンドを公開
このモジュールのコードは見ることができます ここ
以下のコンテキストで、Windowsサービスのexe
file インストール用の横に*.bat
ファイルを作成します。
CLS
ECHO Installing My Windows Service
START %windir%\Microsoft.NET\Framework\v4.0.30319\installutil.exe "%~d0%~p0\YourWindowsServiceExeName.exe"
次のコンテキストで、Windowsサービスのexe
file アンインストール用 _の横に*.bat
ファイルを作成します。
CLS
ECHO Uninstalling My Windows Service
START %windir%\Microsoft.NET\Framework\v4.0.30319\installutil.exe -u "%~d0%~p0\YourWindowsServiceExeName.exe"
あなたのwindowsサービスをインストールまたはアンインストールするためにbat
file as Adminを実行してください。
cd C:\Windows\Microsoft.NET\Framework\v4.0.30319\
フォルダに行くinstallutil C:\ProjectFolder\bin\Debug\MyProject.exe
注: アンインストールする場合:installutil /u C:\ProjectFolder\bin\Debug\MyProject.exe
Windowsサービスを展開するときに手順を許可し、時間を無駄にしないでください
1-管理者権限でコマンドプロンプトを実行する
2- IDEでコンパイルするときにリリースモードを保証する
3-デザインビューでプロジェクトインストーラーにタイプを指定する
4- case に従って認証タイプを選択します
5-ソフトウェアの依存関係について保証する:証明書を使用している場合は、正しくインストールする
6-コンソールにこれを書いてください:
C:\Windows\Microsoft.NET\Framework\yourRecentVersion\installutil.exe c:\yourservice.exe
exeパスの前に隠し-i引数があります-i c:\
アンインストールに-u
を使用できます
7-ログファイルのように.exeパスを探します。イベントビューアを使用して、 機能を観察
次のコードは、サービスをインストールおよびアンインストールします。
コマンドプロンプトで管理者としてプログラムを実行しますを開き、以下のコマンドを実行してEnterを押します。
構文
インストールするには
C:\windows\Microsoft.net\framework\v4.0.30319>InstallUtil.exe + Your copied path + \your service name + .exe
例:Our Path 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
より多くの助けのためにあなたは以下のリンクを見ることができる: サンプルプログラム
アセンブリバージョンとVisual Studioプロジェクトのドットネット2または4のBiuld設定が同じバージョンでインストールされている場合。
同じバージョンのinstallutil
でサービスをインストールする
ドットネット4に組み込まれている場合
c:\windows\Microsoft.net\framework\v4.0.30319\installutil.exe
と入力
ドットネット2でビルドされた場合
c:\windows\Microsoft.net\framework\v2.0.11319\installutil.exe
と入力
Visual Studioを開き、Windows Service
タブでWindows 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
メソッドを削除します。プロジェクトを保存してビルドするよりも。
注: gotoプロジェクトフォルダのbin\Ddebug
フォルダに移動します。あなたのservice_name.exe
ファイルのプロパティを開くよりも。後藤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ログ>アプリケーションを選択します。そこでサービスの開始と停止でサービスのログを確認できます。