Partilhar via


Serviços e unidades redirecionadas

Um serviço (ou qualquer processo em execução em um contexto de segurança diferente) que deve acessar um recurso remoto deve usar o nome UNC (Convenção de Nomenclatura Universal) para acessar o recurso. O serviço deve ter privilégios apropriados para acessar o recurso. Se um serviço do lado do servidor usar uma conexão RPC, a delegação deverá ser habilitada no servidor remoto.

As letras de unidade não são globais para o sistema. Cada sessão de logon recebe seu próprio conjunto de letras de unidade de A a Z. Portanto, as unidades redirecionadas não podem ser compartilhadas entre processos executados em contas de usuário diferentes. Além disso, um serviço (ou qualquer processo em execução dentro de sua própria sessão de logon) não pode acessar as letras de unidade que foram estabelecidas dentro de uma sessão de logon diferente.

Um serviço não deve acessar diretamente recursos locais ou de rede por meio de letras de unidade mapeadas, nem deve chamar o comando net use para mapear letras de unidade em tempo de execução. O comando net use não é recomendado por vários motivos:

  • Existem mapeamentos de unidade em contextos de logon, portanto, se um aplicativo estiver sendo executado no contexto da conta LocalService, qualquer outro serviço em execução nesse contexto poderá ter acesso à unidade mapeada.
  • Se o serviço fornecer credenciais explícitas para um comando net use, essas credenciais poderão ser compartilhadas inadvertidamente fora dos limites do serviço. Em vez disso, o serviço deve usar de representação do cliente para representar o usuário.
  • Vários serviços executados no mesmo contexto podem interferir uns com os outros. Se ambos os serviços executarem um explícito de uso rede e fornecerem as mesmas credenciais ao mesmo tempo, um serviço falhará com um erro "já conectado".

Além disso, um serviço não deve usar o de funções de rede do Windows para gerenciar letras de unidade mapeadas. Embora as funções WNet podem retornar com êxito, o comportamento resultante não é como pretendido. Quando o sistema estabelece uma unidade redirecionada, ela é armazenada por usuário. Somente o usuário é capaz de gerenciar a unidade redirecionada. O sistema controla as unidades redirecionadas com base no identificador de segurança de logon (SID) do usuário. O SID de logon é um identificador exclusivo para a sessão de logon do usuário. Um único usuário pode ter várias sessões de logon simultâneas no sistema.

Se um serviço estiver configurado para ser executado em uma conta de usuário, o sistema sempre criará uma nova sessão de logon para o usuário e iniciará o serviço nessa nova sessão de logon. Portanto, um serviço não pode gerenciar os mapeamentos de unidade estabelecidos nas outras sessões do usuário.

Windows Server 2003: Em um computador que tenha várias interfaces de rede (ou seja, um computador multihomed), podem ocorrer atrasos de até 60 segundos ao usar caminhos UNC para acessar arquivos armazenados em um servidor SMB (bloco de mensagens do servidor remoto).