[玩转系统] 如何使用 PowerShell 和 IIS 自动化网站
作者:精品下载站 日期:2024-12-14 20:52:52 浏览:13 分类:玩电脑
如何使用 PowerShell 和 IIS 自动化网站
如果您管理 Windows 服务器,您可能使用过 Internet 信息服务 (IIS)。网站是 IIS 的主要功能之一,使用 PowerShell,您可以使用 PowerShell IIS 脚本轻松管理和自动化 IIS!
在本文中,您将了解一种使用 PowerShell 管理 IIS 的新方法。使用本文中的技术,您可以轻松构建 PowerShell IIS 脚本来创建和管理 IIS 网站。
要使用 PowerShell 管理 IIS,需要两个 PowerShell 模块之一 - WebAdminstration 或 IISAdminstration。本文介绍了更现代的 IIS 管理模块。如果您想了解替代方法,本文的配套视频演示了旧的 WebAdministration 模块。
了解如何为您的公司或整个世界管理一个简单的网站将使您从其他同行中脱颖而出。本文的以下部分将帮助您了解如何在 IIS 中创建和管理网站。您还将了解如何使用一些 PowerShell cmdlet 管理 Web 应用程序池。
IIS 管理与 Web 管理模块
您有两种管理 IIS 的选项。您可以使用 Web 管理或 IIS 管理。但您应该使用哪一个呢?
如果您使用的是 IIS IIS 10.0 或更高版本,则较新的 IISAdministration 模块比旧的 WebAdministration 模块提供了许多改进。
以下是一些亮点:
- IISAdministration cmdlet 为管道提供更好的支持并更好地扩展。
- 与较旧的 IIS WebAdministration cmdlet 相比,IISAdministration 包含更高效的代码。
- IISAdministration cmdlet 更简单,并且提供对服务器管理器的直接访问。
本文将重点介绍这个较新的 IIS 管理模块。
先决条件
本文将进行实践。如果您打算继续操作,请确保满足以下先决条件。
- 最低 Windows PowerShell 5.1 或 PowerShell 6+
- PowerShell 库中的 IIS 管理 PowerShell 模块
- 已启用 IIS 10.0 Windows 功能
建议您熟悉 HTML 基础知识。在接下来的示例中,HTML 使用将发挥重要作用。但不用担心,您将能够复制并粘贴代码!
本博文中的所有示例都是使用 Windows 10 和 PowerShell 7 Preview 6 上的 IIS 10.0 创建的。Windows Server 2016 和 2019 的 IISAdministration cmdlet 相同,并且可与 Windows PowerShell 5.1 配合使用。
这就是所使用的工具,现在是后续所需的资源。
安装 IIS 管理模块
满足先决条件后,就可以进行一些设置工作了。幸运的是,不需要做太多设置,因为您需要的 PowerShell 模块(IISAdministration)可以在 PowerShell Gallery 中免费获得。
继续在 Web 服务器上打开提升的 PowerShell 控制台,然后使用以下命令安装模块。
PS> Install-Module -Name 'IISAdministration'
如果您无法访问互联网,您可以将该模块下载到另一台主机并将该模块复制到您的模块目录中。查看 Save-Module 命令的文档。
发现可用的 Cmdlet
与您可能不熟悉的任何 PowerShell 模块一样,用于发现模块 cmdlet 清单的第一个 cmdlet 之一是 Get-Command
。使用如下所示的命令 Get-Command -Module 'IISAdministration'
将允许您查看此模块的功能。
尽管您将学习在网站上执行的一些常见操作,但这些命令将使您了解您可以执行的其他操作。
现在您已获得可用 cmdlet 的列表。是时候开始建立一个网站了。
创建您的第一个网站
要拥有一个可以使用的网站,我们首先要创建一个网站。为此,第一步是创建一个目录来保存 Web 内容。此外,您还需要该目录中有一个 HTML 文件以便 IIS 显示。该目录将作为稍后示例中使用的 Web 目录。
创建 Web 文件夹和页面
首先,创建一个目录。为此,您可以使用 New-Item
cmdlet。下面的代码将在C:\MyWebsite处创建一个目录。
PS> New-Item -ItemType Directory -Name 'MyWebsite' -Path 'C:\'
您可以使用上面的代码选择您想要的任何路径。为了简单起见,将使用通用路径。
创建目录后,就可以创建一个 HTML 文件,该文件将作为新网站的登陆页面。
现在,在 C:\Mywebsite 目录中创建一个名为 index.html 的文件,如下所示。
PS> New-Item -ItemType File -Name 'index.html' -Path 'C:\MyWebsite\'
创建文件后,在您喜欢的编辑器中将其打开,然后将以下代码复制并粘贴到该文档中。此 HTML 是一个简单的页面,将用于确保完成后正确配置 IIS。
<!DOCTYPE html>
<html>
<head>
<title>IIS Administration With PowerShell Demo</title>
</head>
<body>
<h1>IIS Administration with PowerShell Demo</h1>
<p>Thank you for reading this post on how to administer IIS with PowerShell!</p>
<p>This page was created using the newer IISAdministration PowerShell module.</p>
<h2>First Steps</h2>
<p>Keep calm and learn PowerShell.</p>
</body>
</html>
创建 IIS 网站
现在是时候让刚刚创建的网页可供全世界查看了。为此,您需要创建一个虚拟目录。虚拟目录包含用于所提供页面的所有资产和资源。
默认情况下,IIS 在 C:\inetpub\wwwroot 下创建一个虚拟目录。该目录包含 IIS 的所有默认网页资产和资源。您也可以使用默认的 C:\inetpub\wwwroot 目录来存储文件,但对于这些示例,它不会用于保持路径尽可能短。这就是您使用 C:\MyWebsite 的原因。
要创建新的虚拟目录(站点),请使用 New-IISSite
cmdlet。此 cmdlet 允许您创建 IIS 网站。
在本文中,创建一个名为 Mywebsite 的网站,该网站指向正在侦听端口 8088 的 C:\MyWebsite 目录。在下面的代码片段中,您可以了解如何执行此操作使用 New-IISSite
cmdlet。
唯一可能令人困惑的是 BindingInformation 参数。该参数仅允许绑定语法。在此代码段中,New-IISSite
将创建一个绑定到 IP 地址的网站(*
与 127.0.0.1 相同),随后是要侦听的 TCP 端口通过任何 HTTP 标头。
绑定语法可以解释为协议,后跟 source:Port:destination 。在此示例中,您已将 IIS 配置为在端口 8088 上侦听来自任何 () IP 地址的 HTTP 请求,并且目标是本地主机。*
PS> New-IISSite -Name 'MyWebsite' -PhysicalPath 'C:\MyWebsite\' -BindingInformation "*:8088:"
创建站点后,您可以运行 Get-IISSite
来检查它的外观,如下所示。
默认情况下,网站配置已启动,您的网络主机开始为这些 HTTP 请求提供服务。打开您选择的浏览器并导航到指向端口 8088 的本地计算机。您现在应该看到显示之前创建的网页。
恭喜!您刚刚使用 PowerShell 在 IIS 上设置了您的第一个网站!
现在您已经建立并运行了一个网站,是时候学习如何管理您的网站和托管该网站的 IIS 服务器了。
管理 IIS 网站
一旦网站开始运行,您无疑需要执行常见操作,例如停止和启动网站。例如,如果站点需要更新,您有时必须重新启动站点。
要在 PowerShell 中管理站点,您需要使用两个 cmdlet - Start-IISSite
和 Stop-IISSite
。这两个 cmdlet 的工作方式与 Stop-Service
和 Start-Service
cmdlet 的操作方式类似。
停止网站类似于停止 Windows 服务。您正在阻止或允许访问可通过 IIS 在唯一端口上提供服务的协议访问的站点。但是,您并未停止IIS 主机。站点可以单独停止和启动。
停止单个站点
要停止 IIS 网站,您将使用 Stop-IISSite
cmdlet。默认情况下,您之前创建的站点应处于已启动
状态。如果您停止该站点并因此阻止访问MyWebsite,请运行Stop-IISSite
并提供如下所示的名称。此代码阻止 IIS 为 MyWebsite 站点提供服务。停止该网站后,您将无法再访问它。
PS> Stop-IISSite -Name "MyWebsite"
下面显示了检查网站状态为 Started
、停止并再次检查状态的示例。在此示例中,您是:
- 使用
Get-IISSite
获取 MyWebsite 站点的状态。 - 针对 MyWebsite 站点执行
Stop-IISSite
cmdlet。此 cmdlet 会关闭对网站的访问。由于此操作正在进行操作更改,因此系统将提示您进行确认。 - 再次运行
Get-IISSite
,通过观察Stopped
状态来验证 MyWebsite 站点是否已停止。
停止所有网站
上面您停止了单个站点,但您也可以同样轻松地停止所有站点。通过使用管道并将 Get-IISSite
的输出通过管道传输到 Stop-IISSite
,PowerShell 将枚举所有站点并停止它们。在下面的代码示例中,可选的 Verbose
开关参数用于显示更多信息。
Get-IISSite | Stop-IISSite -Verbose
您还可以通过停止 W3SVC 或万维网发布服务来停止 IIS 中的所有站点。停止 Windows 服务会关闭 IIS 并阻止为所有站点提供服务。但是,如果您这样做,网站可能仍显示为处于“已启动”状态。
启动单个站点
假设您对 MyWebsite 网站进行了一些更改,并且需要重新启动它。是时候使用 Start-IISSite 命令了。为此,只需指定名称,就像使用 Stop-IISSite
cmdlet 一样。
PS> Start-IISSite -Name 'MyWebsite'
执行后,您可以使用 Get-IISSite 再次检查状态。当您这样做时,您应该会看到与下面的屏幕截图类似的输出。
现在,如果您刷新浏览器,您的网站应该可以再次访问 http://localhost:8088。
启动所有站点
与停止发布所有网站的方式类似,您也可以使用管道启动 IIS 主机上的所有网站。
PS> Get-IISSite | Start-IISSite
您将再次获得所有正在提供服务的 IIS 站点,并使用管道启动每个站点。您的输出应该类似于下面的屏幕截图。
管理 Web 绑定
现在是时候开始在 MyWebsite 站点上执行一些常见的管理任务了。最常见的任务之一是更改 Web 绑定。
当您创建 MyWebsite 站点时,您使用了 *:8088:
的绑定语法。此语法表示在端口 80 上侦听 IP 地址 127.0.0.1,不带 HTTP 标头。假设现在您决定让站点侦听端口 9000。为此,您需要修改站点绑定。
检查现有绑定
在更改站点的绑定之前,您应该首先检查当前配置。一种方法是检查 Get-IISSite
返回的 Binding
属性。请注意下一个代码片段中如何执行此操作。在代码片段中,Get-IISSite
正在查询 MyWebSite 站点,并且仅返回 Bindings
属性。
PS> (Get-IISSite -Name 'MyWebsite').Bindings
当您仅检查 Bindings
属性时,PowerShell 将返回一个包含一些不同信息的对象,如下所示。
如果您只想查看绑定信息,可以专门引用 bindingInformation
属性,如下所示。
删除绑定
如果您想更改站点侦听的端口,则必须首先删除将其绑定到该端口的现有绑定。要删除绑定,您首先必须停止该站点。
PS> Stop-IISSite -Name 'MyWebsite'
站点停止后,您现在可以删除将 MyWebsite 站点绑定到端口 8088 的现有绑定。为此,您可以使用 Remove-IISSiteBinding
cmdlet。
要删除前面定义的 MyWebsite 的绑定,您可以在下面看到使用 Remove-IISSiteBinding
来执行此操作的示例。下面,您将提供站点的名称并指定之前发现的绑定语法。
PS> Remove-IISSiteBinding -Name 'MyWebsite' -BindingInformation "*:8088:"
当您执行代码时,系统将提示您确认您的决定,因为您正在做一些破坏性的事情,如下所示。
您可以拥有的绑定数量没有限制。您可以轻松地保留原始绑定并添加 TCP 端口 9000 作为新绑定。
现在您可以再次运行 Get-IISSite -Name 'MyWebsite'
。现在,您将看到绑定信息已被删除,如 Bindings
下的空白值所示。
即使站点已发布,IIS 也无法知道如何将流量路由到您的站点。
至少为您的站点分配一个绑定非常重要。为了向您展示重要性,请尝试再次导航到 http://localhost:8088/index.html。如果您使用的是 Mozilla Firefox Web 浏览器,您可能会看到下面的此消息。
创建新的绑定
在上一部分中,您删除了 MyWebsite 唯一的网站绑定。虽然这破坏了网站,但这只是暂时的问题。现在是通过创建新绑定来纠正此问题的时候了。
要创建新绑定,请使用 New-IISSiteBinding
cmdlet。由于您现在需要将端口 9000 绑定到 MyWebsite 站点,请指定正确的绑定语法,如下所示。
PS> New-IISSiteBinding -Name 'MyWebsite' -BindingInformation "*:9000:"
创建新绑定后,使用 Start-IISSite
再次启动站点。回想一下,为了创建这个新绑定,IIS 需要关闭该站点。
当站点再次启动时,您现在应该能够在端口 9000 上访问它。要验证这一点,请打开您选择的 Web 浏览器并导航到 http://localhost:9000。您现在应该看到网页在端口 9000 下再次运行。
删除网站
您刚刚完成了教程,并不打算永久保留 MyWebsite 网站,是时候清理它了。要删除网站,请使用 Remove-IISSite
cmdlet。
删除 IIS 站点可能是一项危险的任务,尤其是当您要删除 IIS 上托管其他生产网站的站点时。要验证您删除的网站是否正确,建议使用常见的 WhatIf
PowerShell 参数。此参数允许您检查如果命令实际运行的话会发生什么。
您可以在下面看到使用 WhatIf
参数删除 MyWebsite 网站的示例。
Remove-IISSite -Name 'MyWebSite' -WhatIf
如果一切看起来都不错,请松开安全栏并重新运行代码,这次不带 -WhatIf
参数。
使用 Remove-IISSite
cmdlet 时,不会删除该网站。它已从 IIS 配置中删除。网站文件保持不变。
概括
在本文中,您学习了如何使用 IIS 管理模块创建网站。您已经了解了如何执行维护网站所需的管理操作。您现在已经了解了足够的基础知识,可以使用 PowerShell 来处理任何现代 IIS 主机!
进一步阅读
- IISAdministration PowerShell Cmdlet 参考
- 及时了解最新的 IIS 技术 (iis.net)
- Microsoft IIS 管理 API
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[影视] 黑道中人 Alto Knights(2025)剧情 犯罪 历史 电影
[古装剧] [七侠五义][全75集][WEB-MP4/76G][国语无字][1080P][焦恩俊经典]
[实用软件] 虚拟手机号 电话 验证码 注册
[电视剧] 安眠书店/你 第五季 You Season 5 (2025) 【全10集】
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[实用软件] 虚拟手机号 电话 验证码 注册
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag