通过 FQDN 进行 Windows 文件共享

通过 FQDN 进行 Windows 文件共享

我公司目前正在将代码中的所有别名或 IP 引用替换为 FQDN。任何具有 IP 或计算机名称的内容都将被替换为 fileserver.example.com、databaseserver.example.com 等。

此过程适用于数据库连接、Web 服务引用、API 引用。我们遇到的问题是通过 UNC 路径进行文件共享访问。通过这样的 UNC 路径访问文件\\fileserver.example.com\path\to\files不起作用在某些情况下

在某些情况下是这里的重点部分。

在以下情况下可以成功访问 UNC 路径

  1. 当通过 Windows 资源管理器使用 FQDN 路径手动查看时。
  2. 当运行访问文件的进程时,不使用 FQDN,而是使用计算机名称 ( \\COMPUTER_NAME\path\to\files)。

在以下情况下无法访问 UNC 路径

  1. 当运行访问使用 FQDN () 的文件的进程时\\fileserver.example.com\path\to\files

我收到以下错误消息。

Logon failure: unknown user name or bad password.

该错误消息让您相信这是一个访问问题,但我不认为是这样,因为运行该过程的服务用户可以使用路径中的 COMPUTER_NAME 访问该文件,并且该文件指向与 FQDN 相同的位置。

有人有遇到过这个问题吗?

FQDN 是否甚至应该用于通过 UNC 路径访问文件共享?

答案1

在阅读 Claytons 的帖子并查看事件查看器中的安全日志后,我们意识到只有当计算机尝试访问具有 UNC 路径的文件时才会出现此问题指向自己

这让我想到环回检查在 microsoft.com 上的以下文章中有记录。 https://blogs.technet.microsoft.com/sharepoint_foxhole/2010/06/21/disableloopbackcheck-lets-do-it-the-right-way/

我们用了方法 1:指定主机名(如果需要 NTLM 身份验证,则为首选方法)

  1. 在注册表中禁用 DisableStrictNameChecking

  2. 在注册表中输入fileserver.example.comBackConnectionHostNames

答案2

当您使用短名称时,它会恢复使用 NTLM 身份验证。但是使用 FQDN 时,它必须使用 Kerberos 身份验证。问题是要使 Kerberos 正常工作,您需要一个 DNS 名称和一个您缺少的 SPN(服务主体名称)。您有 2 个选择:

选项 1:保留别名并通过在服务器上创建以下注册表项来禁用 Windows 的“严格名称检查”功能。还需要重新启动。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
DWORD name: DisableStrictNameChecking
DWORD value: 1

选项 2:删除别名,并通过 Windows 创建一个“备用”名称,该名称还将创建一个 Kerberos 服务主体名称,以便备用名称对于 Kerberos 身份验证有效。

NETDOM NEWNAME /ADD

将 NEWNAME 替换为您之前创建的别名的 FQDN。这应该从将为别名提供服务的实际服务器运行。

https://support.microsoft.com/en-us/help/3181029/smb-file-server-share-access-is-unsuccessful-through-dns-cname-alias

答案3

开始研究这个问题,因为它看起来很有趣。我开始在不同的环境中使用域的 FDQN 进行浏览(我在 MSP 工作,因此可以访问相当多的域)。

简而言之,我经历了一些我以前从未真正看到/注意到的事情。使用域的 FDQN 通过 Windows 资源管理器进行浏览将显示文件共享根文件夹,但没有其他内容。使用 IP/计算机名称进行浏览将显示相同的共享,并按应有的方式显示共享内的文件夹/文件。

谷歌搜索了一下,找到了这个

当我通过 UNC 浏览我的 Windows 域名时会发生什么?

它确实部分回答了您的问题和原因,但并不完全符合您的问题。

我个人认为,通过 DFS 实现文件共享将允许您使用命名空间(类似于 FDQN 的概念),并且当引入退役\实现新的文件服务器时,这意味着您不需要重构代码来指向新的服务器名称文件服务器。

它还应该可以绕过您遇到的问题。

希望这可以帮助。

DFS 概述 https://en.wikipedia.org/wiki/Distributed_File_System_(Microsoft)

相关内容