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?
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?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-Key: 10826
Url: https://administrator.de/contentid/10826
Ausgedruckt am: 19.03.2024 um 09:03 Uhr
3 Kommentare
Neuester Kommentar
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
Falls dieser Benutzer keine Schreib/Ändern Rechte auf die Freigabe hat, kann es nicht funktionieren.
mfg
DrOktagon
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
- 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