有许多消息来源称 %SERVERROOT%/inetpub/ 绝不能被删除或移动。是的,我同意这一点,因为 IIS 的更新会盲目地更新该目录 —— 它们实际上不会查询系统以查看 IIS inetpub 目录是否托管在其他地方。
但是,人们总是可以离开该目录,只需将网站托管在其他地方即可——人们总是可以将任何网站的 HTTP 根目录设置为系统上的任何位置,尤其是另一个驱动器上的位置。这尤其使目录遍历攻击变得更加困难。
话虽如此,有没有人成功移动了 inetpub 目录并将其保留在原处?具体来说,我希望将整个 inetpub 目录物理移动到 D:\,然后创建从 C:\inetpub\ 到 D:\inetpub 的符号链接。我想知道是否有其他人这样做过,以及符号链接(具体来说是硬链接,/J)是否成功。
目标系统是 Windows 8,1 上的 IIS。最终目标将是 Win2K12R2 或 Win2k16 上的 IIS(如果它在我们的服务器重建之前掉线)。
答案1
无需创建符号链接。您可以将所有站点移动到另一个驱动器并直接从 IIS 更改路径,或者通过 cmd 行(注册表编辑)更改路径 - 请参阅消息末尾的链接以了解如何操作。
唯一的问题是原始目录必须保留,否则下一次尝试更新该位置某些文件的 KB 更新将会失败。当然,需要这样做的 KB 更新的概率非常非常低。
关联:http://blogs.iis.net/thomad/moving-the-iis7-inetpub-directory-to-a-different-drive
编辑:忘记回答你关于符号链接的问题了,它是否有效。如果你认为 Windows 中的符号链接与 Unix 中的符号链接工作方式相同 - 正如我自己所期望的,并且 MSDN 文章也指出了这一点(请参阅我的第一条评论中的链接),那么你就大错特错了。在 Unix 中,你可以欺骗你的 Web 服务器遵循符号链接,但在 Windows 中,IIS 不会遵循。不过,还有另一种解决方案 - 请参阅我第二条评论中的链接。
抱歉发布这样的链接,但这个很棒的网站不允许我在评论中包含超过 2 个 URL 链接......