为什么我不能在本地机器上访问pipe理共享?

我正在创build一个作为CI /部署testing环境的Windows Server 2008 R2(x64)VirtualBox映像。 我有VirtualBox设置为使用内部networking。 我已经为我的生产机器/数据库的名称设置了主机文件redirect:

127.0.0.1 webserv1 127.0.0.1 webserv2 127.0.0.1 dbserv1 etc. 

然后我的部署脚本会依次尝试部署到每个地址。

我的问题是,当我尝试点击\\webserv1\d$\deployment-directory ,甚至\\webserv1\d$\ ,我得到一个授权提示,并被拒绝访问。 我在VirtualBox控制台上以pipe理员身份运行; 我无法再获得授权。 我可以打到\\127.0.0.1\d$\deployment-directory

我甚至禁用networking适配器,以确保我没有打到真正的生产箱(我证实,我仍然可以在该条件下使用本机打本地主机)。

有小费吗?

这最终与名称parsing和权限有关。 详细信息可以在这篇文章中find: http : //forums.techarena.in/server-networking/1195474.htm

基本上有几个registry项必须创build才能启用此configuration – 开箱Windows不支持它。


从现在不存在的网站(通过WebArchive )复制和粘贴:


允许其他机器通过DNS别名使用文件共享(DisableStrictNameChecking)

单单这一改变将允许networking上的其他机器使用任意的主机名连接到机器。 (但是,这种更改不允许计算机通过主机名连接到自己,请参阅下面的BackConnectionHostNames)。

  • 编辑registry项HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet \Services\lanmanserver\parameters ,并将DWORDtypes的值DisableStrictNameChecking设置为1。

允许服务器机器通过DNS别名使用文件共享(BackConnectionHostNames)

这个改变对于DNS别名来处理来自机器的文件共享来发现它自己是必需的。 这将创build可以在NTLM身份validation请求中引用的本地安全机构主机名称。

为此,请按照下列步骤在客户端计算机上的所有节点:

  1. 到registry子项HKEY_LOCAL_MACHINE\SYSTEM \CurrentControlSet\Control\Lsa\MSV1_0 ,添加新的多string值BackConnectionHostNames
  2. 在数值数据框中,键入用于计算机上本地共享的CNAME或DNS别名,然后单击确定。
    注意:在一个单独的行上键入每个主机名称。

为多个NetBIOS名称(OptionalNames)提供浏览function

允许在networking浏览列表中查看networking别名。

  1. 编辑registry项HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet \Services\lanmanserver\parameters并添加一个值OptionalNamestypes的OptionalNames
  2. 添加应在NetBIOS浏览条目下注册的名称的换行符分隔列表
    名称应符合NetBIOS约定(即不是FQDN,只是主机名)

注册其他Windowsfunction的Kerberos服务主体名称(SPN),例如打印(setspn)

注意:不应该这样做的基本function的工作,在这里logging的完整性。 我们有一种情况,DNS别名不工作,因为有一个旧的SPNlogging干扰,所以如果其他步骤不起作用检查是否有任何杂散的SPNlogging。

您必须为所有新的DNS别名(CNAME)logging注册Kerberos服务主体名称(SPN),主机名称和完全限定的域名(FQDN)。 如果您不这样做,Kerberos票证请求的DNS别名(CNAME)logging可能会失败并返回错误代码KDC_ERR_S_SPRINCIPAL_UNKNOWN。

要查看新的DNS别名logging的Kerberos SPN,请使用Setspn命令行工具(setspn.exe)。 Windows Server 2003支持工具中包含Setspn工具。 您可以从Windows Server 2003启动盘的Support \ Tools文件夹安装Windows Server 2003支持工具。

如何使用该工具列出计算机名的所有logging:

 setspn -L computername 

要为DNS别名(CNAME)logging注册SPN,请使用以下语法的Setspn工具:

 setspn -A host/your_ALIAS_name computername setspn -A host/your_ALIAS_name.company.com computername