2012-03-28 5 views
3

Ich brauche Zugriff auf eine freigegebene Ressource mit einem Windows-Dienst mit lokalen Systembenutzer. Ich habe einen Versuch mit der Klasse UserImpersonation, aber es funktioniert nur im Debuggen. Wenn ich meinen Dienst installiere, kann ich nicht auf einen freigegebenen Ordner zugreifen.Wie Zugriff auf eine freigegebene Ressource mit einem Windows-Dienst mit lokalen Systembenutzer?

Ich habe zu diesem Thema gelesen, und ich würde gerne wissen, ob die einzige Möglichkeit ist, einen Benutzer mit Netzwerkanmeldeinformationen zu erstellen und den Dienst mit diesem Benutzer auszuführen.

+0

Sie können viele Ressourcen finden, die sich mit diesem http://stackoverflow.com/questions/6016388/accessing-shared-folder-over-a-network-in-windows-service http: // serverfault befassen .com/questions/135867/howt-to-grant-network-access-to-localsystem-account – JotaBe

Antwort

1

Der letzte Absatz Ihrer Frage enthält die Antwort. Der Dienst wird im Kontext eines bestimmten Benutzers ausgeführt. Sie müssen sicherstellen, dass dieser Benutzer auf die betreffende Ressource zugreifen kann. Es ist nicht ungewöhnlich, aus diesem Grund dedizierte Benutzer nur für einen bestimmten Dienst zu erstellen.

+0

Warum nicht den Netzwerkdienst nutzen ??? – JotaBe

+0

@JotaBe Da es keinen Zugriff auf die freigegebenen Ressourcen hat, es sei denn, es ist explizit gewährt. –

+0

Natürlich wird es keine Berechtigungen haben, aber nur, bis Sie sie gewähren. Wenn Sie jedoch einem Computerkonto in einer Netzwerkressource Berechtigungen erteilen, kann ein Dienst, der unter dem Netzwerkdienstkonto ausgeführt wird, auf die Ressource zugreifen. Ich denke, Network Service ist sicherer, weil sich kein Benutzer mit diesem Konto anmelden kann und weniger Wartung benötigt, da Sie keine Kennwörter verwenden müssen. – JotaBe

2

Sie können den Dienst unter einem Konto (nicht unbedingt NetworkService wie im Screenshot) ausführen lassen, für den Sie Netzwerkzugriff bereitgestellt haben. Um dies zu tun, gehen Sie zu Ihrem Dienste-Manager, und klicken Sie rechts auf Eigenschaften:

enter image description here

Es gibt zwei Arten von Berechtigungen müssen Sie berücksichtigen, wenn Netzwerkfreigabe zugreifen, die Sie müssen sicherstellen, dass das Konto, das Sie Verwendung hat: Share and NTFS permissions

+0

@DavidHeffernan, der Netzwerkdienst ist nur etwas, das konfiguriert wurde, als ich einen Beispiel-Screenshot nahm. Ich beantwortete einfach den Teil "Ausführen als Benutzer" der Frage. Ich werde meine Antwort klären. – Tung

Verwandte Themen