我们正在使用Microsoft SCCM 2007在我们的网络环境中部署程序包.其中一个软件包(MathType,如果有人好奇的话)有很多带有加号的文件名.
将程序包下载到客户端计算机时,将通过http从分发点服务器中提取文件.分发点运行IIS,它不处理URL中的标记.结果是SCCM客户端从服务器接收404,并且无法完成下载或安装包.
我只是用它们重命名所有文件,但安装程序期望某些文件名,所以我们需要保留原始命名方案.由于我们的网络环境如何设置,我们无法直接控制分发点服务器,因此我们无法对允许URL中的符号的IIS进行任何修改.
我们如何在不破坏SCCM的情况下分发包含符号文件的包?
我已经考虑过以下变通方法,但是想找到一个更优雅的解决方案,不需要手动调整任何包含符号的包:
>将整个内容放入自解压zip / 7z文件中,然后从分发点下载
>将带有plusses的所有文件重命名为files_with_plusses,然后在将它们下载到本地缓存后手动将它们更改回安装批处理文件中的原始名称
是否有解决方案可以解决问题,而不是解决问题?
原文链接:/windows/366272.html完全取决于你如何定义“问题”.在我看来,“问题”是有人认为在他的软件的文件路径中包含特殊字符是个好主意,尽管这样做是个坏主意. (他并不孤单,如果它让你感觉更好……或更糟.)因此,你不能只将这些路径传递给IIS,因为它默认拒绝具有某些字符的路径,作为安全措施(至防止恶意制作的网址.
在一般情况下,不需要重命名文件的可能“修复”是在应用程序的Web配置中禁用此安全功能(允许双重转义).但是,由于这会使您容易受到恶意制作的网址的攻击,我不确定我是否认为这是一个修复程序,而是一个附带大安全漏洞的解决方法.既然你不能这样做,那么无论如何它主要是学术性的.
您的基本选项是更改IIS设置以允许路径包含,或以某种方式删除/混淆路径中的路径.既然你无法做到前者,你唯一的选择就是后者.对于它的价值,从麻烦的应用程序中创建一个自解压存档听起来更容易自动化,所以这就是我要去的.