Windows 服务器,临时别名,仅在一台机器上可见

Windows 服务器,临时别名,仅在一台机器上可见

两周前,我们的 IT 部门将一个巨大的网络文件夹从旧服务器迁移到新服务器。例如,旧文件夹在

 \\oldserver\ourfolder

和新的

 \\newserver\ourfolder

请注意,旧服务器仍在使用中,并在我们公司的网络中可见,\\oldserver\ourfolder已被存档并从服务器中删除。

现在我们发现有几个文件(实际上是一些专有二进制格式的 CAD 文件)具有指向旧文件夹位置的硬编码引用。由于有多个这样的文件,我们想编写一个程序来将这些引用更改为新位置。不幸的是,CAD 系统的 VBA 解释器仅在引用的文件在旧网络路径下可见时才允许这样做。否则,它将停止执行并显示错误消息

因此,我们这里需要一种方法来将“oldserver”设为“newserver”的别名。这应该只是暂时的,并且只适用于一台机器(Windows 7 客户端),所以我们的第一个想法是使用和hosts文件lmhosts来实现这一点。但这显然行不通。我们添加了一行形式

   <new.server.ip.address> oldserver

到 hosts 文件和

   <new.server.ip.address> oldserver #PRE

到 lmhosts 文件。ping oldserver然后显示新的 IP 地址,但这对共享网络文件夹没有任何影响,例如由 Windows 资源管理器或其他应用程序(如我们的 CAD 应用程序)显示的文件夹。

我们尝试的第二件事是在本地计算机上设置一个独立的 DNS 服务器,旧服务器指向新服务器的 IP 地址,并使用“127.0.0.1”作为首选 DNS(不,我们没有忘记通过 刷新 DNS 缓存ipconfig /flushdns)。此后,nslookup oldserver显示新服务器的预期 IP 地址,但 Windows 资源管理器仍会在其名称下看到旧服务器。

我猜想这与 WINS 以及 NetBIOS 名称解析的工作方式有关,但我不知道还能尝试什么。

注意这是关于方式一个客户看到网络,所以我认为这一定是可能的不要对相关服务器进行任何更改,仅限客户端。

答案1

尝试在以下注册表项中新闻服务器

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

若未设置,出于安全原因,您的文件服务器将不会在不是自己的 DNS 名称上提供文件内容。

编辑:我也要在 Windows 7 上停用 WINS/NetBios,因为它会绕过您的本地主机文件/nslookup。nslookup 检查 DNS/主机文件,如果资源管理器显示错误内容,则计算机会得到 WINS 的答复。

相关内容