2008-10-23 131 views
46

A partir de un previous question, estoy creando un enlace simbólico en un Servidor 2008 desde una máquina Vista usando rutas UNC. Puedo crear el enlace muy bien. Puedo ir al cuadro Servidor 2008 y hacer doble clic en el enlace en el explorador para abrir el archivo objetivo. Lo que no puedo hacer es utilizar FileCreateW para obtener un control del enlace de ruta UNC (desde el cuadro Vista). Cuando lo intento, falla y GetLastError() devuelve el código de error 1463 (0x5B7), que es:¿Cómo supero el "No se puede seguir el enlace simbólico porque su tipo está deshabilitado". error al obtener el objetivo de un enlace simbólico?

No se puede seguir el enlace simbólico porque su tipo está deshabilitado.

Cómo habilitar su "tipo" en Server 2008 (suponiendo que el error significa lo que dice)?

Respuesta

36

Para añadir a @David Arno's helpful answer, basado en W7:


fsutil.exe se pueden hacer para mostrar cuáles son los argumentos que se necesita simplemente ejecutando:

fsutil behavior set /? 

Para informe de la configuración actual , ejecute fsutil behavior query SymlinkEvaluation - vea @Jake1164's answer, particularmente con respecto a cómo gro hasta la política puede estar controlando el comportamiento.

El comportamiento resolución simbólica -enlace se establece en la máquina que accesos un enlace dado, no la máquina que lo aloja.

Los códigos de conducta para fsutil behavior set SymlinkEvaluation - es decir L2L, L2R, R2L y R2R - significan los siguientes:

  • L las siglas de "local", y R "mando a distancia" (¿Quién lo hubiera thunk)
  • el PRIMER L o R - antes de la 2 - se refiere a la ubicación del enlace en sí (como OPP a su objetivo) relativo a la máquina ACCESO al enlace.
  • El SEGUNDO L o R-después de la 2 - se refiere a la ubicación de objetivo del enlace con respecto a la máquina en la que se encuentra el propio enlace.

Así, por ejemplo, la ejecución de fsutil behavior set SymlinkEvaluation R2L significa que se puede acceder a enlaces:

  • ubicados en una máquina remota (R)
  • que apuntan a objetivos en la misma máquina remota (L)

a diferencia de lo que David experimentó en Vista, que, en W7, estaba capaz de resolver un enlace remoto que apunta a un recurso en otra máquina remota habilitando R2R solo (y no tener que habilitar R2L).

55

Bueno, encontré la respuesta, aunque describirla como mal documentada es quedarse corto.

En primer lugar, this TechEd article destaca el hecho de que los usuarios pueden "habilitar o deshabilitar cualquiera de las cuatro evaluaciones que están disponibles en enlaces simbólicos". Esas cuatro "evaluaciones" incluyen remota a local y local a remota. No da ninguna pista sobre cómo hacer esto.

Sin embargo, una búsqueda más reveló this fsutil help page, que en realidad documenta cómo "habilitar o deshabilitar cualquiera de las cuatro evaluaciones que están disponibles en enlaces simbólicos". Así que para solucionar el problema que estaba teniendo, necesito el siguiente comando en la caja de Vista:

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

con el fin de permitir el acceso completo a los enlaces simbólicos donde están apuntando en ambos equipos locales y remotos.

+1

Esta página tiene más información fsutil: http://technet.microsoft.com/en-us/library/cc785435(WS.10).aspx – ErJab

5

Gracias a David por la sugerencia, me estaba desesperando por solucionar este problema que hacía que los enlaces simbólicos fueran inútiles.

Se debe tener en cuenta que la configuración predeterminada para Vista es L2L y L2R habilitada, pero R2R y R2L están deshabilitados.

Primero intenté habilitar solo R2R, pero esto no es suficiente. R2L tiene que estar habilitado también.

La siguiente pregunta en mi lista: Cómo deshacerse de ese estúpido/interruptor D para el comando mklink para enlaces de directorio. ¡El tipo de enlace predeterminado debe inferirse automáticamente del tipo de nombre de ruta de destino!

+2

"El tipo de enlace predeterminado ¡debe inferirse automáticamente del tipo de nombre de ruta de destino! " De acuerdo! – Fowl

1

Los puntos de unión remota funcionan por defecto. Para los archivos, aún necesitas enlaces simbólicos.

2

Estos ajustes también pueden ser manipulados directamente a través del registro (requiere que el administrador local escribir):

clave del Registro: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem

valores del registro (pares nombre/datos):

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

La documentación oficial es difícil de encontrar, pero esta parece ser una página oficial de Microsoft: Selectively allow the evaluation of a symbolic link

+0

Buen hallazgo. ¿Tiene un enlace a cualquier documentación de MS sobre esto sin embargo? Valdría la pena agregar OMI si lo hace. –

9

Recientemente encontré esto en todas mis cajas corporativas de Windows 7 cuando uno de mis programas heredados dejó de funcionar. Después de buscar y encontrar estas configuraciones, intenté configurarlo a través de la línea de comando y a través del registro sin ningún alivio.

He descubierto que se puede utilizar el comando desde un símbolo del sistema elevado:

fsutil behavior query SymlinkEvaluation 

Esto devolverá el estado de estos vínculos Y en mi caso de que están siendo controlados por una directiva de grupo! Gracias departamento de TI (usted f @ $ #% $ rs)!

enter image description here

+1

Eso fue muy útil. Gracias –

+0

en el GPO puede cambiarlo en "Configuración del equipo> Plantillas administrativas> Sistema> Sistema de archivos" y configurar "Permitir de forma selectiva la evaluación de un enlace simbólico" – deru

2

FYI si tiene directivas de grupo en lugar de controlar la configuración SymlinkEvaluation todavía se les puede establecer a sí mismo de la línea de comandos. Serán sobrescritos por GP en el próximo reinicio/inicio de sesión pero su configuración funcionará durante su sesión de usuario.

Así que, como solución alternativa, si tiene que configurar algo diferente de lo que GP dicta, incluso podría ejecutar una secuencia de comandos en el inicio de sesión para establecerlos después de aplicar GP.

6

Estos ajustes también pueden ser manipulados directamente por el Registro bajo HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ FileSystem: Ver SymlinkLocalToLocalEvaluation, SymlinkLocalToRemoteEvaluation, SymlinkRemoteToLocalEvaluation, SymlinkRemoteToRemoteEvaluation.

si con el "comportamiento fsutil SymlinkEvaluation consulta" se obtiene mensaje .. "está actualmente controlada por la política del grupo" ..., comprobar HKEY_LOCAL_MACHINE \ SOFTWARE \ Policies \ Microsoft \ Windows \ Sistemas de archivos \ NTFS o simplemente busque en el registro "Symlink"

+0

cambiando HKEY_LOCAL_MACHINE \ SOFTWARE \ Policies \ Microsoft \ Windows \ Filesystems \ NTFS trabajó para mi –

Cuestiones relacionadas