配置 SCCM,以便可以从分发点下载文件名中带有加号 (+) 的文件

配置 SCCM,以便可以从分发点下载文件名中带有加号 (+) 的文件

我们正在使用 Microsoft SCCM 2007 在我们的网络环境中部署程序包。其中一个包(MathType,如果有人好奇的话)有很多文件名+中带有加号。

当软件包下载到客户端计算机时,文件会通过 http 从分发点服务器提取。分发点运行 IIS,它不处理+URL 中的符号。结果是 SCCM 客户端从服务器收到 404,无法完成下载或安装软件包。

我只想重命名所有带有 的文件,但安装程序需要某些文件名,因此我们需要保留原始命名方案。由于我们的网络环境设置方式,我们无法直接控制分发点服务器,因此我们无法对 IIS 进行任何允许URL 中出现符号的+修改。+

我们如何+在不破坏 SCCM 的情况下分发包含带符号的文件的软件包?

我已经想到了以下解决方法,但想找到一个更优雅的解决方案,不需要手动调整任何带有+符号的包:

  • 将整个内容放在一个自解压的 zip/7z 文件中,然后从分发点下载
  • 将所有文件重命名为files+with+plussesfiles_with_plusses然后在下载到本地缓存后,在安装批处理文件中手动将其更改回原始名称

有没有一种解决方案可以真正解决问题,而不是绕过它?

答案1

Is there a solution that actually fixes the problem, rather than working around it?

完全取决于您如何定义“问题”。在我看来,“问题”是有人认为在他的软件文件路径中包含特殊字符是个好主意,尽管这样做是个坏主意。(他并不孤单,如果这能让您感觉好一点……或者更糟的话。)因此,您不能将这些路径传递给 IIS,因为它默认拒绝包含某些字符的路径,作为一种安全措施(以防止恶意制作的 URL)。

在一般情况下,一个可能的“修复”方法是禁用应用程序 Web 配置中的此安全功能(允许双重转义),而无需重命名文件。但由于这会使您容易受到恶意制作的 URL 的攻击,我不确定我认为这是否是一种修复,而是一种带有巨大安全漏洞的变通方法。由于您无法做到这一点,因此无论如何它基本上只是学术性的。

您的基本选择是更改 IIS 设置以允许包含 的路径+,或者以某种方式删除/模糊+路径中的 。由于您无法执行前者,因此您剩下的唯一选择就是后者。不管怎样,从麻烦的应用程序中创建自解压存档听起来更容易实现自动化,所以我会选择这样做。

相关内容