Como posso superar o "Link simbólico não pode ser seguido porque seu tipo está desativado". Erro ao obter o alvo de um link simbólico?

StackOverflow https://stackoverflow.com/questions/229643

  •  04-07-2019
  •  | 
  •  

Pergunta

Seguindo de um pergunta anterior, Estou criando um link simbólico em um servidor 2008 a partir de uma máquina Vista usando caminhos UNC. Eu posso criar o link muito bem. Eu posso ir para a caixa Server 2008 e clicar duas vezes no link no Explorer para abrir o arquivo de destino. O que não posso fazer é usar o FileCreatew para obter uma alça no link do caminho UNC (da caixa Vista). Quando eu tento, ele falha e getLasterRor () retorna o código de erro 1463 (0x5b7), que é:

O link simbólico não pode ser seguido porque seu tipo está desativado.

Como ativar seu "tipo" no servidor 2008 (assumindo que o erro significa o que diz)?

Foi útil?

Solução

Para adicionar @David Arno Resposta útil, com base no W7:


fsutil.exe pode ser feito para mostrar quais argumentos são necessários simplesmente executando:

fsutil behavior set /?

Para Relate o atual configuração, corre fsutil behavior query SymlinkEvaluation - Vejo @Jake1164 Resposta, particularmente em relação a como um política de grupo pode estar controlando o comportamento.

o O comportamento de resolução de link simbólico está definido na máquina que acessos um determinado link, não a máquina que a hospeda.

o códigos de comportamento por fsutil behavior set SymlinkEvaluation - ou seja L2L, L2R, R2L, e R2R - significa o seguinte:

  • L significa "local" e R Para "remoto" (quem teria Thunk?)
  • O primeiro L ou R - antes da a 2 - refere -se à localização do próprio link (em oposição ao seu alvo) em relação à máquina acessando o link.
  • O segundo L ou R - depois a 2 - refere -se à localização do link alvo em relação à máquina onde o próprio link está localizado.

Assim, por exemplo, executando fsutil behavior set SymlinkEvaluation R2L significa que você pode acessar links:

  • localizado em uma máquina remota (R)
  • esse ponto para alvos na mesma máquina remota (L)

Ao contrário do que David experimentou no Vista, eu, no W7, consegui resolver um link remoto que apontou para um recurso em outra máquina remota, permitindo o R2R sozinho (e também não precisar ativar o R2L).

Outras dicas

Bem, eu encontrei a resposta, embora para descrevê -la como mal documentada é um eufemismo!

Em primeiro lugar, Este artigo tecnológico destaca o fato de que os usuários podem "ativar ou desativar qualquer uma das quatro avaliações disponíveis em links simbólicos". Essas quatro "avaliações" incluem remoto para o local e o local para remoto. Não dá nenhuma idéia de como fazer isso.

No entanto, uma pesquisa adicional revelou Esta página de ajuda fsutil, que realmente documenta como "ativar ou desativar qualquer uma das quatro avaliações disponíveis em links simbólicos". Então, para corrigir o problema que estava tendo, preciso emitir o seguinte comando Na caixa Vista:

fsutil behavior set SymlinkEvaluation L2L:1 R2R:1 L2R:1 R2L:1

Para permitir o acesso total a onde os links simbólicos estão apontando para máquinas locais e remotas.

Recentemente, encontrei isso em todas as minhas caixas corporativas do Windows 7 quando um dos meus programas legados parou de funcionar. Depois de pesquisar e encontrar essas configurações, tentei definir através da linha de comando e através do registro sem nenhum alívio.

Descobri que você pode usar o comando de um prompt elevado:

fsutil behavior query SymlinkEvaluation

Isso retornará o status desses links e, no meu caso, eles estão sendo controlados por uma política de grupo! Obrigado departamento de TI (você f@$#%$ RS)!

enter image description here

Essas configurações também podem ser manipuladas diretamente através do registro em HKEY_LOCAL_MACHINE SYSTEM CurrentControlset Control FileSystem: Ver SymlinkLocalTolocalevaluation, SymlinkLocalTeroteevaluation, SymlinkRemoteTolocalevaluation, SymlinkRemotetoremoteevaluation.

Se com "FSUTIL COMPOLENTE SYMINKEVALUTION", você recebe mensagem .. "atualmente é controlado pela política de grupo"..., Verifica Hkey_local_machine software políticas microsoft windows filesystems ntfsOu simplesmente pesquise no Registro por "Symlink"

Obrigado David pela dica, eu estava ficando desesperada para corrigir esse problema que tornava os symblinks principalmente inúteis.

Deve -se observar que a configuração padrão para Vista é L2L e L2R ativada, mas R2R e R2L desativados.

Eu tentei primeiro ativar apenas o R2R, mas isso não é suficiente. O R2L também deve ser ativado.

A próxima pergunta na minha lista: como se livrar dessa troca estúpida /D para o comando mklink para links de diretório. O tipo de link padrão deve ser inferido automaticamente do tipo de nome de destino!

These settings can also be manipulated directly via the registry (requires local admin to write):

Registry key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem

Registry values (name/data pairs):

Name                             Type       Data  (1: Enabled; 0: Disabled)
-------------------------------------------------
SymlinkLocalToLocalEvaluation    REG_DWORD     1
SymlinkLocalToRemoteEvaluation   REG_DWORD     1
SymlinkRemoteToLocalEvaluation   REG_DWORD     1
SymlinkRemoteToRemoteEvaluation  REG_DWORD     1

Official documentation is difficult to find, but this appears to be an official Microsoft page: Selectively allow the evaluation of a symbolic link

FYI if you have Group Policies in place controlling SymlinkEvaluation settings you CAN still set them yourself from the command line. They will be overwritten by GP at next reboot/login but your settings will work during your user session.

So as a workaround if you need to set it to something other than what GP dictates you could even run a script at logon to set them after GP is applied.

Remote junction points work by default. For files you still need symlinks.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top