インストーラーによってインストールするサービスがあります。UI ユーザーは、このサービスを LocalSystem としてインストールするか、指定されたユーザー資格情報を使用してインストールするかを選択できます。私の Wix コードは次のようになります。
<Component Id="C.MyService.exe" Guid="{Guid}">
<File Id="MyService.exe" Name="MyService.exe" KeyPath="yes" Vital="yes"
Source="MyServicePath" />
<ServiceInstall Id="MyServiceInstall" DisplayName="[SERVICE_NAME]" Account="[SERVICE_ACCOUNT]" Password="[SERVICE_PASSWORD]" Name="[SERVICE_NAME]" ErrorControl="normal" Start="auto" Type="ownProcess" Vital="yes" Interactive="no">
</ServiceInstall>
<ServiceControl Id="MyServiceStart" Name="[SERVICE_NAME]" Start="install" Wait="no" />
<ServiceControl Id="MyServiceStop" Name="[SERVICE_NAME]" Stop="both" Wait="yes" />
<ServiceControl Id="MyServiceRemove" Name="[SERVICE_NAME]" Remove="uninstall" Wait="yes" />
</Component>
<Component Id="SetStartServicePermission" Guid="{Guid}">
<CreateFolder/>
<Condition>NOT USE_LOCALSYSTEM_ACCOUNT</Condition>
<util:User Id="ServiceUser" Name="[SERVICE_ACCOUNT]" Password="[SERVICE_PASSWORD]" CreateUser="no" LogonAsService="yes" UpdateIfExists="yes" />
</Component>
LocalSystem を選択すると、サービスがインストールされ、正常に動作します。ただし、カスタム ユーザー資格情報サービスをインストールすると、「サービス ServiceName を開始できませんでした。システム サービスを開始するのに十分な権限があることを確認してください」というエラーで開始できません。カスタム ユーザーは既に存在し、管理者グループに属しています。LocalSystem を使用してインストールし、サービスのログオン資格情報を手動で変更すると、正常に起動します。