简单的方法将300多个IIS站点移动到新的应用程序池?

我有一个(约300)IIS服务器上的网站需要被移动到一个新的应用程序池。 我可以通过编程方式使用C#DirectoryEntry类,但是我想知道是否有更简单的方法?

ADSUtil.VBS在这里是你的朋友。 您可以使用它来获取系统上所有站点的列表(为了获得正确的结果,您必须编辑一下),然后设置站点的应用程序池。

cscript adsutil.vbs enum /P /w3svc/ 

会给你一个你的服务器上的所有path列表,如下所示:

 [/w3svc/1] [/w3svc/2] [/w3svc/608728754] [/w3svc/608728755] [/w3svc/87257621] [/w3svc/AppPools] [/w3svc/Filters] [/w3svc/Info] 

以数字结尾的任何内容都是一个网站。 在过滤该列表之后,可以将其用作另一个adsutil.vbs命令的input:

 cscript adsutil.vbs set W3SVC/<number>/ROOT/AppPoolId <NewAppPoolName> 

这会将<number>指定的网站的应用程序池更改为<NewAppPoolName>指定的<NewAppPoolName> – 此应用程序池必须已经存在。

如果你已经在讨论使用C#来做这件事,用你最喜欢的语言编写一个包装器应该是非常简单的。

另外,如果您不熟悉,adsutil.vbs通常存在于c:\inetpub\adminscripts\

Programmin,克绝对。 没有什么容易 你检查了http://www.iis.net/的脚本部分吗&#xFF1F; Powershell也出现在我的脑海里

我根据另一个答案写了一个小工具。 您可以根据正则expression式匹配池和网站,并将它们平分。 你可以在这里下载: http : //www.netfuelinteractive.com/iis-application-pool-tools.aspx

我写了一个小工具。 您可以根据正则expression式匹配池和网站,并将它们平均分配。 你可以在这里下载: http : //www.netfuelinteractive.com/iis-application-pool-tools.aspx