Developer tool for configuring IIS6
编辑:iis6;我不确定iis7是否是近期的选择…
从开发人员的角度来看,我一直在更改我的IIS设置,或者需要将其他团队的设置合并到不同的虚拟机中。"将配置保存到磁盘"对我来说从来没有真正的效果。
因为我们做了很多小改动,Web安装项目也从来没有真正工作过…针对网络管理员的工具不一定适合开发人员——我们有不同的目标和需求。
是否有任何人拥有允许我们快速配置IIS的脚本/工具/实用程序?特别地:
- 移除所有东西(开始清理)
- 添加一个虚拟目录负载,每个目录映射到应用程序基路径
- 设置为应用程序
- 设置应用程序池(我们假设应用程序池已经存在)
- 如果需要,将ASP.NET版本设置为2.x
从平面输入列表的一些发现(任何格式都可以)。
我可以想出三个办法…
我认为如果我需要这样做,我将使用PowerShell,或者一起删除所有的需求,并创建一个基本的VM安装,其中已经配置了所有的基础知识。当我玩完戏弄后,我只需回滚硬盘驱动器就可以自由地再去了。
我有点晚了,但我认为这个PowerShell脚本很有用,请注意,我只在本地开发框中使用这个脚本,所以对这些神奇的数字深表歉意。
AuthFlags=4是集成授权
这并不能完全满足马克的要求,但这是一个良好的开端。
如果下载了WMI工具,则可以使用它们来探索到IIS元数据库的WMI接口。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | function CreateAppPool($poolName,$userName,$password) { [wmiclass] $appPoolSettings ="root\MicrosoftIISv2:IISApplicationPoolSetting"; $newPool = $appPoolSettings.CreateInstance(); $newPool.Name ="W3SVC/AppPools/" + $poolName; $newPool.WAMUsername = $userName; $newPool.WAMUserPass = $password; $newPool.AppPoolIdentityType = 3; $newPool.Put(); # Do it again if it fails as there is a bug with Powershell/WMI if (!$?) { $newPool.Put(); } } function CreateWebsite($webSiteName, $path, $port, $appPoolName) { [wmiclass] $bindingClass = 'root\MicrosoftIISv2:ServerBinding'; $bindings = $bindingClass.CreateInstance(); $bindings.Port = $port; $webService = Get-WmiObject -namespace"root\MicrosoftIISv2" -class"IIsWebService"; $webSite = $webService.CreateNewSite($webSiteName, $bindings, $path); [int] $index = $webSite.ReturnValue.IndexOf("'") + 1; [int] $length = $webSite.ReturnValue.Length - $index - 1; [string] $websiteID = $webSite.ReturnValue.SubString($index, $length) +"/root"; $webVirtualDirSetting = Get-WmiObject -namespace"root\MicrosoftIISv2" -class"IIsWebVirtualDirSetting" | Where-Object {$_.Name -eq $websiteID}; $webVirtualDirSetting.AppFriendlyName = $webSiteName; $webVirtualDirSetting.AppPoolId = $appPoolName; $webVirtualDirSetting.AccessFlags = 517; $webVirtualDirSetting.AuthFlags = 4; $webVirtualDirSetting.Put(); #Switch the Website to .NET 2.0 C:\windows\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -sn W3SVC/ } $webSiteName ="MyWebsiteName"; $webSitePath ="C:\MyWebsitePath"; $webSitePort ="9001"; $appPoolName ="MyWebsitePool"; $appPoolIdentity ="MYDESKTOP\MyWebsiteIdentity"; $appPoolPassword ="MyWebsitePassword"; CreateAppPool $appPoolName $appPoolIdentity $appPoolPassword CreateWebsite $webSiteName $webSitePath $webSitePort $appPoolName |
带IIS管理单元的PowerShell?
可能会,也可能不会,但退房http://rprieto.github.com/psdeploy/iis-6-cmdlets.html
您可能需要查看IIS的元数据库XML配置文件并允许直接编辑。
PowerShell可以工作。如果您想避免依赖关系,还可以生成一个脚本来针对adsutil.vbs运行。
可能更简单的方法是在iis7上实现标准化,在iis7中,所有这些东西都保存在web.config文件中,从而使生活更加轻松。