需要密切关注您的IIS Web服务器应用程序池吗?这里有一个使用PowerShell在iis中创建应用程序池的指南。
当您管理一个可能有几十个或几百个应用程序池的IIS Web服务器群时,您会去哪里?当然是使用PowerShell脚本!通过使用作为IIS的一部分预装的WebAdministrationPowerShell模块和一点点PowerShell远程管理,您可以轻松地随心所欲地创建、修改和删除应用程序池。
让我们通过一些示例来说明如何实现这一点。
如果您以前从未使用过PowerShell来管理您的IIS服务器,您的第一反应可能是在大多数cmdlet上查找ComputerName
。不幸的是,情况并非如此。
要远程管理IIS服务器,我们被迫使用带有Invoke-Command
cmdlet的PowerShell远程。虽然这并不是不可接受的,但它确实使代码比可能更冗长。这并不是要阻止您使用PowerShell管理远程IIS服务器,而是提供一点信息。
相关内容: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服务器上执行此脚本块。
使用PowerShell列出IIS应用程序池
要管理 Web 应用程序池,我们首先需要导入 WebAdministration 模块。
这将引入所有 IIS 命令,同时创建 IIS 驱动器。这是大多数应用程序池配置将进行的地方。让我们首先检查是否已存在任何应用程序池。
使用 PowerShell 创建新的 IIS 应用程序池
看起来我已经有一个叫做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 运行时版本。再次使用 IIS 驱动器,我可以使用 Set-ItemProperty
来管理应用程序池,就像我可以管理文件系统、注册表、证书和所有具有 PowerShell 驱动器的其他东西一样。
通过使用 Set-ItemProperty
,您可以修改几乎所有应用程序池的属性。
使用 PowerShell 删除应用程序池
最后,我们完成了我们的应用程序池,现在需要将其删除。这时我们有一个内置的 PowerShell 命令,叫做 Remove-WebAppPool
。只需指定名称,它就会消失!
所有这些代码我们一直在本地执行,但是如果你需要在远程IIS服务器上运行呢?这就是PowerShell远程派上用场的地方。要做到这一点,我们只需要将所有这些代码打包到一个脚本块中,然后使用Invoke-Command
在远程服务器上执行它。
虽然功能不是很强大,这段代码会创建一个名为MyAppPool的新应用程序池,设置一个属性,然后将其删除。你会注意到我在使用$using
变量。由于脚本块中的代码将在远程计算机上执行,这对于PowerShell来说是必要的,以扩展该变量并使用在客户端计算机上本地声明的$appPoolName
的实际值。
如果你想了解更多关于管理IIS的一般信息,请查看Technet IIS管理页面。在那里,你会找到WebAdministration模块中包含的所有cmdlet以及如何使用它们。