messefilme
Goto Top

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

Content-Key: 179880

Url: https://administrator.de/contentid/179880

Printed on: April 18, 2024 at 21:04 o'clock

Member: SlainteMhath
SlainteMhath Feb 01, 2012 at 12:42:24 (UTC)
Goto Top
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
Member: messefilme
messefilme Feb 01, 2012 at 13:33:53 (UTC)
Goto Top
Hallo,

vielen Dank für die schnelle Antwort.

Leider funktioniert das mit dem lokalen Benutzer so nicht da der Dienst zwingend ein Domain User sein muss weil er noch andere Ressourcen benötigt, die von der Domain gestellt werden. Auch können wir leider aus Gründen der Betriebssicherheit keinen User in der Domain einrichten, der so heißt wie der, der für die externe Ressource benötigt wird. Das würde unsere IT Abteilung nicht genehmigen.

Laufwerksmapping ist sowieso nicht in Verwendung. Es geht rein um UNC Zugriff.

Ist der Fall so speziell dass es keine Windows Bordmittel gibt um ihn zu lösen?

Gruß

Michael
Member: Connor1980
Connor1980 Feb 01, 2012 at 15:51:08 (UTC)
Goto Top
Hi,

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?

Zitat von @messefilme:
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
Member: messefilme
messefilme Feb 01, 2012 at 16:24:02 (UTC)
Goto Top
Hallo,

der Domain User für den Dienst ist ein anderer als der, den ich brauche um auf den UNC Pfad zugreifen zu können. Sonst hätte ich kein solches Problem.

Gruß

Michael
Member: Connor1980
Connor1980 Feb 01, 2012 at 18:22:13 (UTC)
Goto Top
Hi,

ich meinte , ob du denn nun mappst oder nicht, weil du 2 gegensätzliche aussagen machst.

Kannst du dem Verzeichnis auf das du zugreifen willst keine Gruppe mit entsprechenden Rechten hinzufügen, in der dieser für den Dienst verwendete Domänen-Benutzer enthalten ist?

Grüße
Member: messefilme
messefilme Feb 01, 2012 at 19:57:40 (UTC)
Goto Top
Hallo,

leider kann ich hier nicht mit Gruppen arbeiten. Das Verzeichnis wird von einer anderen Abteilung zur Verfügung gestellt und von dort gibt es die Vorgabe, einen bestimmten User zu verwenden.

Ich komme nicht drum herum mich beim Laufwerk zu autorisieren. Aber das funktioniert wie gesagt leider nur solange ich die Applikationen als Anwendung ausführe. Meine Dienste unter dem gleichen Account wie der angemeldete User melden aber wie gesagt Probleme beim Versuch, auf ein solches Laufwerk zuzugreifen.

Wo war in meiner Frage denn der Widerspruch?

Gruß

Michael