Windows Server 2015/2012 R2中的远程IIS管理

时间:2020-01-09 10:46:56  来源:igfitidea点击:

Windows 2015/2012/R2中的Web服务器Internet信息服务(与以前的IIS版本一样)可以进行远程管理。实际上,从一个控制台管理多个IIS服务器足够方便,这几乎是管理以Core/Nano模式运行的Web服务器的唯一方法。但是,默认情况下,远程IIS管理处于禁用状态,并且如果我们尝试将具有运行IIS的远程服务器添加到另一台服务器上的IIS管理控制台("连接到服务器"菜单),则会出现以下错误消息:

无法连接到指定的计算机详细信息:无法连接到远程服务器

安装IIS管理服务

问题在于在标准IIS安装期间未安装负责其远程管理的服务(IIS管理服务)。我们可以使用以下PowerShell命令确保系统中缺少此服务:

Get-WindowsFeature *web-mgmt*

如我们所见,未安装" Web-Mgmt-Service"服务。通过执行以下具有本地管理员权限的PowerShell命令来安装它:

Add-WindowsFeature Web-Mgmt-Service

或者,我们可以使用PowerShell cmdlet安装功能:

Install-WindowsFeature Web-Mgmt-Service

我们还可以从服务器管理器控制台中安装管理服务组件:

然后重新启动IIS Web服务:

iisreset –noforce

下一步是允许IIS Web服务器设置中的远程连接。为此,请在IIS管理器的"管理"部分中打开"管理服务"项目。

检查"管理服务"部分中的"启用远程连接"选项。

在这里,我们可以按IP地址限制到IIS管理控制台的连接。为此,拒绝未指定客户端的连接(未指定客户端的访问:拒绝),并指定允许连接的IP地址/ IP子网。远程连接服务使用SSL证书,但是如果将其导入到服务器证书存储中,则可以使用另一个证书(可以使用PoSh创建和使用自签名SSL证书)。保存更改。

注意默认情况下,端口8172用于远程IIS管理。保存更改后,该端口将在Windows防火墙中自动打开。

注意我们可以通过将注册表项HKLM\Software\Microsoft\WebManagement\Server中的参数EnableRemoteManagement设置为1,来通过以Core模式运行的远程IIS服务器上的注册表激活此选项。

Reg Add HKLM\Software\Microsoft\WebManagement\Server /V EnableRemoteManagement /T REG_DWORD /D 1

在这种情况下,我们必须手动创建防火墙规则:

netsh advfirewall firewall add rule name=”Allow IIS Web Management” dir=in action=allow service=”WMSVC”

现在,我们只需要启动Web管理服务:

net start wmsvc

并将服务配置为在系统启动时自动启动:

set-service wmsvc -StartupType Automatic

或者如下:

sc config WMSVC start= auto

之后,可以将远程IIS Web服务器添加到IIS管理器控制台中,并且我们可以管理IIS服务器,以及与本地Web服务器相同的方式来管理IIS服务器上的多个站点。

允许非管理员帐户远程管理IIS站点

默认情况下,只有具有管理员权限的用户才有权远程管理IIS服务器。为了向标准用户授予IIS远程管理的权限,必须在每个IIS网站的级别授予相应的权限。选择一个站点,然后找到" IIS管理器权限"选项。

在"动作"面板中,单击"允许用户"。选择要授予其IIS访问权限的用户帐户,然后单击"确定"。

在IIS服务器级别的"功能委托"部分中配置了用于管理IIS服务器上站点的用户权限。

我们可以为每个IIS服务器管理功能选择三个用户访问级别之一:只读,读/写或者未委派。

如何从Windows 10远程管理IIS服务器?

如果需要使用Windows 10(Windows 7或者8.1)从客户端桌面远程管理IIS服务器,则需要从以下位置安装IIS管理控制台:打开或者关闭Windows功能-> Internet信息服务-> Web管理工具-> IIS管理控制台。

我们可以使用PowerShell命令安装此功能:

Enable-WindowsOptionalFeature -Online -FeatureName "IIS-ManagementService"

但是,当我们在Windows 10中运行IIS管理器控制台时,菜单中的"连接到服务器"项丢失。

为了能够从Windows 10远程连接到IIS,我们需要下载并安装用于远程管理的IIS管理器包(https://www.microsoft.com/zh-cn/download/details.aspx?id=41177) 。

提示。有适用于x64(inetmgr_amd64_en-US.msi)和x86 OS(inetmgr_x86_en-US.msi)的IIS管理器版本。

安装后,我们需要重新启动IIS管理器并连接到该站点。如果在连接到IIS时发现客户端和服务器上的控制台版本不同,则会出现一条通知:它表明我们需要更新控制台版本(所有必需的文件将自动从服务器下载)。

现在,我们必须成功连接到IIS服务器并从办公桌远程管理它。

IIS远程管理和TLS 1.1/TLS 1.2支持

如果我们已在IIS上禁用了不安全的SSLv3和TLS 1.0协议,并且仅保留了TLS 1.1/TLS 1.2,那么在远程连接到IIS时,将出现错误:

The underlying connection was closed: An unexpected error occurred on a send.

要解决此问题,必须在客户端的注册表中进行更改,以便在连接期间强制使用TLS 1.2协议。设置取决于Windows的版本。

Windows 10和Windows Server 2015:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319]"SchUseStrongCrypto"=dword:00000001[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319]"SchUseStrongCrypto"=dword:00000001

Windows 2012/R2和Windows 8/8.1:

必须安装NET Framework 4.5.2或者更高版本(如何检查已安装NET Framework的版本)。

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319]"SchUseStrongCrypto"=dword:00000001[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319]"SchUseStrongCrypto"=dword:00000001

Windows Server 2008 R2/Windows 7:

我们必须首先安装更新KB3154518,以支持.NET Framework 3.5.1中的TLS 1.2.

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727]"SystemDefaultTlsVersions"=dword:00000001[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v2.0.50727]"SystemDefaultTlsVersions"=dword:00000001[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols][HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1][HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client]"DisabledByDefault"=dword:00000000[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server]"DisabledByDefault"=dword:00000000[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2][HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client]"DisabledByDefault"=dword:00000000[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server]"DisabledByDefault"=dword:00000000