私は torakリンクをたどり、サービスの権利に関するこの重要な違いを理解しています。
- サービスには、「Run as」ユーザーに関する権限があります
- サービスには、サービスを制御する (つまり、サービスを開始/停止する) ための異なるアクセス許可があります。
そのため、サービスを開始するには、サービス コントロールのアクセス許可を変更する必要があります。
さて、Service1 という Windows サービスを実行し、WIX でインストーラーを作成しました。セットアップ中にServiceInstallを呼び出します
<ServiceInstall Id="ServiceInstaller" Type="ownProcess" Vital="yes"
Name="Service1" DisplayName="Service1"
Description="Service1 description"Start="demand"
Account="NT AUTHORITY\LocalService"
ErrorControl="ignore" Interactive="no" >
</ServiceInstall>
次に、サービスを開始しようとする TestProgram というクライアント プログラムがあります。
var service = new ServiceController("Service1");
service.Start();
そして明らかに、(通常のユーザー アカウントで実行される) TestProgram の昇格なしでサービスを開始することはありません。
したがって、解決策は、 PermissionExタグを使用して、ユーザー グループのメンバー (たとえば) がサービスを開始/停止できるように WIX に指示することです。
<util:PermissionEx User="Users" ServiceStart="yes" ServiceStop="yes">
</util:PermissionEx>
お役に立てれば。皆さん、ありがとうございました。