У меня есть тонна (около 300) сайтов IIS на сервере, которые нужно переместить в новый пул приложений. Я мог бы сделать это программно, используя класс C # DirectoryEntry, но мне интересно, есть ли более простой способ?
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\
Программирование определенно. Нет ничего проще. Вы проверили раздел сценариев на http://www.iis.net/? Мне тоже приходит в голову Powershell ...
Я написал небольшой инструмент на основе другого ответа. Вы можете сопоставить пулы и сайты на основе регулярного выражения, и оно разделит их поровну. Вы можете скачать это здесь: http://www.netfuelinteractive.com/iis-application-pool-tools.aspx
Я написал для этого небольшой инструмент. Вы можете сопоставить пулы и сайты на основе регулярного выражения, и оно разделит их поровну. Вы можете скачать это здесь: http://www.netfuelinteractive.com/iis-application-pool-tools.aspx