次の要件で Windows サービスをセットアップしようとしています。
- ドメイン アカウントとして実行 - このアカウントは、プロセスがアクセスする他の共有にアクセスできます
- マシンの完全な管理者権限を持っており、UAC を超えている - 具体的にはフォルダーの所有権を取得できる必要がある
問題は、プロセスがいくつかの時点でフォルダーの所有権を取得する必要があることです。これは、 を呼び出すことによって行われtakeown /A /F <file>
ます。Run as Administrator
これはコマンド ラインで機能しますが、明示的な場合にのみ機能します。マシンのローカル管理者であっても完全な管理者権限は付与されず、アカウントは引き続き UAC プロンプトを通過する必要があるため、サービスとして実行する場合はERROR: The current logged on user does not have administrative privileges.
. サービス アカウントの UAC を回避する標準的な方法は、Local System
アカウントを使用することのようですが、他のサーバーにアクセスできないため、それはオプションではありません。
サービスをセットアップして、「マシン上の完全な管理者のコンテキストで、このアカウントとして実行する」と言う方法はありますか? 別の潜在的な解決策として、マシンの UAC からドメイン アカウントを除外する方法はありますか? サービスとして実行され、フォルダーの所有権を設定でき、ドメイン アカウントを使用できる限り、他のソリューションは機能します。マシンで UAC を完全に無効にするなど、大きなセキュリティ ホールを開かずにこれを行うのが理想的です。