IISAdministration PowerShell Cmdlet

作者:Baris Caglar

兼容性

版本 说明
IIS 10.0 IIS 10.0 中引入了 IISAdministration PowerShell Cmdlet。 Powershell 库支持最新版本的 IISAdministration。
IIS 8.5 和更低版本 低于 IIS 10.0 的版本不支持 IISAdministration PowerShell Cmdlet。 但是,用户可以通过 Powershell 库安装它。

请访问 iis.net 了解如何获取最新版本的 IISAdministration。

IISAdministration 概述

随着 Windows 10 和 Windows Server 2016,IIS 团队正在使用现有的 WebAdministration Cmdlet 并排发布新的简化版 IISAdministration 模块。 决定发布全新的 PowerShell Cmdlet 模块的原因有很多,下面是其中一些:

  • IISAdministration 将在需要较长时间使用 WebAdministration 运行的脚本中更好地缩放。
  • 你现在可以获取对 Microsoft.Web.Administration.ServerManager 对象实例的直接引用,并执行可在 Microsoft.Web.Administration 命名空间中与脚本一起执行的任何操作。
  • PowerShell 管道兼容性是许多 cmdlet 设计背后的驱动力。 因此,IISAdministration 在 PowerShell 管道中效果更好。

为 Windows 10 发布的 Cmdlet 版本是一个粗略版本,具有改进空间;目标版本是 Windows Server 2016,用于完成和完善的产品。 推出早期版本的原因是从行业中真正的 PowerShell 用户和 IIS 管理员那里获得反馈、解答任何问题,以及接收不仅关于现有功能,还可能针对用户希望 IIS Administration 能够提供(因为它与 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

通过将操作封装在这些命令之间,可以确保同时提交所做更改。

这些只是你可以使用新的提供程序执行的一些示例。 有关完整文档和更多示例,请访问联机文档