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

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

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

我只是重命名所有的文件中的一个+ ,但安装程序正在期待某些文件名,所以我们需要保留原来的命名scheme。 由于我们的networking环境是如何设置的,我们不能直接控制分发点服务器,所以我们不能对IIS进行任何修改,以允许在URL中使用+符号。

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

我想过以下解决方法,但希望find一个更优雅的解决scheme,不需要用+符号手动调整任何包:

  • 把整个东西放在一个自解压zip / 7z文件,并从分发点下载
  • 将所有files+with+plusses重命名,然后在安装batch file下载到本地caching后手动将它们更改回原始名称

有没有解决scheme可以解决问题,而不是解决问题?

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

完全取决于你如何定义“问题”。 正如我所看到的那样,“问题在于”有人认为在软件的文件path中包含特殊字符是一个好主意,尽pipe这样做不好。 (他并不孤单,如果它让你感觉更好或者更糟)。因此,你不能只将这些path传递给IIS,因为它默认情况下拒绝具有某些字符的path,作为安全措施防止恶意制作的url)。

在一般情况下,可能的“修复”不涉及重命名文件,是在应用程序的webconfiguration中禁用此安全function(允许双重转义)。 但是,因为这会让你容易受到恶意制作的url的攻击,所以我不确定我是否认为这是一个修复,而是一个解决scheme,附带一个很大的安全漏洞。 既然你不能这样做,反正它在很大程度上是学术的。

您的基本选项是更改IIS设置,以允许path包含+ ,或以某种方式删除/混淆path中的+ 。 既然你无法做到前者,你留下的唯一select就是后者。 从这个麻烦的应用程序中创build一个自解压文档听起来像是自动化会更容易,所以这就是我所要做的。