微软iis web服务器,IIS:快速、 方便的 Web 服务器 | Microsoft Docs

IIS:快速简单地安装 Web 服务器

08/17/2016

本文内容

在 Windows PowerShell 的帮助下,您可以更加快速、简单地安装 Web 服务器。

Jason Helmick

想想多少次您安装 IIS。 不多? 真的吗? 考虑这类交流和必备的软件,如需要 IIS 的 SharePoint 测试环境和发展环境的 Web 场部署平台。 你可能会花更多的时间比你想安装 IIS。

将添加到此自动化灾难恢复需要。 您可以在几分钟内带您 Web 场重新联机吗? 安装和配置 IIS 随您的 Web 站点是一个简单的任务。 这是一个长又乏味的过程,如果你有很多的服务器。

没有人想要度过周末设置服务器。 要管理您的 Web 场的 Web 站点,并把所有的 Web"东西"星期一到星期五,朝九晚五。 你想要加快和自动化的任务,你在工作中的每一个机会。

本分步指南将帮助您部署 IIS 和默认 Web 站点的服务器,服务器的一大串次全部在四分钟的时间。 你不能这样与 GUI 服务器管理器工具和 GUI IIS 管理器。 事实上,GUI 是问题的一部分。 你怎么可以这些神奇的玩意儿? Windows PowerShell。 (注意:这适用于 IIS 7.5 和 IIS 8。)

PowerShell 远程处理

我们开始之前,你有你的服务器上启用 Windows PowerShell 远程处理吗? 如果您不是应该的。 这就是这一计划将如何工作。 我们的快速、 方便的一部分来部署之前,让我们走过了如何获取万一您还没有这样做已经启用了 Windows PowerShell 远程处理。

有两种方法来执行此操作。 如果你要试试这个在测试环境中,则第一种方法可能更快。 有两个 Windows PowerShell 功能,您需要启用:Windows PowerShell 远程处理和脚本的执行。 第一种方法要求您访问每个您要管理的服务器。 您可以使用远程桌面协议 (RDP) 或运动鞋-网和运行两个命令。

1.

打开 Windows PowerShell 控制台,具有管理权限,并使用启用 PSRemoting cmdlet 每个服务器上启用 Windows PowerShell 远程处理:

PS> Enable-PSRemoting -Force

2.

你要使用某些 cmdlet 存储在这些服务器上的其他组件。 若要使用这些以后,您需要将无法运行的脚本 — — 其中,默认情况下,Windows PowerShell 不允许。 所以让我们改变这一点:

PS> Set-ExecutionPolicy RemoteSigned –Force

此时,您可以部署和管理您的 IIS 服务器。 如果您有数百台服务器来管理,你就会想颁发组策略来进行这些更改。 周围所有这些服务器的运行是荒谬浪费时间,所以这里有启用 Windows PowerShell 远程处理与组策略对象 (GPO) 的步骤:

启用"允许自动配置的侦听器,"并设置 IPv4 和 IPv6 的"*"。 你会发现在密钥:\ 管理模板计算机 Configuration\Policies\Administrative \windows Components\Windows Management\WinRM 远程服务器。

启用脚本执行下"打开的脚本执行"并设置策略设置为"仅允许签名的脚本"或"允许本地脚本和远程签名的脚本"。你会发现在密钥:\ 管理模板计算机 Configuration\Policies\Administrative \windows Components\Windows PowerShell。

设置为自动启动,在此关键 Windows 远程管理 (WinRM) 服务:计算机 Configuration\Policies\Windows 设置 \ 安全设置设置 \ 系统服务。

如果您在这些计算机上运行的 Windows 防火墙,您需要一个入站规则因为 WinRM 侦听端口 5985。 你会发现在密钥:具有高级安全的计算机 Configuration\Policies\Windows Settings\Windows 防火墙。

这些 Web 服务器部署

现在,有趣的事情发生了。 这是相当简单,只需几个 Windows PowerShell 一行,使发生的魔术。

1.

存储将会给一个变量部署的一部分的所有服务器名称的列表。 如果您希望,然后使用 Windows PowerShell 读取该列表,可以在记事本中创建列表:

PS> $servers= get-content c:\servers.txt

这是有点草率,尤其是当处理大型服务器列表。 它是更好地使 Windows PowerShell 做所有的工作。 该活动目录 cmdlet 可以让你的计算机名称的列表,你知道吗? 若要使用活动目录 cmdlet,您需要安装活动目录的远程服务器管理工具 (寄宿)。 如果您知道这个秘密给 Windows PowerShell 隐式远程处理,您可以使用,无需安装本地的 cmdlet。 与安装的寄宿,第一项任务是导入 Active Directory cmdlet 的模块:

PS> Import-Module ActiveDirectory

导入后,您可以使用 Get ADComputer cmdlet 抓取您选择的计算机名称。 在此示例中,我们将会部署所有 IIS 的计算机开头的名称"网"。筛选的 Get ADComputer cmdlet 找到只有那些计算机名称"Web,"开始和管选择对象要抓住只的计算机的名称:

PS> $servers= Get-ADComputer -filter 'name -like "web*"' | Select-Object -ExpandProperty name

2.

现在它是使用 Windows PowerShell 远程处理的权力,使容易解除通常会长和镗孔过程的时间。 让我们部署 IIS。 首先,我们要建一个会话我们收集到所有这些服务器:

PS> $session=New-PSSession -ComputerName $servers

