2011-09-19 10 views
1

私たちは、私たちが作成するサービスのいくつかの展開を自動化しようとしています。ユーザ名とパスワードをアプリケーションインストーラにハードコードすることは望ましくありません。ユーザー名とログインをハードコーディングしないという問題は、リリースの自動化に問題があることです。サービスは、環境のインスタンスに応じて、特定のユーザー名の下で実行するようにインストールされてサービス展開を自動化する際のユーザーサービス実行を設定するためのベストプラクティスは何ですか?

  1. :あなたがそのようなことをMSIにWindowsサービスをパッケージに行くかどう

    。プロダクションではDOMAIN_NAME \ ProductionServiceUserで実行されますが、同じサービスをステージングにデプロイすると、サービスはDOMAIN_NAME \ StagingServiceUserで実行されます。

  2. 「プログラムの追加と削除」でサービスをアンインストールすると、サービスは削除されます。

答えて

0

は自動的にインストールし、Windowsインストーラのサポートを使用することができるサービスをアンインストールするには、次の

Visual Studioのセットアッププロジェクトは、サービス・テーブルをサポートしていません。したがって、あなたがそれを使用している場合は、サービスを管理するカスタムアクションをインストールしてアンインストールする必要があります。その他のセットアップオーサリングツールは、サービスを直接サポートします。

サービスアカウントを動的に設定するには、SERVICE_ACCOUNTなどのカスタムinstaller propertyを使用できます。インストール時に、このプロパティを必要なアカウントに設定できます。

サービスは、管理者アカウントであってもlog on as a service policyが設定されている場合に限り、カスタムユーザーアカウントで実行できます。これは複数の方法で実行できます。このポリシーは、インストール時にntrights.exeをカスタムアクションとして使用して設定できます。

+0

もっと明確にすべきです。これはアンマネージC++サービスです。私は、サービスのインストールを実行するだけのC#ライブラリプロジェクトがあると思いますが、何らかの理由でMSが、実行しているユーザーとして実行されていないカスタムアクションを実行することをお勧めしますインストール。 – bpeikes

+0

私はこのことが私が提案したものとどう違うのか分かりません。 Visual Studioを使用する場合、唯一の解決策はカスタムアクションです。カスタムアクションを使用したくない場合は、Visual Studioを使用することはできません(サービスをサポートする別のセットアップオーサリングツールが必要です)。 –

+0

カスタムアクションはうまくいき、私たちが使用しているものですが、特定のユーザーアカウントでサービスを実行するには、msiのデプロイメントをどのように自動化するのですか? – bpeikes

関連する問題