0

これがそのような質問の適切な場所かどうかはわかりませんが (おそらく SuperUser に配置する必要がありますか?)、試してみます。

1 つの C# コンソール アプリケーションと 1 つの Windows サービスがあります。どちらも同じことを行いますが、コンソール アプリは以前に作成されており、下位互換性のために保持されています。これらはそれぞれ、C:\ProgramData\MyApp 内のファイルに対してメソッドが動作する WCF サービスを実行しています。コンソール アプリは制限付きユーザー (非管理者) として実行され、Windows サービスは NT AUTHORITY\NETWORK SERVICE として実行されます。アプリがいくつかのディレクトリ/ファイルを作成すると、サービスはそれを削除できず、その逆も同様です。

確保したいと思います。私の質問は: C:\ProgramData\MyApp に対する完全なアクセス許可を NETWORK SERVICE と現在のユーザーに付与する必要がありますか? または、サービス/アプリを実行するための専用ユーザーを作成する必要がありますか?

4

1 に答える 1

1

アプリケーションが新しく作成されたファイルに明示的なセキュリティ アクセス許可を設定しないと仮定すると、ネットワーク サービス アカウントにフォルダーの削除アクセス許可を付与すると、差し迫った問題が解決されます。

このコマンドは作業を行います:

icacls c:\ProgramData\MyApp /t /grant "NETWORK SERVICE":(OI)(CI)(IO)D

他のユーザー サービス アカウントについても同じことを繰り返します。

于 2012-08-03T23:21:33.440 に答える