Ich habe einen freigegebenen Netzwerkordner einem Laufwerksbuchstaben zugeordnet, auf den über den Windows Explorer sowohl von der Eingabeaufforderung als auch von meiner WinForms-Anwendung zugegriffen werden kann. Es ist auch über meinen Windows-Dienst mit einem UNC-Pfad erreichbar.Zugriff auf Dateien auf freigegebenen Laufwerksfreigaben über einen Windows-Dienst nicht möglich
Wenn ich jedoch versuche, mit einem zugeordneten Laufwerksbuchstaben des Windows-Dienstes auf diesen Netzwerkspeicherort zuzugreifen, schlägt der Zugriff fehl. Der Windows-Dienst ist so konfiguriert, dass er meine persönlichen Anmeldeinformationen für das Konto verwendet, die in allen oben genannten Fällen identisch sind. Ich bin Administrator.
Viele Kundenwebsites verwenden Laufwerkbuchstaben für Netzwerkfreigaben, und ich kann dies nicht immer steuern und sie stattdessen zwingen, UNC-Pfade anzugeben. Ich muss auf Netzwerkfreigaben zugreifen können, die Laufwerksbuchstaben von einem Windows-Dienst verwenden.
Was muss ich tun, um meinen Windows-Dienst einzurichten, damit er auf freigegebene Netzwerkordner zugreifen kann, die Laufwerksbuchstaben zugeordnet sind? Mein Windows-Dienst ist in C# geschrieben.
Vielen Dank für den Artikel. Microsoft macht deutlich, dass man von einem Windows-Dienst nicht auf gemappte Laufwerke zugreifen darf. – Elan
Der zitierte Artikel besagt nur, dass Dienste keine Laufwerkszuordnungen verwenden oder ändern dürfen, was bedeutet, dass dies nicht möglich ist.In dem MS KB-Artikel bedeutet es sogar als solches, wenn es besagt: "Daher können umgeleitete Laufwerke nicht zwischen Prozessen geteilt werden, die unter anderen Benutzerkonten ausgeführt werden." Mit anderen Worten, die Anmeldesitzung und der Dienst müssen unter denselben Anmeldeinformationen ausgeführt werden. Es kann getan werden. – Garen
@Garen: Jede Hauptversion von Windows erhöht die Trennung zwischen Diensten und Desktop-Code aus Sicherheitsgründen. Es gibt * Möglichkeiten, es jetzt zum Arbeiten zu zwingen. Es gab auch Möglichkeiten, es auf früheren Windows-Versionen zu erzwingen, die nicht mehr funktionieren. Es wird nicht unterstützt; Sie würden nur ein Produkt erstellen, das bei einer zukünftigen Windows-Version beschädigt werden könnte. (Ich spreche aus Erfahrung ...) –