我的服务器上有大量(大约 300 个) IIS 站点需要移动到新的应用程序池。我可以使用 C# DirectoryEntry 类以编程方式完成此操作,但我想知道是否有更简单的方法?
答案1
ADSUtil.VBS 是您的好朋友。您可以使用它来获取系统上所有站点的列表(您必须对其进行一些编辑才能获得正确的结果),并为站点设置应用程序池。
cscript adsutil.vbs enum /P /w3svc/
将为您提供服务器上所有路径的列表,如下所示:
[/w3svc/1]
[/w3svc/2]
[/w3svc/608728754]
[/w3svc/608728755]
[/w3svc/87257621]
[/w3svc/AppPools]
[/w3svc/Filters]
[/w3svc/Info]
以数字结尾的任何东西都是网站。过滤该列表后,您可以将其用作另一个 adsutil.vbs 命令的输入:
cscript adsutil.vbs set W3SVC/<number>/ROOT/AppPoolId <NewAppPoolName>
这会将指定的网站的应用程序池更改为<number>
指定的任何内容<NewAppPoolName>
- 此应用程序池必须已经存在。
如果您已经在谈论使用 C# 来执行此操作,那么用您最喜欢的语言编写一个包装器应该非常简单。
另外,如果您不熟悉它,adsutil.vbs 通常存在于c:\inetpub\adminscripts\
答案2
编程,绝对是。没有什么比这更容易的了。你检查过脚本部分了吗?http://www.iis.net/?我还想到了 Powershell...
答案3
我根据另一个答案编写了一个小工具。您可以根据正则表达式匹配池和站点,它会将它们均匀划分。您可以在此处下载:http://www.netfuelinteractive.com/iis-application-pool-tools.aspx
答案4
我为此编写了一个小工具。您可以根据正则表达式匹配池和站点,它会将它们均匀划分。您可以在此处下载:http://www.netfuelinteractive.com/iis-application-pool-tools.aspx