IIS压缩:使用Powershell启用GZIP和DEFLATE

如何使用PowerShell在IIS 5.1 / 6.0中执行以下操作:

  • 启用HTTP压缩
  • 设置GZIP和DEFLATE文件扩展名
  • 为GZIP和DEFLATE启用dynamic和静态压缩
  • 设置压缩级别

任何指向这个教程的指针将不胜感激,因为我还没有遇到任何解释如何以编程方式做到这一点。

使用PowerShell的最初攻击行是使用WMI。 不幸的是,root \ MicrosoftIisV2命名空间是用非标准的安全设置来设置的,你不能在PS中修改(不在V1中,至lessV2可能不同)。

我会build议看看IIS ADSI提供程序,特别是IIsCompressionScheme对象 – http://msdn.microsoft.com/en-us/library/ms524574.aspx

您可以通过操作在PowerShell中使用它

$obj = [ADSI]"IIS://MachineName/W3SVC/Filters/Compression/Scheme" 

然而,ADSI是非常邪恶的,所以你会有一个相当陡峭的学习曲线。

元数据库资源pipe理器允许您设置这些值。 您可以通过链接到IISMbLib.dll自动化设置值,作为我的一篇文章StackOverflow解释 。

你可以做一些类似的事情,或者像owenevans00所说的那样使用ADSI命名空间。