编辑: IIS6 ;我不确定IIS7在不久的将来是不是一个选择......
从开发人员的角度来看,我不断更改我的IIS设置,或者需要将其他团队的设置合并到不同的VM中。 “将配置保存到磁盘”对我来说从未真正起作用。
因为我们正在进行大量的小改动,所以网络安装项目从未真正发挥作用......针对网络管理员的工具不一定非常适合开发人员 - 我们有不同的目标和需求。
是否有人有脚本/工具/实用程序可以让我们快速配置IIS?特别是:
从一些平面输入列表中找到(任何格式都可以)。
答案 0 :(得分:11)
我可以想到三个选项......
我认为如果我需要这样做,我会使用Powershell,或者将所有需求全部删除,并创建一个基本的VM安装,其中已经配置了所有基础知识。当我完成了teasting时我会只需回滚硬盘并可以自由再次使用。
答案 1 :(得分:4)
使用IIS administration snapin的PowerShell?
答案 2 :(得分:4)
我在节目中有点迟了但是我认为这个PowerShell脚本很有用,请注意我只将它用于我的本地开发盒,所以为神奇的数字道歉。
AuthFlags = 4是集成授权
它并不完全符合Marc的要求,但它是一个良好的开端。
如果您下载WMI Tools,可以使用它们来浏览IIS元数据库的WMI界面。
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
答案 3 :(得分:1)
Powershell会起作用。如果您想避免依赖,您还可以生成一个针对AdsUtil.vbs运行的脚本。
可能更容易标准化IIS7,其中所有这些东西都存在于web.config文件中,使生活更轻松。
答案 4 :(得分:1)
您可能需要查看IIS的Metabase XML配置文件并允许直接编辑。
答案 5 :(得分:1)
可能会或可能不会帮助但退房 http://rprieto.github.com/psDeploy/iis-6-cmdlets.html