Acesso negado erro, quando eu mklink no Windows 7 [duplicado]

28

Meu diretório pessoal é c: \ Users \ phi como um usuário phi e criei um diretório em c: \ Users \ abc. Eu preciso link simbólico de c: \ Users \ phi \ hello para c: \ Users \ abc \ hello.

Eu corro o seguinte comando

mklink c:\Users\abc\hello c:\Users\phi\hello

Mas recebo o erro Acesso negado . Phi do usuário é Administrador, então não tenho problemas para gravar arquivos em c: \ Users \ abc.

Por que isso? Como mklink?

    
por prosseek 28.09.2010 / 15:12

10 respostas

24

Encontrei uma resposta deste site . Em suma, eu deveria ter executado cmd.exe como administrador.

    
por 28.09.2010 / 17:13
21

Observe que o mesmo erro será apresentado quando você tentar criar junções em unidades mapeadas . Eu estava puxando o meu cabelo para fora até que me deparei com os exemplos nesta página no MSDN Hard Links e junções .

Resposta curta: você só pode usar o mklink em volumes locais.

    
por 16.12.2011 / 01:59
20

Pontos importantes:

  1. Você precisa executar como administrador se o UAC estiver ativado. (ou pelo menos política de segurança para permitir a criação de links).
  2. A opção /D precisa ser usada se o link for para o diretório.
  3. O primeiro parâmetro é um link, o segundo parâmetro é a pasta original.
  4. O link já não deveria existir.

Uso:

mklink /D c:\users\me\new_link\ c:\users\me\original_folder\
    
por 11.09.2012 / 16:48
13

No Windows 7 (e posterior), você precisa de um privilégio de segurança especial para criar links e junções. Como administrador, você pode conceder essa permissão aos usuários que usam secpol.msc para definir Local Policies\User Rights Assignment\Create symbolic links .

Se o usuário estiver logado no momento, será necessário fazer logoff e logon para poder criar links.

Observe que a cautela desses links pode expor as deficiências de segurança em alguns aplicativos - não pesquisei quais poderiam ser esses pontos fracos.

    
por 09.02.2013 / 02:53
9

Se você usa Linux com frequência, lembre-se de que os parâmetros são trocados no Windows.

Se você usar a ordem errada, você receberá um "Acesso negado" também. Porque você está tentando criar um link simbólico onde o original já existe.

Windows: mklink /D link original

Linux: ln -s original link

    
por 12.03.2014 / 12:17
4

Eu estava recebendo isso porque acidentalmente executei mklink /D em um arquivo. O link não estava aparecendo no explorador, mas sim no Windows Explorer. Usando o Prompt de Comando Excluí o link do diretório inválido original e recriou-o sem a opção /D .

A propósito, eu estava recebendo o erro "Acesso negado", embora eu estivesse executando o cmd.exe como administrador.

    
por 17.08.2011 / 23:35
1

Além de executar mklink como Administrador, você também deve certificar-se de ter permissões suficientes para a pasta de destino à qual está vinculando.

    
por 17.01.2012 / 15:21
1

Se você executar:

mklink /j C:\path_to_link C:\destination

deve funcionar. No meu caso, o powershell e o cmd produziram a mesma saída. Para o powershell, você só precisa iniciar o comando com

cmd /c mklink...

    
por 26.10.2012 / 11:54
0

Isso pode soar estranho, mas verifique se o arquivo ou a pasta ainda não existe e que você está tentando criar. Às vezes é fácil ignorar no prompt do cmd.

    
por 08.04.2011 / 20:51
0

Para diretórios você precisa fazer:

mklink /D c:\Users\abc\hello c:\Users\phi\hello
    
por 20.04.2012 / 06:11