当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 在 PowerShell 中管理 IIS Web 应用程序池

作者:精品下载站 日期:2024-12-14 12:41:19 浏览:16 分类:玩电脑

在 PowerShell 中管理 IIS Web 应用程序池


需要关注您的 IIS Web 服务器应用程序池吗?以下是有关如何使用 PowerShell 在 iis 中创建应用程序池的指南。

当您管理可能包含数十或数百个应用程序池的 IIS Web 服务器场时,您会转向哪里?当然是 PowerShell 脚本!通过使用作为 IIS 的一部分安装的 WebAdministrationPowerShell 模块和一些 PowerShell 远程处理,您可以轻松地随意创建、修改和删除应用程序池。

让我们通过几个例子来了解如何实现这一目标。

如果您以前从未使用过 PowerShell 来管理 IIS 服务器,那么您的第一反应可能是在大多数 cmdlet 上查找 ComputerName。不幸的是,这种情况并非如此。

为了远程管理 IIS 服务器,我们被迫使用带有 Invoke-Command cmdlet 的 PowerShell 远程处理。虽然这不是一个破坏性的因素,但它确实使代码变得比应有的更加冗长。这并不是要阻止您使用 PowerShell 管理远程 IIS 服务器,而是仅供参考。

相关:Invoke-Command:运行远程代码的最佳方式

我知道第一次尝试此操作时我非常沮丧,并且在许多 cmdlet 上没有看到熟悉的 ComputerName 参数。

注意:接下来,我们将构建代码以输入到脚本块中。然后,我们将使用 Invoke-Command 在远程 IIS 服务器上执行此脚本块。

使用 PowerShell 列出 IIS 应用程序池

要管理 Web 应用程序池,我们首先需要导入 WebAdministration 模块。

PS> Import-Module WebAdministration

这将引入所有 IIS cmdlet 并创建 IIS 驱动器。这是大部分应用程序池配置将完成的地方。我们首先检查是否已经存在任何应用程序池。

PS> Get-ChildItem -Path IIS:\AppPools
 
 Name  State. Applications
 ----- ------ -------------
 GHI  Started

使用 PowerShell 创建新的 IIS 应用程序池

看起来我已经有一个名为 GHI 的了。也许我想创建另一个。使用 IIS 驱动器使这一切变得如此简单。只需使用 New-Item 并指定路径即可。

PS> New-Item -Path IIS:\AppPools\MyAppPool
 
 Name      State.  Applications
 -----     ------  -------------
 MyAppPool Started

检查和修改应用程序池属性

我现在创建了一个新的应用程序池。然后,我们可以使用 Get-ItemProperty 检查该应用程序池上的所有属性,并使用 Select-Object 选择它返回的所有属性。这将返回所有属性名称和值,以便您可以找出需要使用 Set-ItemProperty 修改哪些属性。

Get-ItemProperty IIS:\AppPools\MyAppPool | select *

现在您已经有了一个应用程序池并且可以查看属性,让我们修改一个属性。也许我想在应用程序池中使用特定的 .NET 运行时版本。再次使用 IIS 驱动器,我可以使用 Set-ItemProperty 来管理应用程序池,就像管理文件系统、注册表、证书以及具有 PowerShell 驱动器的所有其他内容一样。

PS> Set-ItemProperty -Path IIS:\AppPools\MyAppPool -Name managedRuntimeVersion -Value 'v4.0'

通过使用 Set-ItemProperty,您可以修改应用程序池的几乎所有属性。

使用 PowerShell 删除应用程序池

最后,我们完成了应用程序池,现在需要将其删除。这次我们有一个名为 Remove-WebAppPool 的内置 PowerShell cmdlet。只需指定名称即可!

Remove-WebAppPool -Name MyAppPool

我们使用的所有代码都是在本地执行的,但是如果您需要在远程 IIS 服务器上运行它怎么办?这就是 PowerShell 远程处理的用武之地。为此,我们只需将所有这些代码捆绑在一个脚本块中,然后使用 Invoke-Command 在远程服务器上执行它。

$appPoolName = 'MyAppPool'
 $scriptBlock = {
    Import-Module WebAdministration
    New-Item -Path IIS:\AppPools$using:appPoolName
    Set-ItemProperty -Path IIS:\AppPools$using:appPoolName -Name managedRuntimeVersion -Value 'v4.0'
    Remove-WebAppPool -Name $using:appPoolName
 }
 
 Invoke-Command -ComputerName SOMEIISSERVER -ScriptBlock $scriptBlock

虽然功能不是很好,但此代码将创建一个名为 MyAppPool 的新应用程序池,设置一个属性,然后将其删除。您会注意到我正在使用 $using 变量。由于脚本块中的代码将在远程计算机上执行,因此 PowerShell 有必要扩展该变量并使用在客户端计算机上本地声明的 $appPoolName 的实际值。

如果您想了解有关管理 IIS 的更多信息,请查看 Technet IIS 管理页面。您将在其中找到 WebAdministration 模块中包含的所有 cmdlet 以及如何使用它们。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