2011-11-09 52 views
0

我有以下情況:我建立一個需要服務的應用。該服務有時會爲用戶創建文件和文件夾(它實際上會接收文件,然後將文件寫入磁盤)。我應該如何安裝/運行我的服務?

我的問題是下面的:

  1. 如果一個「標準用戶」(即非管理員)使用應用程序(包括服務),該服務創建也不能將讀取文件這個用戶,因爲他沒有特權,因爲它似乎(「訪問被拒絕」)。但管理員用戶可以看到相同的文件。

  2. 如果服務是爲管理員用戶創建一個桌面上的文件夾(我沒有嘗試過像C :)的目的地,然後管理員用戶甚至無法看到該文件夾​​,因爲權限(不顯示文件夾,但仍然進入了名單,如果我在cmd中使用「目錄」命令;而如果我停止服務,文件夾會自動被刪除 - 我不知道爲什麼)。但是,我試圖讓服務在桌面上的一個文件夾中創建一個文件夾(之前已經由我自己創建的文件夾),並且它正常工作。

所以我明白服務的問題與它的安裝/運行方式有關。目前,它是在「本地系統」(我曾嘗試使用帶有「本地服務」的SC.EXE命令cmd的來安裝它,但它不承認「本地服務」)。

那麼,有沒有一種方法,我可以讓我的服務中創建的文件和文件夾的用戶,因爲他們想讀/寫呢?

如果是的話,那麼請告訴我該怎麼做。

P.S.到目前爲止,我已經使用.bat文件調用sc.exe來安裝和啓動服務。可以嗎?

+0

我想你只需要直接在文件/文件夾上設置安全描述符。 – Luke

回答

0

是的,這似乎是答案:安全描述符必須顯式設置。 其中一個原因似乎是,這些文件實際上是在C:\ Windows \ Temp目錄中創建的,之後被移至預期的目標路徑。但是,正在創建的文件夾(直接在選定路徑上,例如C:\ Users \ Admin \ Desktop \ MyFolder)不可見。所以唯一的解決方案似乎是明確設置安全描述符。

相關問題