2011-11-09 5 views
0

私は次のような状況に陥っています。サービスが必要なアプリケーションを構築しています。サービスは、ユーザーのためにファイルとフォルダを作成することがあります(ファイルを実際に受信し、ディスクに書き込みます)。 「標準ユーザー」(すなわち、非管理者)はアプリケーションを(サービスを含む)を使用している場合、サービスが読んでもすることができません作成するファイルサービスのインストール/実行方法は?

  1. 私の問題は、次のようなものです(アクセスが拒否されている)ように、彼は特権を持っていないので、このユーザーによって。しかし、後で同じファイルを管理ユーザーが見ることができます。

  2. サービスが管理者ユーザー用のフォルダをデスクトップ上に作成している場合(私はCのような宛先を試していません)、権限があるため管理者ユーザーはフォルダも表示できませんフォルダは表示されませんが、cmdで "dir"コマンドを使用するとリストに表示され、サービスを停止すると自動的にフォルダが削除されます - 理由はわかりません。しかし、私はサービスがデスクトップ上のフォルダ内にフォルダを作成しようとしました(既に自分で作成されていたフォルダ)、正しく動作しました。

サービスの問題は、インストール/実行方法と関係があることを理解しています。現在のところ、 "LocalSystem"(私は "LocalService"でsc.exeコマンドでcmdを使用してインストールしようとしましたが、 "LocalService"は認識しません)。

私のサービスでは、ユーザが希望どおりに読み書きするためのファイルとフォルダを作成する方法はありますか?

「はい」の場合は、どうすればいいのか教えてください。

P.S.これまでは、.batファイルを使用して、sc.exeをインストールしてサービスを開始しました。大丈夫ですか?

+0

ファイル/フォルダに直接セキュリティ記述子を設定する必要があると思います。 – Luke

答えて

0

はい、答えはそうです:セキュリティ記述子を明示的に設定する必要があります。 原因の1つは、ファイルが実際にはC:\ Windows \ Tempディレクトリに作成されており、その後に予想される宛先パスに移動したように見える原因です。ただし、作成されているフォルダ(選択したパス(C:\ Users \ Admin \ Desktop \ MyFolderなど)には直接アクセスできません)は表示されません。したがって、唯一の解決策は、セキュリティ記述子を明示的に設定することです。

関連する問題