Windows远程管理的安装和配置
若要Windows远程管理 (WinRM) 脚本运行,并且要让 Winrm 命令行工具执行数据操作,Windows远程管理 (WinRM) 必须同时安装和配置。
这些元素还依赖于 WinRM 配置。
- Windows Remote Shell 命令行工具 (Winrs) 。
- 事件转发。
- Windows PowerShell 2.0 远程处理。
安装 WinRM 的位置
WinRM 会自动安装所有当前受支持的Windows操作系统版本。
WinRM 和 IPMI 的配置
这些 WinRM 和 智能平台管理接口 (IPMI) WMI 提供程序 组件随操作系统一起安装。
- WinRM 服务在 Windows Server 2008 及更高版本 (在 Windows Vista 上自动启动,需要手动启动服务) 。
- 默认情况下,未配置 WinRM 侦听器 。 即使 WinRM 服务正在运行,也无法接收或发送请求数据的协议 消息 WS-Management。
- Internet 连接防火墙 (ICF) 阻止对端口的访问。
在 Winrm 命令提示符下键入以下命令,使用命令查找侦听器和地址。
winrm e winrm/config/listener
若要检查配置设置的状态,请键入以下命令。
winrm get winrm/config
快速默认配置
可以在本地计算机上启用WS-Management协议,并使用命令 winrm quickconfig为远程管理设置默认配置。
命令 winrm quickconfig (或缩写版本 winrm qc) 执行这些操作。
- 启动 WinRM 服务,并将服务启动类型设置为自动启动。
- 为在任何 IP 地址上使用 HTTP 或 HTTPS 发送和接收WS-Management协议 消息 的端口配置侦听器。
- 定义 WinRM 服务的 ICF 异常,并打开 HTTP 和 HTTPS 的端口。
注意
该 winrm quickconfig 命令仅为当前用户配置文件创建防火墙例外。 如果出于任何原因更改了防火墙配置文件,则应运行 winrm quickconfig 以启用新配置文件的防火墙例外;否则,可能不会启用该异常。
若要检索有关自定义配置的信息,请在命令提示符处键入 winrm help config 。
使用默认设置配置 WinRM
在命令提示符处键入
winrm quickconfig。如果未在本地计算机管理员帐户下运行,则必须从"开始"菜单菜单中选择“以管理员身份运行”,或在命令提示符处使用 Runas 命令。
当工具显示 进行这些更改 [y/n]?时,请键入 y。
如果配置成功,将显示以下输出。
WinRM has been updated for remote management. WinRM service type changed to delayed auto start. WinRM service started. Created a WinRM listener on https://* to accept WS-Man requests to any IP on this machine.保留 WinRM 客户端和服务器组件的默认设置,或对其进行自定义。 例如,可能需要将某些远程计算机添加到客户端配置 TrustedHosts 列表。
当无法建立相互身份验证时,应设置受信任的主机列表。 Kerberos 允许相互身份验证,但不能在工作组中使用-仅域。 为工作组设置受信任的主机时,最佳做法是尽可能限制列表。
通过键入命令
winrm quickconfig -transport:https创建 HTTPS 侦听器。 请注意,必须打开端口 5986 才能运行 HTTPS 传输。
侦听器和WS-Management协议默认设置
若要获取侦听器配置,请在命令提示符处键入 winrm enumerate winrm/config/listener 。 侦听器由传输 (HTTP 或 HTTPS) 和 IPv4 或 IPv6 地址定义。
winrm quickconfig 为侦听器创建以下默认设置。 可以创建多个侦听器。 有关详细信息,请在命令提示符处键入 winrm help config 。
地址
指定已为其创建此侦听器的地址。
Transport
指定要用于发送和接收 WS-Management 协议请求和响应的传输。 该值必须是 HTTP 或 HTTPS。 默认值为 HTTP。
端口
指定为其创建此侦听器的 TCP 端口。
WinRM 2.0: 默认 HTTP 端口为 5985。
主机名
指定运行 WinRM 服务的计算机的主机名。 该值必须是完全限定的域名、IPv4 或 IPv6 文本字符串或通配符。
已启用
指定是启用还是禁用侦听器。 默认值为 True。
URLPrefix
指定要接受 HTTP 或 HTTPS 请求的 URL 前缀。 这是一个字符串,仅包含 a-z、A-Z、9-0、下划线 (_) 和斜杠 (/) 。 字符串不能以斜杠开头或以 /) / (结尾。 例如,如果计算机名称为 SampleMachine,则 WinRM 客户端将在目标地址中指定 https://SampleMachine/<*URLPrefix*> 。 默认 URL 前缀为“wsman”。
CertificateThumbprint
指定服务证书的指纹。 此值表示证书指纹字段中发现的两位数十六进制值的字符串。 此字符串包含证书的 SHA-1 哈希。 在基于客户端证书的身份验证中使用证书。 证书只能映射到本地用户帐户,它们不适用于域帐户。
ListeningOn
指定侦听器使用的 IPv4 和 IPv6 地址。 例如:“111.0.0.1、111.222.333.444、::1、1000:2000:2c:3:c19:9ec8:a715:5e24、 3ffe:8311:ffff:f70f:0:5efe:111.222.333.444,fe80::5efe:111.222.333.444%8,fe80::c19:9ec8:a715:5e24%6”。
协议默认设置
许多配置设置(如 MaxEnvelopeSizekb 或 SoapTraceEnabled)决定了 WinRM 客户端和服务器组件如何与 WS-Management 协议交互。 以下列表描述了可用的配置设置。
MaxEnvelopeSizekb
指定 SOAP) 数据的最大简单对象访问协议 ((以千字节为单位)。 默认值为 150 千字节。
注意
如果 MaxEnvelopeSizekb 设置为大于1039440的值,则不支持该行为。
MaxTimeoutms
指定可用于除拉取请求以外的任何请求的最大超时时间(以毫秒为单位)。 默认值为 60000。
MaxBatchItems
指定在 Pull 响应中可以使用的最大元素数。 默认值为 32000。
MaxProviderRequests
指定该服务所允许的最大并发请求数。 默认值为 25。
WinRM 2.0: 此设置已弃用,设置为只读。
WinRM 客户端默认配置设置
WinRM 的客户端版本具有以下默认配置设置。
NetworkDelayms
指定客户端计算机等待适应网络延迟时间的额外时间(以毫秒为单位)。 默认值为 5000 毫秒。
URLPrefix
指定要接受 HTTP 或 HTTPS 请求的 URL 前缀。 默认 URL 前缀为“wsman”。
AllowUnencrypted
允许客户端计算机请求未加密的通信。 默认情况下,客户端计算机需要加密的网络流量,此设置为 False。
基本
允许客户端计算机使用基本身份验证。 基本身份验证是一种将用户名和密码以明文形式发送到服务器或代理的方案。 此方法是最不安全的身份验证方法。 默认值为 True。
摘要
允许客户端使用摘要式身份验证。 摘要式身份验证是一种质询响应方案,该方案将服务器指定的数据字符串用于质询。 仅客户端计算机可以发起摘要式身份验证请求。 客户端计算机将请求发送到服务器进行身份验证,并从服务器接收令牌字符串。 然后,客户端计算机发送资源请求,包括用户名和密码的加密哈希以及令牌字符串。 HTTP 和 HTTPS 支持摘要式身份验证。 WinRM Shell 客户端脚本和应用程序可以指定摘要身份验证,但 WinRM 服务不接受摘要式身份验证。 默认值为 True。
注意
通过 HTTP 进行摘要式身份验证被视为不安全。
证书
允许客户端使用基于客户端证书的身份验证。 基于证书的身份验证是服务器对 X509 证书标识的客户端进行身份验证的方案。 默认值为 True。
Kerberos
允许客户端使用 Kerberos 身份验证。 Kerberos 身份验证是一种客户端和服务器使用 Kerberos 证书在其中进行相互身份验证的方案。 默认值为 True。
Negotiate
允许客户端使用协商身份验证。 协商身份验证是一种客户端在其中将请求发送到服务器以进行身份验证的方案。 服务器将确定是使用 Kerberos 协议还是 NTLM。 选择 Kerberos 协议可对域帐户进行身份验证,而选择 NTLM 可对本地计算机帐户进行身份验证。 必须为域用户指定用户名,其格式必须为域用户user_name。 必须为服务器计算机上的本地用户以“server_name\user_name”格式指定用户名。 默认值为 True。
CredSSP
允许客户端使用凭据安全支持提供程序 (CredSSP) 身份验证。 CredSSP 使应用程序能够将用户的凭据从客户端计算机委托给目标服务器。 默认值为 False。
DefaultPorts
指定客户端将用于 HTTP 或 HTTPS 的端口。
WinRM 2.0: 默认 HTTP 端口为 5985,默认 HTTPS 端口为 5986。
TrustedHosts
指定受信任的远程计算机的列表。 工作组中的其他计算机或不同域中的计算机应添加到此列表中。
注意
TrustedHosts 列表中的计算机未进行身份验证。 客户端可能会向这些计算机发送凭据信息。
如果为 TrustedHost 指定了 IPv6 地址,则必须将地址括在方括号中,如以下 winrm 实用工具命令所示: winrm set winrm/config/client '@{TrustedHosts ="[0:0:0:0:0:0:0:0]"}'
有关如何将计算机添加到 TrustedHosts 列表的详细信息,请键入 winrm help config。
WinRM 服务默认配置设置
WinRM 的服务版本具有以下默认配置设置。
RootSDDL
指定控制对侦听器远程访问的安全描述符。 默认值为“O:NSG:BAD:P (A;;GA;;;BA) (A;;GR;;;ER) S:P (AU;FA;GA;;;WD) (AU;SA;GWGX;;;WD) ”。
MaxConcurrentOperations
并发操作的最大数目。 默认值为 100。
WinRM 2.0: MaxConcurrentOperations 设置已弃用,并且设置为只读。 此设置已被 MaxConcurrentOperationsPerUser 替换。
MaxConcurrentOperationsPerUser
指定任何用户可以在同一系统上远程打开的最大并发操作数。 默认值为 1500。
EnumerationTimeoutms
指定拉取消息之间的空闲超时(以毫秒为单位)。 默认值为 60000。
MaxConnections
指定服务可以同时处理的最大活动请求数。 默认值为 300。
WinRM 2.0: 默认值为 25。
MaxPacketRetrievalTimeSeconds
指定 WinRM 服务检索数据包所花费的最大时间长度(以秒为单位)。 默认值为 120 秒。
AllowUnencrypted
允许客户端计算机请求未加密的通信。 默认值为 False。
基本
允许 WinRM 服务使用基本身份验证。 默认值为 False。
证书
允许 WinRM 服务使用基于客户端证书的身份验证。 默认值为 False。
Kerberos
允许 WinRM 服务使用 Kerberos 身份验证。 默认值为 True。
Negotiate
允许 WinRM 服务使用协商身份验证。 默认值为 True。
CredSSP
允许 WinRM 服务使用凭据安全支持提供程序 (CredSSP) 身份验证。 默认值为 False。
CbtHardeningLevel
设置在身份验证请求中用于通道绑定令牌要求的策略。 默认值为 “放松”。
DefaultPorts
指定 WinRM 服务将用于 HTTP 或 HTTPS 的端口。
WinRM 2.0: 默认 HTTP 端口为 5985,默认 HTTPS 端口为 5986。
IPv4Filter 和 IPv6Filter
指定侦听器可以使用的 IPv4 或 IPv6 地址。 默认值为 IPv4Filter = * 和 IPv6Filter = *。
IPv4: IPv4 文本字符串由 0 到 255 范围内的四个点小数组成。 例如:192.168.0.0。
IPv6: IPv6 文本字符串括在括号中,并包含用冒号分隔的十六进制数字。 例如:[:1] 或 [3ffe:ffff::6ECB:0101]。
EnableCompatibilityHttpListener
指定是否启用兼容性 HTTP 侦听器。 如果此设置为 True,则除端口 5985 外,侦听器还将侦听端口 80。 默认值为 False。
EnableCompatibilityHttpsListener
指定是否启用兼容性 HTTPS 侦听器。 如果此设置为 True,则除端口 5986 外,侦听器还将侦听端口 443。 默认值为 False。
Winrs 默认配置设置
winrm quickconfig 还配置 Winrs 默认设置。
AllowRemoteShellAccess
允许访问远程外壳程序。 如果将此参数设置为 False,服务器将拒绝新的远程 shell 连接。 默认值为 True。
IdleTimeout
指定当远程外壳程序中不存在任何用户活动时,远程外壳程序保持打开的最大时间(以毫秒为单位)。 远程外壳程序会在指定的时间后自动删除。
WinRM 2.0: 默认值为 180000。 最小值为 60000。 将此值设置为小于 60000 不会影响超时。
MaxConcurrentUsers
指定可以通过远程外壳程序在同一计算机上并发执行远程操作的最大用户数。 如果新的远程 shell 连接超出指定限制,将被拒绝。 默认值为 5。
MaxShellRunTime
指定允许远程命令或脚本执行的最大时间(以毫秒为单位)。 默认值为 28800000。
WinRM 2.0: MaxShellRunTime 设置设置为只读。 更改 MaxShellRunTime 的值不会影响远程 shell。
MaxProcessesPerShell
指定允许任何外壳程序操作启动的最大进程数。 值为 0 则允许无限数量的进程。 默认值为 15。
MaxMemoryPerShellMB
指定每个 shell 分配的最大内存量,包括 shell 的子进程。 默认值为 150 MB。
MaxShellsPerUser
指定任何用户可以在同一计算机上远程打开的最大并发 shell 数。 如果启用此策略设置,则如果计数超过指定的限制,则用户将无法打开新的远程 shell。 如果禁用或未配置此策略设置,则默认情况下将该限制值设置为每个用户 5 个远程 shell。
使用 组策略 配置 WinRM
使用组策略编辑器为企业中的计算机配置 Windows Remote Shell 和 WinRM。
使用 组策略 进行配置
- 以管理员身份打开“命令提示符”窗口。
- 在命令提示符处,键入
gpedit.msc。 “组策略对象编辑器”窗口随即打开。 - 在计算机配置\管理模板\Windows组件下找到Windows远程管理和Windows远程 Shell 组策略 对象 (GPO) 。
- 在 “扩展 ”选项卡上,选择一个设置以查看说明。 双击某个设置进行编辑。
Windows防火墙和 WinRM 2.0 端口
从 WinRM 2.0 开始,配置 Winrm quickconfig 的默认侦听器端口为端口 5985(用于 HTTP 传输)和端口 5986(用于 HTTPS)。 可以在任何任意端口上配置 WinRM 侦听器。
如果计算机升级到 WinRM 2.0,则会迁移以前配置的侦听器,但仍接收流量。
WinRM 安装和配置说明
WinRM 不依赖于除 WinHttp 以外的任何其他服务。 如果 IIS 管理服务安装在同一台计算机上,则可能会看到指示在Internet Information Services (IIS) 之前无法加载 WinRM 的消息。 但是,WinRM 实际上并不依赖于 IIS,因为加载顺序可确保 IIS 服务在 HTTP 服务之前启动。 WinRM 确实需要 WinHTTP.dll 注册。
如果计算机上安装了 ISA2004 防火墙客户端,则可能会导致 Web 服务管理 (WS-Management) 客户端停止响应。 若要避免此问题,请安装 ISA2004 防火墙 SP1。
如果两个具有不同 IP 地址的侦听器服务配置了相同的端口号和计算机名称,则 WinRM 仅侦听或接收一个地址上的消息。 这是因为WS-Management协议使用的 URL 前缀相同。
IPMI 驱动程序和提供程序安装说明
驱动程序可能无法检测到来自 Microsoft 的 IPMI 驱动程序是否存在。 如果驱动程序无法启动,则可能需要禁用它。
如果基板管理控制器 (BMC) 资源出现在系统 BIOS 中,则 ACPI (即插即用) 会检测 BMC 硬件,并自动安装 IPMI 驱动程序。 即插即用支持可能不存在于所有BMC中。 如果即插即用检测到 BMC,则在安装硬件管理组件之前,未知设备会显示在设备管理器中。 安装驱动程序后,Microsoft ACPI 通用 IPMI 兼容设备的新组件将显示在设备管理器中。
如果系统不会自动检测 BMC 并安装驱动程序,但在安装过程中检测到 BMC,则必须创建 BMC 设备。 为此,请在命令提示符处键入以下命令: Rundll32 ipmisetp.dll, AddTheDevice 执行此命令后,将创建 IPMI 设备,并在设备管理器中显示。 如果卸载硬件管理组件,则会删除设备。
有关详细信息,请参阅 硬件管理简介。
IPMI 提供程序将硬件类放置在 WMI 的 root\hardwarenamespace 中。 有关硬件类的详细信息,请参阅 IPMI 提供程序。 有关 WMI 命名空间的详细信息,请参阅 WMI 体系结构。
WMI 插件配置说明
从Windows 8和Windows Server 2012开始,WMI 插件具有自己的安全配置。 若要使正常或电源 (非管理员) 用户能够使用 WMI 插件,需要在配置 侦听器 后为该用户启用访问权限。 首先,必须通过以下步骤之一设置用户以远程访问 WMI 。
- 运行
lusrmgr.msc以将用户添加到“本地用户和组”窗口中的WinRMRemoteWMIUsers__组,或 - 使用 winrm 命令行工具为 WMI 插件的命名空间配置安全描述符,如下所示:
winrm configSDDL http://schemas.microsoft.com/wbem/wsman/1/wmi/ WmiNamespace
显示用户界面时,添加用户。
设置用户以远程访问 WMI 后,必须设置 WMI 以允许用户访问插件。 为此,请运行wmimgmt.msc以修改可在 WMI 控件窗口中访问的命名空间的 WMI 安全性。
大多数用于管理的 WMI 类都位于 root\cimv2 命名空间中。