Come posso superare & # 8220; Il collegamento simbolico non può essere seguito perché il suo tipo è disabilitato. & # 8221; errore quando si ottiene la destinazione di un collegamento simbolico?

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

  •  04-07-2019
  •  | 
  •  

Domanda

A seguito di un domanda precedente , sto creando un collegamento simbolico su un Server 2008 da una macchina Vista utilizzando percorsi UNC. Posso creare il collegamento bene. Posso andare nella casella Server 2008 e fare doppio clic sul collegamento in Explorer per aprire il file di destinazione. Quello che non posso fare è usare FileCreateW per ottenere un handle per il collegamento del percorso UNC (dalla casella Vista). Quando lo provo, non riesce e GetLastError () restituisce il codice di errore 1463 (0x5B7), ovvero:

  

Il collegamento simbolico non può essere seguito perché il suo tipo è disabilitato.

Come abilitare il suo tipo "quot" " in Server 2008 (supponendo che l'errore significhi ciò che dice)?

È stato utile?

Soluzione

Per aggiungere a la risposta utile di @David Arno , basata su W7:


fsutil.exe può essere creato per mostrare quali argomenti prende semplicemente eseguendo:

fsutil behavior set /?

Per segnalare la configurazione corrente , eseguire query sul comportamento fsutil SymlinkEvaluation - vedere La risposta di @ Jake1164 , in particolare per quanto riguarda il modo in cui una politica di gruppo può controllare il comportamento.

Il comportamento di risoluzione del collegamento simbolico è impostato sulla macchina che accede un determinato collegamento , non sulla macchina che lo ospita.

I codici di comportamento per set di comportamenti fsutil SymlinkEvaluation - ovvero L2L , L2R , R2L e R2R - significano quanto segue:

  • L sta per " Local " ;, e R per " Remote " (chi avrebbe mai usato?)
  • Il PRIMO L o R - prima il 2 - si riferisce alla posizione del collegamento stesso ( rispetto al suo obiettivo) relativo alla macchina ACCESSO al collegamento .
  • Il SECONDO L o R - dopo il 2 - si riferisce alla posizione del target relativo alla macchina in cui si trova il LINK stesso .

Pertanto, ad esempio, l'esecuzione del set di comportamenti fsutil SymlinkEvaluation R2L significa che è possibile accedere ai collegamenti:

  • situato su un computer remoto ( R )
  • puntano ai target su quella stessa macchina remota ( L )

A differenza di quello che David ha vissuto su Vista, io, su W7, sono stato in grado di risolvere un collegamento remoto che puntava a una risorsa su un altro computer remoto abilitando solo R2R (e non dover anche abilitare R2L).

Altri suggerimenti

Beh, ho trovato la risposta, anche se descriverla come mal documentata è un eufemismo!

Prima di tutto, questo articolo TechEd sottolinea il fatto che gli utenti può "abilitare o disabilitare una delle quattro valutazioni disponibili nei collegamenti simbolici". Quelle quattro "valutazioni" includere da remoto a locale e da locale a remoto. Non fornisce alcun indizio su come farlo.

Tuttavia, un'ulteriore ricerca ha rivelato questa pagina di aiuto di fsutil , che documenta effettivamente come " ; abilitare o disabilitare una delle quattro valutazioni disponibili nei collegamenti simbolici " ;. Quindi, per risolvere il problema che stavo riscontrando, ho bisogno di emettere il seguente comando sulla casella Vista :

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

per consentire l'accesso completo al punto in cui i collegamenti simbolici puntano su macchine sia locali che remote.

Di recente l'ho trovato su tutti i miei box aziendali di Windows 7 quando uno dei miei programmi legacy ha smesso di funzionare. Dopo aver cercato e trovato queste impostazioni, ho provato a eseguire le impostazioni tramite la riga di comando e il registro senza sollievo.

Ho scoperto che puoi usare il comando da un prompt elevato:

fsutil behavior query SymlinkEvaluation

Questo restituirà lo stato di questi collegamenti E nel mio caso che sono controllati da una politica di gruppo! Grazie dipartimento IT (tu f @ $ #% $ rs)!

inserisci qui la descrizione dell'immagine

Queste impostazioni possono anche essere manipolate direttamente tramite il registro in HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem : Vedi SymlinkLocalToLocalEvaluation, SymlinkLocalToRemoteEvaluation, SymlinkRemoteToLocalEvaluation, SymlinkRemoteToRemoteEvaluation.

se con " query sul comportamento fsutil SymlinkEvaluation " viene visualizzato il messaggio .. " è attualmente controllato dai criteri di gruppo " ..., selezionare HKEY_LOCAL_MACHINE \ SOFTWARE \ Policies \ Microsoft \ Windows \ Filesystems \ NTFS o cerca semplicemente nel registro di sistema per " Symlink "

Grazie David per l'informazione, stavo diventando disperato per risolvere questo problema che rendeva i collegamenti simbolici per lo più inutili.

Si noti che la configurazione predefinita per Vista è L2L e L2R abilitati, ma R2R e R2L disabilitati.

Ho prima provato ad abilitare solo R2R, ma questo non è sufficiente. Anche R2L deve essere abilitato.

La prossima domanda sulla mia lista: Come sbarazzarsi di quella stupida opzione / D per il comando mklink per i collegamenti alla directory. Il tipo di collegamento predefinito dovrebbe essere dedotto automaticamente dal tipo di percorso target!

Queste impostazioni possono anche essere manipolate direttamente tramite il registro (richiede la scrittura dell'amministratore locale):

Chiave di registro: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem

Valori di registro (coppie nome / dati):

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

La documentazione ufficiale è difficile da trovare, ma questa sembra essere una pagina Microsoft ufficiale: Consenti in modo selettivo la valutazione di un collegamento simbolico

Cordiali saluti, se disponi di Criteri di gruppo che controllano le impostazioni di SymlinkEvaluation, PUOI comunque impostarle tu stesso dalla riga di comando. Verranno sovrascritti dal GP al prossimo riavvio / accesso, ma le impostazioni funzioneranno durante la sessione dell'utente.

Quindi, come soluzione alternativa se è necessario impostarlo su qualcosa di diverso da quello che GP impone, è anche possibile eseguire uno script all'accesso per impostarli dopo l'applicazione di GP.

I punti di giunzione remoti funzionano per impostazione predefinita. Per i file hai ancora bisogno di collegamenti simbolici.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top