私の質問は、Windowsイベントログへの書き込み権限に関連しています。私はこれに関するいくつかの投稿を見て、私の問題を解決するいくつかの方法を見つけましたが、これらのどれも私の現在のシナリオには受け入れられません。
.NET 4.0ではC#を使用しています。私はEventLogクラスを使用します: EventLogクラス
つまり、イベントログに書き込む必要のある権利に到達するために、認証されたユーザーとパスワードで偽装または認証する方法があるかどうかを確認する必要があります。サーバーは常にWindowsServerファミリに含まれますが、バージョンは異なる場合があります。
私のアプリケーションは、次のいずれかのアカウントで実行されているWindowsサービスです。
- ネットワークサービス
- ローカルサービス
- ローカルシステム
- 権限が制限されているユーザー(ユーザーまたはドメインユーザーグループ)
これが私が持っている他のいくつかの基準です:
- サーバーのローカル管理者でさえも、サービスユーザーを管理者として配置できません
- レジストリを編集または変更できません
- サーバー上のUACまたはグループポリシーを変更できません
- 管理者権限を持つユーザーがいますが、サービスの実行に使用できません
- イベントログは、リモートマシンではなく、常にローカルイベントログになります
- ログはおそらく常に「アプリケーション」ログになります
- ソースは異なる場合があり、それが問題の核心であるようです
私の質問は:これは可能ですか?
必要なことを達成するために、コード内でユーザーになりすますことはできますか?Webサービスに接続するとき、SMTPサーバーにログオンするとき、そしてもちろんデータベースなどにログインするときに、これを行います。
私はこのクラスに出くわしました: EventLogPermissionクラス
しかし、私はクラスの使い方について良い概念を得ることができないようです。
私は自分の問題をうまく表現できたと思います。私の基準のため、これを別の投稿の複製とは見なしません。