Dienste und umgeleitete Laufwerke

Ein Dienst (oder ein beliebiger Prozess, der in einem anderen Sicherheitskontext ausgeführt wird), der auf eine Remoteressource zugreifen muss, sollte den UNC-Namen (Universal Naming Convention) verwenden, um auf die Ressource zuzugreifen. Der Dienst muss über die entsprechenden Berechtigungen für den Zugriff auf die Ressource verfügen. Wenn ein serverseitiger Dienst eine RPC-Verbindung verwendet, muss die Delegierung auf dem Remoteserver aktiviert sein.

Laufwerkbuchstaben sind nicht global für das System. Jede Anmeldesitzung erhält einen eigenen Satz von Laufwerkbuchstaben von A bis Z. Daher können umgeleitete Laufwerke nicht für Prozesse freigegeben werden, die unter unterschiedlichen Benutzerkonten ausgeführt werden. Darüber hinaus kann ein Dienst (oder ein beliebiger Prozess, der innerhalb seiner eigenen Anmeldesitzung ausgeführt wird) nicht auf die Laufwerkbuchstaben zugreifen, die innerhalb einer anderen Anmeldesitzung eingerichtet wurden.

Ein Dienst sollte weder direkt auf lokale Ressourcen oder Netzwerkressourcen über zugeordnete Laufwerkbuchstaben zugreifen, noch sollte er den Befehl net use aufrufen, um Laufwerkbuchstaben zur Laufzeit zu zuordnen. Der Befehl net use wird aus mehreren Gründen nicht empfohlen:

  • Laufwerkzuordnungen sind über Anmeldekontexte hinweg vorhanden. Wenn also eine Anwendung im Kontext des LocalService-Kontos ausgeführt wird, kann jeder andere Dienst, der in diesem Kontext ausgeführt wird, Zugriff auf das zugeordnete Laufwerk haben.
  • Wenn der Dienst explizite Anmeldeinformationen für einen Net Use-Befehl bereitstellt, werden diese Anmeldeinformationen möglicherweise versehentlich außerhalb der Dienstgrenzen freigegeben. Stattdessen sollte der Dienst den Clientidentitätswechsel verwenden, um die Identität des Benutzers zu imitieren.
  • Mehrere Dienste, die im selben Kontext ausgeführt werden, können sich gegenseitig beeinträchtigen. Wenn beide Dienste eine explizite Net-Nutzung ausführen und gleichzeitig dieselben Anmeldeinformationen bereitstellen, schlägt ein Dienst mit dem Fehler "bereits verbunden" fehl.

Darüber hinaus sollte ein Dienst die Windows-Netzwerkfunktionen nicht verwenden, um zugeordnete Laufwerkbuchstaben zu verwalten. Obwohl die WNet-Funktionen möglicherweise erfolgreich zurückgegeben werden, ist das resultierende Verhalten nicht wie vorgesehen. Wenn das System ein umgeleitetes Laufwerk erstellt, wird es benutzerbezogen gespeichert. Nur der Benutzer kann das umgeleitete Laufwerk verwalten. Das System verfolgt umgeleitete Laufwerke basierend auf der Anmeldesicherheits-ID (SID) des Benutzers nach. Die Anmelde-SID ist ein eindeutiger Bezeichner für die Anmeldesitzung des Benutzers. Ein einzelner Benutzer kann mehrere gleichzeitige Anmeldesitzungen auf dem System haben.

Wenn ein Dienst für die Ausführung unter einem Benutzerkonto konfiguriert ist, erstellt das System immer eine neue Anmeldesitzung für den Benutzer und startet den Dienst in dieser neuen Anmeldesitzung. Daher kann ein Dienst die Laufwerkzuordnungen nicht verwalten, die in den anderen Sitzungen des Benutzers eingerichtet wurden.

Windows Server 2003: Auf einem Computer mit mehreren Netzwerkschnittstellen (d. h. einem mehrfach vernetzten Computer) kann es zu Verzögerungen von bis zu 60 Sekunden kommen, wenn UNC-Pfade für den Zugriff auf Dateien verwendet werden, die auf einem Server mit Remoteserver-Nachrichtenblocks (SMB) gespeichert sind.