
Szenariobeschreibung:
An meinem Arbeitsplatz haben wir einen DomainController
und verwenden TerminalServices
. Auf dem DC laufen verschiedene Servertypen (z. B. webapi
, app
). Die Entwickler, die die API entwickeln, möchten app\images
über eine URL, die auf verweist, auf einen Ordner (z. B. ) zugreifen webapi
. Daher dachte ich, dass ich dies mit symbolischen Links erreichen könnte.
Ich habe einen Symlink erstellt, der \\DC\webserver\symed_images
auf das Ziel verweist\\DC\appserver\images
der vollständige Pfad von webapi
in DC
istD:\webserver
der vollständige Pfad der app
in DC
istD:\ProgramFiles\app
Darüber hinaus sind beide D:\ProgramFiles\app
& D:\webserver
freigegebene Ordner im Netzwerk.
Ich habe die Symlinks als Administrator im erstellt DC
. Da ich dachte, dass es einfacher wäre, habe ich denLink Shell-ErweiterungWerkzeug.
Das Problem
Nach dem Erstellen der Symlinks funktionieren diese einwandfrei, wenn man mit Administratorrechten angemeldet ist DC
. Wenn jedoch jemand versucht, über die Terminaldienste auf den Symlink zuzugreifen, indem er zur Netzwerkfreigabe navigiert DC\webserver\symed_images
, erhält der Benutzer eine Fehlermeldung. Auch bei Verwendung des Webbrowsers tritt eine Fehlermeldung auf.
Die Frage
Wie machen Sie die URL eines Ordners verfügbar, der über einen symbolischen Link mit einem anderen Ordner verknüpft ist, und stellen sicher, dass alle Benutzer Zugriff auf diesen Ordner haben?
Einige Dinge, die Sie beachten sollten
Hier werde ich ein paar Dinge aufschreiben, die bei Ihrer Antwort möglicherweise wichtig sind: Freigabeberechtigungen, Sicherheitsberechtigungen des freigegebenen Ordners, Erstellen symbolischer Links, DFS-Namespaces.
Lösungsupdate 1:
OK, nachdem ich die vorgeschlagenen Links gelesen und ein wenig online recherchiert hatte, hat es bei mir funktioniert, nachdem ich eine Verbindung erstellt hatte.
Ich habe den folgenden Befehl verwendet:mklink /J "D:\webserver\symed_images" "D:\ProgramFiles\app\images"
Beachten Sie, dass das Verzeichnis, das in diesem Fall als Junction () fungiert symed_images
, noch nicht vorhanden sein darf. Es wird automatisch erstellt, sobald der Befehl ausgeführt wird.
Fragen nach der Bearbeitung
Jetzt funktioniert die Verbindung einwandfrei für diejenigen, die versuchen, über den Windows Explorer darauf zuzugreifen. Wenn jedoch ein Webbrowser verwendet wird, gibt der Webserver Folgendes zurück:Server Error 403 - Forbidden: Access is denied. You do not have permission to view this directory or page using the credentials that you supplied.
Was könnte in diesem Fall das Problem sein? Wie kann dieser Link über einen Webbrowser zugänglich gemacht werden?
Welche Sicherheits- und Freigabeeigenschaften gelten für die Verbindung "D:\webserver\symed_images
? Die Eigenschaften des Ordners, in dem sie sich befindet D:\webserver
? Oder die Eigenschaften des Ordners, auf den sie abzielt D:\ProgramFiles\app\images
?