ユーザーをサービスとしてログオンできるように昇格させるために使用するカスタム アクションがあります。これは、インストーラー中に実行されます。Windows Server 2012 まで、すべての Windows オペレーティング システムで何年も問題なく動作します。以下のコードをこのバージョンの Windows で実行するとlong
、成功のために 0 が返されるのではなく、別のエラー コードが返されます。
LsaAddAccountRights(
IntPtr PolicyHandle,
IntPtr AccountSid,
LSA_UNICODE_STRING[] UserRights,
long CountOfRights)
問題は、コードが毎回異なるように見え、102938473 などの非常に大きな数になることです。
次のメソッドでエラー コードを実行してエラー コードを取得しましたが、有効なエラー コードではないように見える別の大きな数値が返されます。
LsaNtStatusToWinError(long status)
これらのエラー コードを調べてみましたが、うまくいきませんでした。それらはランダムに生成され、無意味なようです。
返されたエラー コードを無視すると、ユーザーはサービスとして正常にログオンできるように見えます。エラーコードが返されることを除いて、すべてが機能しているように見えます。このエラー コードを無視することもできますが、これが有効なエラーである場合は、今後無視する可能性があります。
追加情報
カスタム アクション内のコードをコンソール アプリケーションでエラーなしで実行できます。それがwixインストーラーの一部である場合にのみ、機能しないようです。