Командлеты PowerShell для IISAdministration

Барис Каглар

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

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

Чтобы узнать, как получить последнюю версию 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 (Case Sensitive!), а затем получите коллекцию файлов и, наконец, получите элемент коллекции с заданным значением атрибута.

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 для получения полной документации и дополнительных примеров.