L'accesso alla condivisione del file server SMB non riesce tramite l'alias CNAME DNS

Questo articolo fornisce soluzioni per il problema che l'alias CNAME DNS non può accedere ai file server SMB.

Si applica a: Windows 10 - tutte le edizioni, Windows Server 2019, Windows Server 2016, Windows Server 2012 R2, Windows 7 Service Pack 1
Numero KB originale: 3181029

Sintomi

Configurazione

  • Si sta eseguendo un file server SMB, ad esempio Windows Server. Il server dispone di file e risorse configurati usando il nome NetBIOS, il nome di dominio completo DNS (FQDN) e il relativo alias (CNAME).
  • Si dispone di un client che esegue Windows 7, Windows Server 2008 R2 o una versione successiva di Windows.

Scenari

  • Quando un'applicazione o un utente usa il nome di archiviazione effettivo (nome NetBIOS o FQDN) per i file o altre risorse nel server che usa SMB, l'accesso ha esito positivo.

  • Quando un'applicazione o un utente usa l'alias CNAME per i file o altre risorse nel server che usa SMB e si tenta di connettersi a una condivisione nel file server con il relativo alias CNAME DNS. Ad esempio, si tenta di connettersi a una condivisione nel file server usando il relativo alias DNS CNAME:

    NET USE * \\CNAME\share_name
    

    In questo caso, si verificano i comportamenti seguenti:

    • L'accesso da un client Windows Server 2008 R2 o Windows 7 ha esito positivo.

    • L'accesso da un Windows Server 2012 R2, Windows 8.1 o una versione successiva del client Windows non riesce. In questo caso, viene visualizzato un messaggio di errore simile al seguente:

      Apri cartella

      \\uncpath non è accessibile. È possibile non disporre dell'autorizzazione per l'utilizzo di questa risorsa di rete. Contattare l'amministratore del server per sapere se si dispone dei permessi di accesso.

      Errore di accesso: il nome dell'account di destinazione non è corretto.

