Командлеты PowerShell iisAdministration

Барис Каглар

Совместимость

Версия Примечания
IIS 10.0 Командлеты PowerShell IISAdministration появились в IIS 10.0. Последняя версия IISAdministration поддерживается в коллекции PowerShell.
IIS 8.5 и более ранние версии Командлеты PowerShell iisAdministration не поддерживались до версии IIS 10.0. Однако пользователи могут установить его с помощью коллекции PowerShell.

Ознакомьтесь iis.net , чтобы узнать, как получить последнюю версию IISAdministration.

Общие сведения о IISAdministration

В Windows 10 и Windows Server 2016 команда IIS выпускает новый упрощенный IISAdministration модуль параллельно с существующими WebAdministration командлетами. Решение о выпуске совершенно нового модуля командлета PowerShell стоит по многим причинам, и вот несколько из них:

  • IISAdministration будет лучше масштабироваться в сценариях, выполнение которым занимает много времени с WebAdministrationпомощью .
  • Теперь вы можете получить прямую ссылку на экземпляр Microsoft.Web.Administration.ServerManager объекта и сделать все, что можно сделать в Microsoft.Web.Administration пространстве имен вместе со своими скриптами.
  • Совместимость конвейеров PowerShell была движущей силой разработки многих командлетов. Таким образом, IISAdministration конвейер PowerShell гораздо лучше работает.

Версия командлетов, выпущенная для Windows 10, была грубой версией с пространством для улучшения; целевой выпуск был Windows Server 2016 для готового и полированного продукта. Причина предыдущего выпуска заключалась в том, чтобы получить отзывы от реальных пользователей PowerShell и администраторов IIS в отрасли, чтобы ответить на любые вопросы и получить предложения не только о существующих функциональных возможностях, но и о новых функциях, которые наши пользователи хотели бы получить от администрирования IIS, так как это относится к PowerShell.

Ниже приведены некоторые примеры использования нового поставщика.

Конвейерная обработка

PS:>Get-IISConfigSection -SectionPath "system.webServer/defaultDocument" | Get-IISConfigCollection -CollectionName "files" | New-IISConfigCollectionElement -ConfigAttribute @{"Value" = "MyDefDoc.htm"}

Get-IISConfigSection находится в начале большинства конвейеров, и в конкретном примере выше мы сначала получаем раздел system.webServer/defaultDocument (с учетом регистра!), затем получаем коллекцию файлов и, наконец, получаем элемент коллекции с заданным значением атрибута.

PS:>$ConfigSection = Get-IISConfigSection -SectionPath "system.applicationHost/sites"

PS:>Get-IISConfigCollection $configSection | Get-IISConfigCollectionElement -ConfigAttribute @{"Name"="Default Web Site"} | Get-IISConfigAttributeValue -AttributeName "State"

Это скорее гибридный пример, в котором раздел сначала помещается в переменную, а затем используется в конвейере.

Простые команды

Количество простых команд значительно сокращается до нескольких. Примеры включают Get-IISSite и Get-IISAppPool. Другие простые операции, для которых команды не существуют, можно выполнять с помощью операций конвейера.

PS:> Get-IISAppPool

Name            Status   CLR Ver  Pipeline Mode  Start Mode
----            ------   -------  -------------  ----------
DefaultAppPool  Started  v4.0     Integrated     OnDemand

Get-IISServerManager

PS:>$sm = Get-IISServerManager

PS:>$sm.ApplicationPools["DefaultAppPool"].Recycle()

Как видите, как только у вас есть доступ к диспетчеру сервера, небо становится ограничением.

Start-IISCommitDelay / Stop-IISCommitDelay

Заключив операции между этими командами, вы можете убедиться, что изменения фиксируются одновременно.

Это лишь несколько примеров того, что можно сделать с новым поставщиком. Полную документацию и другие примеры см. в документе Online.