2008-08-28 15 views
37

私が書いた.NETサービスをインストールしようとしています。 MSDNの推奨通り、私はInstallUtilを使用しています。しかし、私はデフォルトのサービスユーザをコマンドラインで、あるいはサービス自体でも設定することができませんでした。 InstallUtilを実行すると、ユーザーに資格情報を要求するダイアログが表示されます。サービスのインストールをより大きなインストールに統合しようとしています。サービスのインストールが必要なくなりました。InstallUtilを使用した.NETサービスのインストール

答えて

42

私はそれを見つけたかもしれないと思います。サービス自体では、自動的に作成されたServiceProcessInstallerコンポーネントには、 "LocalService"、 "LocalSystem"、 "NetworkService"または "User"に設定できるプロパティ "Account"があります。プロンプトを表示していなければならない "User"にデフォルト設定されていました。

+1

LocalSystem、LocalService、およびNetworkServiceの違いを説明するこの偉大な短い記事を共有したいと思います。http://www.windowsitpro.com/article/services/understanding-the-local-service-and-network -service-accounts –

0

サービスを実行するアカウント、またはサービスをインストールする権限がありますか? 2番目の場合は、管理者としてインストールすると、それが起こらないようにする必要があります。まず、インストーラーにServiceProcessInstallerを追加する必要があります。

サービスの設計面には、Project Installerを作成するためのリンクがあると思います。そのデザイナで、System.ServiceProcess.ServiceProcessInstaller型のプロセスインストーラを追加できます。このオブジェクトのプロパティを使用すると、サービスに使用するアカウントを設定できます。

3

ビジュアルスタジオをインストールする必要がないSC.exe utilも覚えておいてください。このexeをサービスを作成するサーバーに単にコピーすることも、リモートで実行することもできますobjパラメータを使用して、ユーザーを指定します。

明らかにこのツール用のGUIがありますが、私はそれを使用していません。

4

あなたが気づいたように、Karim、 "Account"プロパティが解決策です。このプロパティで設定されたセキュリティコンテキスト間の違いに興味のある方のために:でも

http://www.codeproject.com/KB/dotnet/WinSvcSelfInstaller.aspx

http://msdn.microsoft.com/en-us/library/system.serviceprocess.serviceaccount.aspx

ます。installutilまたはSCを用いて上記の、私はSELFインストーラを作成するためのアイデアが好き私は.Net 1.1のドキュメントでこれを見つけましたが、

ManagedInstallerClassタイプ は、.NET Framework インフラストラクチャをサポートしており、コードから直接 を使用することを目的としていません。

関連する問題