2011-05-05 69 views
0

那麼如何讓我的服務具有普通的用戶權限而無需手動提供登錄信息呢?從Windows服務寫入文件沒有用戶權限?

+0

你會考慮擴大您的問題告訴我們更多關於這是什麼服務呢,爲什麼它是一種服務,而不是桌面/系統托盤的應用程序? – 2011-05-11 08:51:50

回答

1

您的服務將在服務控制面板中爲其指定的用戶的上下文中運行,所以它是由你它使用的用戶。 :) NETWORKSERVICE等是默認設置,您可以手動更改它,也可以在安裝時指定用戶名/密碼作爲參數,具體取決於您使用的框架/技術。

+0

我使用.NET爲我服務,我不想手動必須編寫用戶憑據...而且我不打算使用一個安裝程序,是爲了只是我家裏的電腦上運行的程序.. – Vercas 2011-05-05 12:56:13

+0

聽起來像你想要你的蛋糕和吃它。應用程序可以獲得提升的憑據,但是Windows服務的重點在於它是非交互式的。如果它只是供您個人使用,我建議保持簡單並在服務控制面板中設置您想要的用戶。另外,當我說「安裝程序」時,我的意思是服務中的「ServiceInstaller」類(除非您使用TopShelf,那就是)。 – 2011-05-05 14:45:04

+0

嗯,我計劃把它發給更多的程序員,我不想用這個打擾他們......但我會嘗試一些更多的技巧。 – Vercas 2011-05-06 14:00:58

0

您可以設置哪些用戶的服務將與任何安裝,或在服務控制檯時運行。

另一種方法是從某種設置文件使應用程序登錄與另一個用戶的啓動時,通過impersonation

+0

但無論如何,這是手動設置。 – Vercas 2011-05-05 12:56:37

+0

您可以在安裝時設置intead。 – EKS 2011-05-05 12:57:25

+0

正如我在另一條評論中提到的,該服務未安裝,它已註冊並通過C#程序手動啓動。我只是希望它能夠寫入文件,而無需手動配置... – Vercas 2011-05-05 13:08:58