Servizi e unità reindirizzate

Un servizio (o qualsiasi processo in esecuzione in un contesto di sicurezza diverso) che deve accedere a una risorsa remota deve usare il nome UNC (Universal Naming Convention) per accedere alla risorsa. Il servizio deve disporre dei privilegi appropriati per accedere alla risorsa. Se un servizio lato server usa una connessione RPC, la delega deve essere abilitata nel server remoto.

Le lettere di unità non sono globali per il sistema. Ogni sessione di accesso riceve un proprio set di lettere di unità da A a Z. Di conseguenza, le unità reindirizzate non possono essere condivise tra processi in esecuzione con account utente diversi. Inoltre, un servizio (o qualsiasi processo in esecuzione all'interno della propria sessione di accesso) non può accedere alle lettere di unità stabilite all'interno di una sessione di accesso diversa.

Un servizio non deve accedere direttamente alle risorse locali o di rete tramite lettere di unità mappate, né deve chiamare il comando net use per eseguire il mapping delle lettere di unità in fase di esecuzione. Il comando net use non è consigliato per diversi motivi:

  • I mapping delle unità esistono tra contesti di accesso, quindi se un'applicazione è in esecuzione nel contesto dell'account LocalService, qualsiasi altro servizio in esecuzione in tale contesto può avere accesso all'unità mappata.
  • Se il servizio fornisce credenziali esplicite a un comando net use , tali credenziali potrebbero essere inavvertitamente condivise al di fuori dei limiti del servizio. Al contrario, il servizio deve usare la rappresentazione client per rappresentare l'utente.
  • Più servizi in esecuzione nello stesso contesto possono interferire tra loro. Se entrambi i servizi eseguono un uso netto esplicito e forniscono contemporaneamente le stesse credenziali, un servizio avrà esito negativo con un errore "già connesso".

Inoltre, un servizio non deve usare Funzioni di rete di Windows per gestire le lettere di unità mappate. Anche se le funzioni WNet possono restituire correttamente, il comportamento risultante non è quello previsto. Quando il sistema stabilisce un'unità reindirizzata, viene archiviata per singolo utente. Solo l'utente è in grado di gestire l'unità reindirizzata. Il sistema tiene traccia delle unità reindirizzate in base all'identificatore di sicurezza di accesso (SID) dell'utente. Il SID di accesso è un identificatore univoco per la sessione di accesso dell'utente. Un singolo utente può avere più sessioni di accesso simultanee nel sistema.

Se un servizio è configurato per l'esecuzione con un account utente, il sistema crea sempre una nuova sessione di accesso per l'utente e avvia il servizio in tale nuova sessione di accesso. Pertanto, un servizio non può gestire i mapping delle unità stabilite nelle altre sessioni dell'utente.

Windows Server 2003: In un computer con più interfacce di rete (ovvero un computer multihomed), possono verificarsi ritardi fino a 60 secondi quando si usano percorsi UNC per accedere ai file archiviati in un server SMB (Server Message Block) remoto.