Causa

  • Se si usa Monitoraggio rete, Wire Shark o Microsoft Message Analyzer per esaminare la traccia di rete quando l'installazione della sessione SMB ha esito positivo, la sessione passa a TREE Connect.

    Tuttavia, se si esamina la traccia di rete quando l'installazione della sessione SMB non riesce, la sessione avrà esito negativo con un errore kerberos KRB_AP_ERR_MODIFIED. Ecco un esempio di richiesta di installazione della sessione SMB non riuscita in una traccia di rete:

    MessageNumber DiagnosisTypes Timestamp Source Destination Module Summary  
    112 None DateTime Client Server SMB2 Negotiate, Status: Success, 2780879Guid: {12f74af4-be82-11e5-b5c2-005056890096}, DialectRevision: SMB 2.  
    112 None DateTime Client Server SMB2 NegotiateRequest, Dialects: [SMB 2.0.2, SMB 2.1], Capabilities: , 2780879Guid: {12f74af4-be82-11e5-b5c2-  
    115 None DateTime Server Client SMB2 NegotiateResponse, Status: Success, DialectRevision: SMB 2.1, Capabilities: SMB2GlobalCapDfs|SMB2GlobalC  
    116 None DateTime Client Server SMB2 SessionSetup, Status: STATUS_MORE_PROCESSING_REQUIRED, Kerberos, Flags: 0  
    116 None DateTime Client Server SMB2 SessionSetupRequest, Kerberos, Flags: Unknown(0), PreviousSessionId: 0x0000000000000000  
    122 None DateTime Server Client SMB2 SessionSetupResponse, Status: STATUS_MORE_PROCESSING_REQUIRED, Kerberos, SessionId: 0x000004030800006D  
    135 None DateTime Client Server SMB2 SessionSetup, Status: STATUS_MORE_PROCESSING_REQUIRED, Kerberos, Flags: 0  
    135 None DateTime Client Server SMB2 SessionSetupRequest, Kerberos, Flags: Unknown(0), PreviousSessionId: 0x0000000000000000  
    143 None DateTime Server Client SMB2 SessionSetupResponse, Status: STATUS_MORE_PROCESSING_REQUIRED, Kerberos, SessionId: 0x000004030800006D
    

    In una richiesta di installazione della sessione SMB non riuscita, il client inoltra un NOME SPN CNAME non corretto. Il nome SPN potrebbe non essere corretto perché è registrato per un server precedente. Tuttavia, in una richiesta di installazione della sessione SMB riuscita, ad esempio nel caso del client Windows Server 2008 R2, il client inoltra il nome SPN per il nome del server effettivo.

  • Se il nome del file server è stato risolto tramite DNS, il client SMB aggiunge il suffisso DNS al nome fornito dall'utente. Ovvero, il primo componente del nome SPN sarà sempre il nome fornito dall'utente, come nell'esempio seguente:

    CNAME.contoso.com\share_name
    

    Nota

    Questo tentativo non riesce nelle implementazioni SMB precedenti (ad esempio AIX Samba 3.5.8), che non possono essere configurate per l'autenticazione Kerberos e non sono in ascolto della porta host diretta SMB 445, ma solo sulla porta NetBIOS 139.

  • Se il nome del file server è stato risolto tramite un altro meccanismo, ad esempio

    • Netbios
    • Risoluzione dei nomi multicast locale del collegamento (LLMNR)
    • Processi PNRP (Peer Name Resolution Protocol)

    il client SMB usa il nome fornito dall'utente, ad esempio quello seguente:

    CNAME\share_name
    

Risoluzione

Per risolvere questo problema in un file server che esegue il protocollo SMB versione 1, aggiungere il DisableStrictNameChecking valore al Registro di sistema:

Posizione del Registro di sistema: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
Nome DWORD: DisableStrictNameChecking
Valore DWORD: 1

Importante

Non usare CNAME DNS in futuro per i file server. Per assegnare nomi alternativi ai server, è possibile eseguire questa operazione con il comando seguente:
NETDOM COMPUTERNAME/ADD

Questo comando registra automaticamente i nomi SPN per i nomi alternativi.

Non è consigliabile risolvere questo problema per un file server non basato su Windows digitando i comandi seguenti in una finestra del prompt dei comandi con privilegi elevati in un computer basato su Windows. È necessario accedere con le credenziali di amministratore di dominio. Premere quindi INVIO al prompt dei comandi per registrare il nome SPN per il nome CNAME del dispositivo di archiviazione file server non basato su Windows:

SETSPN -a host/alias_name targetserver
SETSPN -a host/alias_name.contoso.com targetserver

Nota

Traccia di rete

Per raccogliere una traccia di rete, seguire questa procedura:

  1. Aprire una finestra del prompt dei comandi con privilegi elevati, digitare il comando seguente e quindi premere INVIO:

    netsh trace start NetConnection capture=yes maxsize=100 filemode=circular overwrite=yes traceFile=c:\%COMPUTERNAME%_Repro_trace.etl
    
  2. Eliminare tutte le connessioni di rete del file server esistenti eseguendo il comando seguente:

    NET USE * /DELETE
    
  3. Inizializzare la memorizzazione nella cache di tutti i nomi eliminando la cache esistente:

    1. Per eliminare la cache DNS, digitare il comando seguente e quindi premere INVIO:

      IPCONFIG /FLUSHDNS
      
    2. Per eliminare la cache NetBIOS, digitare il comando seguente e quindi premere INVIO:

      NBTSTAT /RR
      
    3. Per eliminare la cache Kerberos, digitare il comando seguente e quindi premere INVIO:

      KLIST /PURGE
      
    4. Per eliminare la cache ARP, digitare il comando seguente e quindi premere INVIO:

      ARP -d
      
  4. Provare a connettersi alla condivisione di rete digitando il comando seguente e quindi premendo INVIO:

    NET USE * \\server_name\share_name
    
  5. Per arrestare la traccia di rete in uno scenario non riuscito, digitare il comando seguente e quindi premere INVIO:

    netsh trace stop
    

Raccogliere le impostazioni del Registro di sistema

Per raccogliere le impostazioni del Registro di sistema nel file server, selezionare Avvia, selezionare Esegui, digitare il comando nella casella Apri e quindi selezionare OK. Ripetere questo passaggio per i comandi seguenti:

REG.EXE SAVE HKLM\SYSTEM C:\TEMP\%COMPUTERNAME%_SYSTEM.HIV
REG.EXE SAVE HKLM\SOFTWARE C:\TEMP\%COMPUTERNAME%_SOFTWARE.HIV
REG.EXE SAVE HKCU\Software C:\TEMP\%COMPUTERNAME%_HKCU.HIV

Nota

File di impostazione del Registro di sistema (. HIV) vengono salvati nella cartella TEMP nel file server.

Controllare le impostazioni del Registro di sistema

Controllare le impostazioni dei valori del Registro di sistema seguenti nel file server:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters\SmbServerNameHardeningLevel
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanServer\Parameters\DisableStrictNameChecking

Applicare hotfix (server e client)

Per Windows 7 e Windows Server 2008 R2, applicare l'aggiornamento rapido di Windows 7 Enterprise seguente:

È disponibile un aggiornamento rapido aziendale per Windows 7 SP1 e Windows Server 2008 R2 SP1

Inoltre, applicare gli hotfix seguenti:

Riferimenti

Dichiarazione di non responsabilità sulle informazioni di terze parti

I prodotti di terzi citati in questo articolo sono prodotti da società indipendenti da Microsoft. Microsoft non rilascia alcuna garanzia implicita o esplicita relativa alle prestazioni o all'affidabilità di tali prodotti