Windowsコマンドプロンプト(Visual Studioコマンドプロンプトではない)を使用してWindowsサービスをインストールしたい。
どうすればよいですか?
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"
sc
コマンドがありますが、コマンドは異なり、サービスの登録には使用できません。
ディレクトリの名前にのようなスペースがある場合は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]
管理者権限で開くことが重要です。そうしないと、意味のないエラーが発生する可能性があります。いずれかを取得した場合は、まず管理者権限で開いていることを確認してください!
管理者権限で開くには、[コマンドプロンプト]を右クリックして[ 管理者として実行]を選択します。
ソース:http: //coderamblings.wordpress.com/2012/07/24/how-to-install-a-windows-service-using-the-command-prompt/
サービスのインストール:-
"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"
このスレッドにもう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"
作成*.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サービスをインストールまたはアンインストールします。
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
ます。プロジェクトを保存してビルドするよりも。
注: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ログ」>「アプリケーション」を選択します。そこで、サービスを開始および停止することにより、サービスのログを確認できます。
Powershellを使用していて、.NETサービスをインストールする場合は、Install-Serviceモジュールを使用できます。これは、InstalUtilツールのラッパーです。
3つのコマンドを公開します
次のコード、サービスのインストールとアンインストール、
コマンドプロンプトを開き、管理者としてプログラムを実行し、以下のコマンドを実行して 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のパス
詳細については、次のリンクを参照してください:サンプルプログラム
Windowsサービスを展開するときの手順を省略し、時間を無駄にしない
1-管理者権限でコマンドプロンプトを実行する
2- IDEでコンパイルするときのリリースモードについて保証する
3-デザインビューでプロジェクトインストーラーにタイプを指定する
4- ケースに応じて認証タイプを選択
5-ソフトウェアの依存関係を確認します。証明書を使用している場合は、正しくインストールします
6-コンソールに移動して次のように記述します。
C:\Windows\Microsoft.NET\Framework\yourRecentVersion\installutil.exe c:\yourservice.exe
アンインストールに-i c:\
使用できるexeパスの前に隠し-i引数があります-u
管理者として開発者コマンドプロンプトを開き、次の場所に移動します
cd C:\Windows\Microsoft.NET\Framework\v4.0.30319
今あなたの.exe
ある場所のパスを使用してください
InstallUtil "D:\backup\WindowsService\WindowsService1\WindowsService1\obj\Debug\TestService.exe"
ドットネット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
コマンドプロンプトを開いて、
C:\windows\microsoft.net\framework\v4.0.30319\InstallUtil.exe -i ".EXE file of window service"
管理者としてコマンドプロンプトを開き、ユーザーが.exe
存在するフォルダーに移動します。Exe
サービスとしてインストールするには
D:\YourFolderName\YourExeName /i
アンインストールするには、を使用します/u
。