Criando um link simbólico para a unidade de rede mapeada no Windows


36

Estou com um problema ao criar um link simbólico no Windows 7 Ultimate. Quero mapear uma pasta de uma unidade de rede mapeada para Meus Documentos.

mklink /D "C:\Users\Vegard\Documents\Virtual Machines" "Z:\Virtual Machines"retorna You do not have sufficient privilege to perform this operation..

Z:\Virtual Machines está definido para estar disponível offline, mas estou online quando estou tentando isso.

Isto é o que eu tentei (como sugerido aqui ):

  1. Usando a Diretiva de Segurança Local para adicionar meu usuário a Políticas Locais \ Atribuições de Direitos do Usuário \ Criar links simbólicos e reiniciar. Sem sorte

  2. Executando o cmd.exe como administrador, mas não consigo ver a unidade de rede mapeada. No entanto, posso criar links simbólicos na unidade.

  3. Usando fsutilpara mudar symlinkevaluation, para definir R2L:1(mesmo que pareça para mim L2R, o que já está ativado).

  4. O uso do caminho UNC completo da pasta compartilhada também não funciona ( The syntax of the command is incorrect.quando executado como administrador, You do not have sufficient privilege to perform this operation.quando executado como usuário normal).

Saída de fsutil behavior query symlinkevaluation:

C:\Windows\system32>fsutil behavior query symlinkevaluation
Local to local symbolic links are enabled.
Local to remote symbolic links are enabled.
Remote to local symbolic links are enabled.
Remote to remote symbolic links are disabled.

Alguma ideia?


Como mencionei abaixo, isso ocorre porque um prompt elevado não possui o compartilhamento de pastas mapeado para ele. Tente um cd z:` and you'll get an error. run cmd` como usuário e veja se a pasta está mapeada.
surfasb

Respostas:


49

Execute o cmd como administrador e use o caminho UNC.

O seguinte comando funcionou para mim como administrador:

mklink /D C:\temp11111 \\server\share\foldername\

E também verifique se o seu comando contém aspas apropriadas ( ").


8

Este é um segmento antigo, mas ainda deseja esclarecer que você pode criar links simbólicos como este:

Sua conta de usuário possui algumas políticas de segurança por padrão que podem ser desabilitadas através do secpol.msc. Vá para a caixa de diálogo Executar e digite:

secpol.msc
  • Navegar para: Local Policies > User Rights Assignment
  • Clique duas vezes: Criar links simbólicos
  • Adicione seu nome de usuário à lista, clique em OK
  • Sair

Quando você efetuar login novamente, execute cmd com privilégios de administrador . Agora você deve poder executar comandos mklink como este sem problemas:

mklink /d %userprofile%\music \\server\music

Nota: verifique se o diretório ao qual você está tentando vincular existe ou não foi movido ou excluído antes da vinculação.


11
Nota; secpol.msc não existe na versão inicial do win7.
JonoRR

Por que é necessário executar como administrador? Se o usuário tiver o privilégio Criar vínculo simbólico, seria de pensar que será exigida essa elevação
kreemoweet

2

Minha solução tornou-se desativar o controle de conta de usuário, reiniciar e criar os links simbólicos como meu próprio usuário, reativar o UAC e reiniciar novamente.

É lamentável que eu precise criar links simbólicos adicionais posteriormente, mas funciona, é apenas muito inconveniente.


5
Isso ocorre porque o compartilhamento de pastas é mapeado na conta do usuário. Quando você inicia o cmd como administrador, ele é iniciado como uma conta de administrador e não possui os compartilhamentos de pastas mapeados.
surfasb

2

Se você estiver fazendo isso no Powershell, precisará abrir o CMD primeiro:

CMD /C MKLINK /D C:\local\path \\UNC\path\folder

O /Cargumento diz ao CMD para executar o comando na string e depois sair.


1

Você precisa habilitar links locais para remotos executando este comando com direitos elevados: conjunto de comportamentos fsutil SymlinkEvaluation L2R: 1

Além disso, você pode habilitá-lo com sua diretiva local ou de grupo: Computador \ Sistema \ Sistema de Arquivos \ Selecionar seletivamente a avaliação de um link simbólico -> permitir local para remoto

Cumprimentos,

Matthias


-1

Você não pode fazer links simbólicos em redes e unidades mapeadas como fonte, você só pode usá-las como destino e a fonte são suas unidades locais

você não pode fazer assim:

A unidade mapeada é a unidade Z: \ Target (unidade local ou rede)

Mklink / dz: \ SourceFolder c: \ Target Mklink / dz: \ SourceFolder F: \ SharedNetworkFolder

eles são erros e não podem ser usados ​​como links simbólicos

somente de Local para rede e Local para Local somente funcionará em links simbólicos

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.