2010-12-15 5 views
15

Windowsサービスをインストールする場合、特定のユーザーアカウントとLocalSystemなどのコンピュータアカウントの間でインストールを許可する方法はありますか?私はビルド時にサービスインストーラのプロパティを使ってこれを行う方法を見ていますが、インストール時には見えません。Windowsサービスインストール時にユーザーアカウントまたはシステムアカウントを選択

+2

何をインストールしていますか? MSIの?コマンドライン? –

+0

私はおそらくカスタムインストーラを使用し、installutilを起動します。これが行われたケースを見たことがありますが、どのように動作するのか分かりません。 – AdamC

答えて

27

@Doobi、@Eric、(Win7Home 64ビット、 VS2010Express、ドメインではありません)

は、パスワードプロンプトなしでLocalServiceとしてサービスをインストールします。

ローカルユーザーアカウントとしてサービスをインストール(および資格情報を提供することを可能にするパスワードプロンプトを提供)するために私が使用していた:

this.serviceProcessInstaller.Account =System.ServiceProcess.ServiceAccount.User; 
this.serviceProcessInstaller.Password = null; 
this.serviceProcessInstaller.Username = null; 

私が取得するために取らなければならなかった重要な一歩サービスがインストールされている場合は、資格情報ダイアログボックスにコンピュータ名を入力します(daveではなくMYPC\dave)。私はドメインではないので、私はこれをしなければならないと驚いた。私は、PC名をユーザ名の前に付け加えなければならないことについて、これまで見たことのない投稿としてこのコメントを追加しました。

+2

コンピュータ名\ユーザー名ヒントが私の問題をユーザー名の前に – Martin

+0

ドメイン名で解決してくれてありがとうございました。ありがとう! –

6

はい、プロセスインストーラにあります。私は新しいフレームワークでは、設計面でプロセスインストーラを選択すると目に見える性質だと思います。私はそれをやった最後の時間(.NET 2.0)あなたは* .designer.csファイルに次のようなものを追加する必要があります。私の経験で

processInstaller.Account = ServiceAccount.LocalService; 
      processInstaller.Username = null; 
      processInstaller.Password = null; 
+0

これは、「ユーザーが特定のユーザーアカウントとLocalSystemなどのコンピュータアカウントの間で選択できるようにする方法」 –

+0

「ServiceAccount.User」に設定し、資格情報を指定しないと、インストール時の資格情報 – Doobi

+1

+1これはかなりクールです。 –

2

以前の回答に加えて、「ユーザー名」フィールドのパスワードプロンプトを入力している間は、ユーザー名にマシン名を追加することを忘れないでください。正しいユーザー名とパスワードを入力しても、サービスは資格情報を受け入れません。資格情報を入力するためのポップアッププロンプトが表示されます。私はこのことを理解するのに一日かかりました。 Badgerspotに感謝します!

関連する問題