3.

下一步是在远程计算机上的服务器管理器模块导入。 此模块具有的 cmdlet 的将安装和删除服务器角色和功能。 我们使用调用命令 cmdlet 带参数为我们先前创建的会话。 这个有趣的事是所有服务器会立即都收到任何内部脚本块 {} 发送的说明:

PS> Invoke-Command -Session $session {Import-module ServerManager}

在过程中不需要这一步。 这只是检查是否在远程计算机上已安装 IIS。 Get WindowsFeature cmdlet 没有这一份好的工作:

PS> invoke-command -Session $session {Get-WindowsFeature web-server} | format-table -AutoSize

我们谈了一会儿我们陷入命令之前安装 IIS。 IIS 已只允许静态 Web 页的默认安装。 这是出于安全原因,很大,但我们大多数人将需要一些附加组件为我们自己应用程序的需要。

当使用 GUI 用于安装时,所有列出的组件,您可以简单地选中复选框。 与 Windows PowerShell,你要告诉具体什么你会喜欢的组件的远程计算机。 如果你正坐在 Windows Server 2008 R2 或 Windows 服务器 8 的任何计算机,例如,可以使用 Get WindowsFeature iis (请注意您必须首先导入 ServerManager 模块) 中列出所有可用的组件:

PS> Get-WindowFeature *web*

一旦你知道的组件的名称,您可以使用添加-WindowsFeature 来安装它们。 从 Web 服务器开始,然后添加每个组件,以逗号分隔:

PS> Add-WindowsFeature Web-Server, ASP

而无需键入他们的长字符串,可以安装 IIS 的所有组件。 请记住,安装的一切并不是一个好主意,出于安全原因,但添加 WindowsFeature cmdlet 的参数,将帮助:

PS> Add-WindowsFeature Web-Server -IncludeAllSubFeature

现在回到我们的远程 IIS 部署。 我们希望 ASP 和 ASP 的默认安装和附加组件。NET。 再一次,我们将使用调用命令 cmdlet。 一旦我们运行此命令,所有服务器都将都安装 IIS:

PS> Invoke-command -Session $session {Add-WindowsFeature web-server,web-asp,web-asp-net}

4.

出于测试目的,我们会将一组 Web 页面部署到新的 Web 服务器。 我们将使用 default.htm 和 testpage.asp 的文件。 将驱动器映射到服务器并将文件复制到默认的 Web 站点将会需要很长时间。 相反,我们将做复制使用 Windows PowerShell 和服务器列表。

在此示例中,Web 文件位于 c:\files。 将它们复制到是 UNC 路径的目标复制项 cmdlet 的。 UNC 需要的服务器名称。 我们传递给 Foreach 对象 cmdlet 的服务器列表 ($服务器)。 Foreach 将循环访问每个 $服务器中的服务器名称。 若要修复的 UNC 路径,以便我们不必在服务器名称中键入,使用 Windows PowerShell 特殊变量"$ _"。 此变量包含当前的服务器名称,从 $服务器:

PS> $servers | foreach{copy-item -Path c:\files\*.* -Destination "\\$_\c$\inetpub\wwwroot"}

我们只被部署 IIS 和默认 Web 站点的服务器的一大串在四分钟的时间。 若要测试 Web 站点,启动 Ie 浏览器使用的前面描述的技术。 此命令将启动一个新的浏览器为每个服务器,并显示测试页:

PS> $servers | foreach{Start-Process iexplore "http://$_/testpage.asp"}

若要关闭所有浏览器,回到 Windows PowerShell 和请尝试以下方法:

PS> Stop-Process –Name iexplore

删除 Web 服务器

如果你在测试部署灾难恢复,或只测试这种技术,您可能要删除一切我们添加,然后再次开始从一个洁净的环境。 下面是如何删除 Web 站点文件和 Web 服务器,并执行的计算机重新启动:

PS> $servers | foreach{remove-item -Path "\\$_\c$\inetpub\wwwroot\*.*"} PS> Invoke-command -Session $session {Remove-WindowsFeature web-server,web-asp,web-asp-net} PS> Restart-Computer –Computername $servers -Force

脚本解决方案

有关 Windows PowerShell 最重要的是一旦你做的东西从控制台,您可以将它复制到一个文本文件,并使其脚本。 没有大惊小怪,无需编程 — — 只是纯自动化。 如果要将无法运行此部署在一瞬间用于灾难恢复和进一步的测试,将复制到一个名为 IISDeploy.ps1 的文本文件这里详细的命令。 当您需要部署时,就可以运行此脚本。

这种类型的技术开辟了一套新的可能性。 可以自动将多个 Web 站点部署到 Web 场、 生成负载测试在农场或甚至为其他的角色和功能在 Windows 中的使用这些技术。

签入已创建和配置应用程序池和更多的 Web 站点的 cmdlet 的 IIS 上的 WebAdministration 模块。 如果您需要实现自动化的东西,Windows PowerShell 将使您的工作更轻松、 快捷。

fa1b22b675e0920e9df808317d23582e.png

作为企业顾问、 培训师和作者中有超过 20 年。 Windows PowerShell 技术在接口技术培训的导演,他专注于与活动目录和 IIS 的自动化。 你可以看到更多有关 IIS 在他即将出版的新书从曼宁出版物,"了解 Windows IIS 中一个月的午餐"。他在到达 JasonHelmick@gmail.com。

相关内容

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值