Windows Dienst in Verbindung mit Netzwerk Share benutzen
Guten Tag,
ich stehe vor folgender Herausforderung:
Wir betreiben unter anderem einen Server mit Betriebssystem Windows Server 2008 x86. Auf diesem Server werden mehrere Applikationen ausgeführt, die bestimmte Aufgaben ausführen sollen. Dazu ist ein Zugriff auf eine Netzwerkressource erforderlich.
Bislang betreiben wir den Server so, dass er beim AutoLogon ein CMD ausführt. Dieses stellt die notwendigen Berechtigungen auf die Netzwerkressourcen her und startet danach die Applikationen.
Diese Herstellung der Berechtigungen ist bei uns erforderlich, da der Rechner in einer Windows Domäne betrieben wird. Er muss für diesen Workflow jedoch auch auf Ressourcen außerhalb der Domäne zugreifen. Diese Anmeldung erfolgt über einen anderen Account als der, der am Windows Server verwendet wird.
Das CMD führt daher mehrere Kommandos a la NET USE \\server\share <passwort> /USER:<username> aus.
Zunächst hatte ich ein Problem, dass ich den NET USE Befehl nicht in einer CMD ausführen durfte. Es war zwar möglich, diesen in einer Shell ohne vorgegebenes Passwort einzugeben, jedoch musste das Passwort danach immer händisch eingetragen werden. Lösen konnte ich das Problem durch eine Änderung in der gpedit.msc
Computerkonfiguration > Windows-Einstellungen > Sicherheitseinstellungen > Lokale Richtlinien > Sicherheitsoptionen > Netzwerksicherheit: LAN Manager-Authentifizierung = LM- und NTLM-Antworten senden
Seitdem kann das Autostart Script den NET USE Befehl ausführen.
Nun möchten wir die Anwendungen nicht mehr als Applikation sondern als Windows Dienst betreiben. Die Software bietet dazu eine Möglichkeit an und installiert sich als Windows Dienst.
Ich verwende für die Ausführung des Windows Dienstes das gleiche Domänen Konto wie für die Windows Anmeldung. Die Dienste können problemlos gestartet werden.
Da mir ein automatischer Start der Dienste allerdings nichts nutzt bevor nicht die UNC Pfade zugänglich gemacht wurden habe ich ein neues Autostart Script erstellt welches nach dem NET USE ein NET START <Dienstname> ausführt.
Und hier kommt nun mein Problem. Der Dienst kann nicht auf die Netzwerkressourcen zugreifen. Halte ich den Dienst an und betreibe die Anwendung wieder als Applikation dann funktioniert der Zugriff.
Nun ist meine Frage ob es für diese Anforderungen ein Rezept bzw. eine Lösung gibt.
Gibt es z.B. eine Gruppenrichtlinie, die man setzen muss damit ein Windows Dienst auf per NET USE autorisierte Netzwerkverbindungen verwenden darf? Oder gibt es andere Wege, eine stets genutzte Netzwerkressource so zu "mounten", dass sie ein Windows Dienst immer nutzen kann, also auch dann wenn er per Startmodus = Automatisch starten würde ohne dass ein Autostart Script durchlaufen kann?
Ich danke für jedes Feedback.
Herzliche Grüße
Michael
ich stehe vor folgender Herausforderung:
Wir betreiben unter anderem einen Server mit Betriebssystem Windows Server 2008 x86. Auf diesem Server werden mehrere Applikationen ausgeführt, die bestimmte Aufgaben ausführen sollen. Dazu ist ein Zugriff auf eine Netzwerkressource erforderlich.
Bislang betreiben wir den Server so, dass er beim AutoLogon ein CMD ausführt. Dieses stellt die notwendigen Berechtigungen auf die Netzwerkressourcen her und startet danach die Applikationen.
Diese Herstellung der Berechtigungen ist bei uns erforderlich, da der Rechner in einer Windows Domäne betrieben wird. Er muss für diesen Workflow jedoch auch auf Ressourcen außerhalb der Domäne zugreifen. Diese Anmeldung erfolgt über einen anderen Account als der, der am Windows Server verwendet wird.
Das CMD führt daher mehrere Kommandos a la NET USE \\server\share <passwort> /USER:<username> aus.
Zunächst hatte ich ein Problem, dass ich den NET USE Befehl nicht in einer CMD ausführen durfte. Es war zwar möglich, diesen in einer Shell ohne vorgegebenes Passwort einzugeben, jedoch musste das Passwort danach immer händisch eingetragen werden. Lösen konnte ich das Problem durch eine Änderung in der gpedit.msc
Computerkonfiguration > Windows-Einstellungen > Sicherheitseinstellungen > Lokale Richtlinien > Sicherheitsoptionen > Netzwerksicherheit: LAN Manager-Authentifizierung = LM- und NTLM-Antworten senden
Seitdem kann das Autostart Script den NET USE Befehl ausführen.
Nun möchten wir die Anwendungen nicht mehr als Applikation sondern als Windows Dienst betreiben. Die Software bietet dazu eine Möglichkeit an und installiert sich als Windows Dienst.
Ich verwende für die Ausführung des Windows Dienstes das gleiche Domänen Konto wie für die Windows Anmeldung. Die Dienste können problemlos gestartet werden.
Da mir ein automatischer Start der Dienste allerdings nichts nutzt bevor nicht die UNC Pfade zugänglich gemacht wurden habe ich ein neues Autostart Script erstellt welches nach dem NET USE ein NET START <Dienstname> ausführt.
Und hier kommt nun mein Problem. Der Dienst kann nicht auf die Netzwerkressourcen zugreifen. Halte ich den Dienst an und betreibe die Anwendung wieder als Applikation dann funktioniert der Zugriff.
Nun ist meine Frage ob es für diese Anforderungen ein Rezept bzw. eine Lösung gibt.
Gibt es z.B. eine Gruppenrichtlinie, die man setzen muss damit ein Windows Dienst auf per NET USE autorisierte Netzwerkverbindungen verwenden darf? Oder gibt es andere Wege, eine stets genutzte Netzwerkressource so zu "mounten", dass sie ein Windows Dienst immer nutzen kann, also auch dann wenn er per Startmodus = Automatisch starten würde ohne dass ein Autostart Script durchlaufen kann?
Ich danke für jedes Feedback.
Herzliche Grüße
Michael
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 179880
Url: https://administrator.de/forum/windows-dienst-in-verbindung-mit-netzwerk-share-benutzen-179880.html
Ausgedruckt am: 20.04.2025 um 12:04 Uhr
6 Kommentare
Neuester Kommentar
Moin,
m.E. bekommst Du das nur in den Griff in dem du
a) einen (lokalen?) User anlegst der entsprechende Rechte auf alle zu verwendeten Netzwerk resourcen hat und den dann als Dienst-Benutzer festlegst.
und
b) Du den Dienst auf alle Netzwerkresourcen per UNC Pfad zugreifen lässt (Laufwerkmappings aus der interaktiven Sitzung bekommt der Dienst nicht mit)
lg,
Slainte
m.E. bekommst Du das nur in den Griff in dem du
a) einen (lokalen?) User anlegst der entsprechende Rechte auf alle zu verwendeten Netzwerk resourcen hat und den dann als Dienst-Benutzer festlegst.
und
b) Du den Dienst auf alle Netzwerkresourcen per UNC Pfad zugreifen lässt (Laufwerkmappings aus der interaktiven Sitzung bekommt der Dienst nicht mit)
lg,
Slainte
Hi,
was denn nun???
Wenn der Benutzer unter dem der Dienst läuft ein Domänen-Benutzer ist, der auch entsprechend Zugriff auf deine UNC-Pfade hat, sollte das ganze doch funktionieren.
Grüße
Da mir ein automatischer Start der Dienste allerdings nichts nutzt bevor nicht die UNC Pfade zugänglich gemacht wurden habe ich ein neues Autostart Script erstellt welches nach dem NET USE ein NET START <Dienstname> ausführt.
Gibt es z.B. eine Gruppenrichtlinie, die man setzen muss damit ein Windows Dienst auf per NET USE autorisierte Netzwerkverbindungen verwenden darf?
Gibt es z.B. eine Gruppenrichtlinie, die man setzen muss damit ein Windows Dienst auf per NET USE autorisierte Netzwerkverbindungen verwenden darf?
Zitat von @messefilme:
Laufwerksmapping ist sowieso nicht in Verwendung. Es geht rein um UNC Zugriff.
Laufwerksmapping ist sowieso nicht in Verwendung. Es geht rein um UNC Zugriff.
was denn nun???
Wenn der Benutzer unter dem der Dienst läuft ein Domänen-Benutzer ist, der auch entsprechend Zugriff auf deine UNC-Pfade hat, sollte das ganze doch funktionieren.
Grüße