Нужно следить за пулами приложений вашего веб-сервера IIS? Вот руководство по созданию пула приложений в IIS с помощью PowerShell.
Куда обратиться, когда у вас под управлением ферма веб-серверов IIS с потенциально десятками или сотнями пулов приложений? Конечно же, к скриптам PowerShell! Используя модуль управления веб-сервером PowerShell, который устанавливается как часть IIS, и немного PowerShell remoting, вы можете легко создавать, изменять и удалять пулы приложений по вашему желанию.
Давайте рассмотрим несколько примеров того, как это можно сделать.
Если вы никогда не использовали PowerShell для управления вашими серверами IIS раньше, вашим первым желанием может быть поиск ComputerName
в большинстве командлетов. К сожалению, это не так.
Для удаленного управления серверами IIS нам приходится использовать PowerShell remoting с помощью командлета Invoke-Command
. Хотя это и не является неразрешимой проблемой, это делает код немного более многословным, чем мог бы быть. Это не должно отпугивать вас от управления удаленными серверами IIS с помощью PowerShell, но это больше информация для вас.
Связано: Invoke-Command: лучший способ запуска удаленного кода
I know I was pretty frustrated the first time I tried this and didn’t see that familiar ComputerName
parameter on many of the cmdlets.
ПРИМЕЧАНИЕ: В дальнейшем мы будем создавать код для ввода в скриптблок. Затем мы будем использовать
Invoke-Command
для выполнения этого скриптблока на удаленном сервере IIS.
Вывод пулов приложений IIS с помощью PowerShell
Для управления пулами веб-приложений нам сначала нужно импортировать модуль WebAdministration.
Это привносит все cmdlet’ы IIS, а также создает IIS-диск. Здесь будет выполняться большая часть конфигурации пула приложений. Давайте сначала проверим, существуют ли уже какие-либо пулы приложений.
Создание новых пулов приложений IIS с помощью PowerShell
Похоже, у меня уже есть один, названный GHI. Возможно, мне захочется создать еще один. Использование IIS-диска делает это очень простым. Просто используйте New-Item
и укажите путь.
Инспекция и изменение свойств пула приложений
I’ve now created a new app pool. We can then check all of the properties on that app pool using Get-ItemProperty
and select all of the properties it returns with Select-Object
. This will return all of the property names and values so you can get figure out which ones you need to modify with Set-ItemProperty
.
Теперь, когда у вас есть пул приложений и вы видите его свойства, давайте изменим одно из свойств. Возможно, мне захочется использовать определенную версию .NET Runtime с этим пулом приложений. Снова, используя IIS-диск, я могу использовать Set-ItemProperty
, чтобы управлять пулами приложений, так же как я могу управлять файловой системой, реестром, сертификатами и всеми остальными вещами, которые имеют PowerShell-диск.
Используя Set-ItemProperty
, вы можете изменять практически все свойства пула приложений.
Удаление пулов приложений с помощью PowerShell
Наконец, мы закончили с нашим пулом приложений и теперь нужно его удалить. В этот раз у нас есть встроенный cmdlet PowerShell с именем Remove-WebAppPool
. Просто укажите имя, и его не станет!
Весь этот код, который мы использовали, выполнялся локально, но что, если вам нужно запустить его на удаленном сервере IIS? Вот где вступает в игру удаленное управление PowerShell. Для этого нам просто нужно упаковать весь этот код в скриптблок, а затем использовать Invoke-Command
для его выполнения на удаленном сервере.
Хотя этот код не очень функционален, он создаст новый пул приложений с именем MyAppPool, установит свойство и затем удалит его. Обратите внимание, что я использую переменную $using
. Поскольку код в скриптблоке будет выполняться на удаленном компьютере, это необходимо для раскрытия этой переменной PowerShell и использования фактического значения $appPoolName
, которое было объявлено локально на нашем клиентском компьютере.
Если вы хотите узнать больше об управлении IIS в общем, загляните на страницу Администрирование IIS в Technet. Там вы найдете все cmdlet’ы, включенные в модуль WebAdministration, и как их использовать.