Windows开启WinRM服务详细教程
时间:2026-04-16 10:21:48 280浏览 收藏
本文详细介绍了在Windows系统中启用WinRM服务的四种实用方法——PowerShell一键启用、手动精细配置、域环境组策略统一部署以及批处理脚本批量自动化启用,并强调了验证连通性与安全注意事项,帮助运维人员快速解决因WinRM默认禁用导致的PowerShell远程管理、Ansible连接失败等常见问题,兼顾效率、灵活性与企业级管控需求。

如果您需要在Windows系统中启用WinRM服务以支持远程命令执行与管理操作,则可能是由于默认状态下WinRM处于禁用状态,导致PowerShell远程会话、Ansible控制节点连接或WS-Management协议调用失败。以下是启用WinRM服务的多种方法:
一、使用PowerShell命令启用WinRM(推荐)
该方法通过管理员权限的PowerShell直接调用Enable-PSRemoting cmdlet,自动配置监听器、防火墙规则及服务启动模式,适用于大多数标准Windows版本(Windows 7 SP1及以上、Windows Server 2008 R2及以上)。
1、以管理员身份运行Windows PowerShell。
2、执行命令:Enable-PSRemoting -Force。
3、等待命令完成,系统将自动启动WinRM服务、设置为自动启动、启用HTTP监听器并配置Windows防火墙允许入站WinRM流量。
4、验证服务状态:执行Get-Service WinRM,确认Status为Running且StartType为Automatic。
二、手动配置WinRM服务与监听器
当组织策略禁用Enable-PSRemoting或需自定义监听端口、认证方式时,可手动逐项配置WinRM服务参数,确保控制粒度更高且适配特定安全要求。
1、以管理员身份运行PowerShell。
2、启动WinRM服务并设为自动启动:Start-Service WinRM; Set-Service WinRM -StartupType Automatic。
3、创建HTTP监听器(如未存在):winrm create winrm/config/listener?Address=*+Transport=HTTP。
4、启用基本身份验证(若需支持明文凭据,仅限受信内网):winrm set winrm/config/auth @{Basic="true"}。
5、允许远程管理通过本地策略:winrm set winrm/config/service @{AllowUnencrypted="true"}(注意:此设置降低安全性,仅调试阶段临时启用)。
三、通过组策略启用WinRM(域环境适用)
在Active Directory域环境中,可通过组策略对象(GPO)统一部署WinRM配置,确保所有加入域的客户端符合企业级远程管理策略要求,避免逐台手动配置。
1、在域控制器上打开“组策略管理”控制台(gpmc.msc)。
2、编辑目标OU关联的GPO,在路径计算机配置 → 管理模板 → Windows组件 → Windows远程管理(WinRM)→ WinRM服务下启用“允许自动配置WinRM监听器”策略。
3、进入计算机配置 → 管理模板 → Windows组件 → Windows远程管理(WinRM)→ WinRM客户端,配置“允许未加密流量”与“允许基本身份验证”为已启用(依安全策略决定是否勾选)。
4、运行gpupdate /force强制刷新组策略,并在客户端执行winrm quickconfig -quiet完成本地初始化。
四、使用批处理脚本一键启用(离线/批量部署场景)
适用于无GUI环境(如Server Core)、自动化部署流水线或需在多台机器上快速启用WinRM的场景,脚本整合服务启动、监听器注册、防火墙放行等全部必要动作。
1、新建文本文件,扩展名为.bat,内容如下:
@echo off winrm quickconfig -quiet winrm set winrm/config/service @{AllowUnencrypted="true"} winrm set winrm/config/service/auth @{Basic="true"} netsh advfirewall firewall add rule name="WinRM-HTTP" dir=in action=allow protocol=TCP localport=5985
2、右键选择“以管理员身份运行”该批处理文件。
3、脚本执行完毕后,检查输出中无ERROR字样,并确认端口5985处于监听状态:netstat -ano | findstr :5985。
五、验证WinRM连通性与功能可用性
启用完成后必须进行端到端验证,确保远程主机可被发现、认证成功且能执行基础命令,排除网络层、策略层或服务配置残留问题。
1、在本地管理员PowerShell中执行:Test-WsMan -ComputerName 目标主机名或IP,确认返回WsManStackVersion等信息。
2、建立临时远程会话:$session = New-PSSession -ComputerName 目标主机名 -Credential Get-Credential,输入目标主机有效凭据。
3、执行远程命令验证:Invoke-Command -Session $session -ScriptBlock {hostname},应返回目标主机的计算机名。
4、断开会话:Remove-PSSession $session。
今天带大家了解了的相关知识,希望对你有所帮助;关于文章的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
178 收藏
-
127 收藏
-
315 收藏
-
237 收藏
-
361 收藏
-
458 收藏
-
501 收藏
-
199 收藏
-
157 收藏
-
313 收藏
-
428 收藏
-
251 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 543次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 516次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 500次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 485次学习