有谁知道如何使用Powershell创build一个“拒绝文件扩展名”规则,以便某些文件不会由IIS提供?
例如,我想设置一个规则来拒绝所有.txt文件被IIS提供服务。
谢谢
这个怎么样:
[Reflection.Assembly]::Load( "Microsoft.Web.Administration, Version=7.0.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35") > $null $serverManager = New-Object Microsoft.Web.Administration.ServerManager # Default Web Site $siteId = 1 $site = $serverManager.Sites | where { $_.Id -eq $siteID } # # Sets the filter in the site's web.config # $config = $site.GetWebConfiguration() $requestFilteringSection = ` $config.GetSection("system.webServer/security/requestFiltering") # # Or delete last two lines and use next two instead to set in applicationHost.config # # $config = serverManager.GetApplicationHostConfiguration(); # $requestFilteringSection = ` $config.GetSection("system.webServer/security/requestFiltering", $site.Name); $fileExtensionsElement = ` $requestFilteringSection.GetChildElement("fileExtensions") $fileExtensionsCollection = $fileExtensionsElement.GetCollection() $addElement = $fileExtensionsCollection.CreateElement("add") $addElement["fileExtension"] = ".txt" $addElement["allowed"] = $false $fileExtensionsCollection.Add($addElement) $serverManager.CommitChanges()
你也可以使用appcmd.exe :
在站点web.configconfiguration:
appcmd.exe set config "Default Web Site" -section:system.webServer/security/requestFiltering /+"fileExtensions.[fileExtension='.txt',allowed='False']"
或者在applicationHost.configconfiguration:
appcmd.exe set config "Default Web Site" -section:system.webServer/security/requestFiltering /+"fileExtensions.[fileExtension='.bong',allowed='False']" /commit:apphost