ServiceProcessInstaller
.NET Windows サービスをインストールする があります。
次のいずれかの場合、インストール プロセスは完全に機能します。
- サービスを SYSTEM (
serviceProcessInstaller1.Account = ServiceAccount.LocalSystem
) として実行するように設定します。 - およびプロパティ
serviceProcessInstaller1.Account = ServiceAccount.User
を指定するか、インストール プロセスでプロンプトが表示されるようにして、サービスを通常のユーザー ( ) として実行するように設定します。Username
Password
ただし、サービスを仮想ユーザーa la として実行したいと思いますNT Service\ServiceName
。一部の SQL Server サービスを見ると、デフォルトで独自の仮想ユーザー アカウントとしてログオンすることがわかります。http://technet.microsoft.com/en-us/library/dd548356.aspxには、限定的ではありますが、さらに多くの情報があります。
を設定しようとしserviceProcessInstaller1.Username = @"NT Service\ServiceName"
ましたが、パスワードとして何を指定しても、インストーラーは次のエラーをスローします (対話型ダイアログを表示するためString.Empty
に、ユーザー名、自分のパスワード、null
さらにはランダムなジャンクを表示しようとしました):
アカウント名とセキュリティ ID の間のマッピングは行われませんでした
ただし、サービスを通常どおりにインストールすると (例: SYSTEM として実行)、スナップインからサービスのプロパティに移動services.msc
し、ログオン ページでユーザーをNT Service\ServiceName
に変更すると、問題なく動作します。
私もChangeServiceConfig2
関数を調べましたが、何も変更できないようです。
NT Service\ServiceName
内のコードからログオン ユーザーを仮想ユーザーに設定するにはどうすればよいServiceProcessInstaller
ですか?