lutzr
Goto Top

Terminalserver schreibt nicht auf Netzverzeichnis, wenn kein Admin-User angemeldet.

Schreibrechte für System-Dienste

Wir benutzen hier eine DLL, die sich in das Spooling-System eines Windows-Rechners einklinkt und bestimmte Drucker überwacht. Kommt nun ein Druck für einen der überwachten Drucker, dann schreibt die DLL eine Text-Informationsdatei (im Folgenden TID) zu diesem Druckjob. Den Speicherort/Verzeichnis, an dem die TID abgelegt wird, kann man einstellen, z.B. auch ein freigegebener Netzwerkpfad. Die DLL hat einen Sicherheitsmechanismus, der dafür sorgt, dass die TID lokal gespeichert wird, falls das eigentliche Zielverzeichnis nicht erreichbar ist.
Diese DLL ist nun auf einem Win 2000 Pro Terminal-Server (im Folgenden TS) installiert worden und soll die TIDs in freigegebenen Netzwerkverzeichnissen auf anderen Servern (Fileserver) ablegen.
Folgendes Problem taucht nun auf: Meldet sich ein Benutzer am TS an, der Admin-Rechte hat, und druckt auf einen der von der o.e. DLL überwachten Drucker, dann wird die TID schön sauber im Netzverzeichnis geschrieben. Meldet sich aber ein Benutzer ohne Admin-Rechte an und druckt, dann wird die TID eben nicht im Netzverzeichnis geschrieben sondern nur lokal und es wird gemeldet, dass im eigentlichen Zielverzeichnis, also im Netzverzeichnis, die TID nicht erstellt werden konnte.
Kommen wir zur Frage: Es kann doch nicht sein, dass nur bei Admin-Usern in ein Netzverzeichnis geschrieben werden kann, denn das Programm bzw. die DLL, die den eigentlichen Schreibvorgang ausführt hat doch m.E. überhaupt nichts mit den Rechten des jeweils grade angemeldeten Benutzers zu tun, sondern es ist ein Systemprogramm. Meine Vermutung dazu ist, dass das Erzeugen der TID auf demjenigen Server, auf dem das Zielverzeichnis freigegeben ist, nur dann zugelassen wird, wenn dieser Server denjenigen, der da schreiben will, kennt. Wie mache ich dem Zielserver klar, dass er das Schreiben von Dateien auf einem seiner freigegebenen Verzeichnisse auch dann zulassen soll, wenn das Programm bzw. die Anwendung, die dort schreiben will, keine globalen User-Admin-Rechte mitbringt? Bzw. wie kann ich ihm sagen, dass er dem System des schreibenden Computers den Zugriff erlauben soll? Wo genau wird das eingestellt?

Content-Key: 10826

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

Ausgedruckt am: 19.03.2024 um 09:03 Uhr

Mitglied: 12217
12217 18.05.2005 um 12:20:11 Uhr
Goto Top
Da die DLL/Programm nicht als Dienst läuft, sondern h.w. im Sicherheitskontext des Benutzers, liegst du mit deiner Annahme falsch. Leider machst du dazu keine näheren Angaben...

Falls dieser Benutzer keine Schreib/Ändern Rechte auf die Freigabe hat, kann es nicht funktionieren.

mfg
DrOktagon
Mitglied: lutzr
lutzr 18.05.2005 um 14:01:56 Uhr
Goto Top
Nun, die Netzverzeichnisse, auf die geschrieben werden soll, sind für alle Benutzer, die sich auf dem TS einloggen dürfen, zum Schreiben freigegeben. D.h., diese User können, egal was für Rechte sie sonst noch haben, auf jeden fall dort Dateien anlegen, löschen, ändern usw. Das ist ja das seltsame: hat nun einer der TS-User dort Admin-Rechte (also auf dem TS!), dann schreibt die DLL in das Netzverzeichnis, entzieht man dem User das Admin-Recht, dann tut sie es nicht, die Rechte in den Zielverzeichnissen sind aber gleich geblieben.
Mitglied: 12217
12217 20.05.2005 um 13:42:26 Uhr
Goto Top
Ich hatte mal ein Problem mit einer Branchenlösung unter WTS. Dort half mir diese Einstellung weiter:


- GPEdit.msc starten
- Wählen in der Strukturansicht Computerkonfiguration | Windows-Einstellungen | Sicherheitseinstellungen | Lokale Richtlinien | Zuweisen von Benutzerrechten und doppelklicken Sie im rechten Fenster auf die Richtlinie "Erstellen Globaler Objekte".
- Fügen Sie die Gruppe Domänen-Benutzer hinzu

Ich würde es mal ausprobieren. Ansonsten kann die Änderung ja wieder zurückgenommen werden. Nicht vergessen, das es etwas dauert, bis die Policy übernommen wird.

mfg
DrOktagon