找回密码
 新建账号

IISAdministration New-IISAppPool Remove-IISAppPool 创建和删除应用程序池

[复制链接]
蔡徐坤 发表于 2023/12/9 01:07 | 显示全部楼层 |阅读模式
用 IISAdministration 模块命令创建 IIS AppPool(AppPool 全称 Application Pool,即应用程序池),微软设计的产品通常会缺点东西,不会非常好用,让使用者绕几个弯才能完成本来可以轻松完成的事情,比如管理 IIS 的 IISAdministration 模块,它提供了 Get-IISAppPool Get-IISSite Get-IISSiteBinding 三个命令,分别用来查询 IIS 的应用程序池、站点、网站绑定,以及 New-IISSite New-IISSiteBinding 两个命令,分别用来创建新的站点和添加新的网站绑定,以及 Remove-IISSite Remove-IISSiteBinding 两个命令,分别用来删除站点和网站绑定,却没有提供创建应用程序池的命令,也没有删除应用程序池的命令,IISAdministration New-IISAppPool Remove-IISAppPool 根本不存在!

不要忘了微软还有一个叫 WebAdministration 的模块,它也可以操控 IIS,WebAdministration 模块提供了 New-WebAppPool 来创建应用程序池,提供了 Remove-WebAppPool 来删除应用程序池,问题来了,IISAdministration 是 WebAdministration 的升级版,微软官方罗列了一系列 IISAdministration 比 WebAdministration 优秀的地方,当你使用一个“极为先进”的东西的时候,又要时不时回去使用它的前任,难道微软的人不觉得别扭吗?更加恶心的是,如果交替使用 IISAdministration 命令和 IISAdministration 命令,操作会出现异常,命令会出错执行不下去,甚至导致 IIS 被搞崩溃。

要用就用一个,中国人的从一而终是美国人根本没有的意识。

那么,不使用 WebAdministration 模块的命令,怎么只使用 IISAdministratioin 模块的命令来实现 New-IISAppPool Remove-IISAppPool 呢?
第一个方法,使用 New-IISConfigCollectionElement 间接实现 IISAdministration Create IIS AppPool New-IISAppPool
  1. Get-IISConfigSection -SectionPath "system.applicationHost/applicationPools" | Get-IISConfigCollection | New-IISConfigCollectionElement -ConfigAttribute @{name="<AppPoolName>"}
复制代码
第二个方法,使用 ServerManager (Microsoft.Web.Administration.ServerManager) 对象实现使用只使用 IISAdministration 模块命令创建应用程序池
  1. (Get-IISServerManager).ApplicationPools.Add("<SiteName>")
复制代码
删除应用程序池,可以使用 Remove-IISConfigCollectionElement 间接实现 IISAdministration Create IIS AppPool Remove-IISAppPool
  1. Get-IISConfigSection -SectionPath "system.applicationHost/applicationPools" | Get-IISConfigCollection | Remove-IISConfigCollectionElement -ConfigAttribute @{name="<AppPoolName"}
复制代码
也可以使用 ServerManager (Microsoft.Web.Administration.ServerManager) 对象实现只使用 IISAdministration 模块命令删除应用程序池
  1. (Get-IISServerManager).ApplicationPools.Remove((Get-IISServerManager).ApplicationPools["<AppPoolName"])
复制代码
记得将以上命令中的 <AppPoolName> 修改为新的应用程序池的名称,应用程序池的名称不能重复,创建应用程序池的时候要指定一个还没有被现有的应用程序池使用过的名字,否则命令会出错。
只要将这些命令封闭成函数,IISAdministration New-IISAppPool Remove-IISAppPool 就有了!
要提醒大家一句,ServerManager 也有坑,而且坑很大。
相关链接 IISAdministration WebAdministration ServerManager

手机版|轻松E站

GMT+8, 2024/4/28 08:08

快速回复 返回顶部 返回列表