游乐游手机版
首页/业界动态/文章详情

Pywinrm,一个 Python 管理利器!

时间:2026-04-15 22:43
Pywinrm:打通跨平台管理的最后一公里 在混合IT环境里,Linux机器想管Windows服务器,这事儿一直挺让人头疼的。你猜怎么着?当SSH够不着Windows,PowerShell Remoting又没个统一的Python接口时,pywinrm模块就登场了。它通过Windows远程管理(Wi

Pywinrm:打通跨平台管理的最后一公里

在混合IT环境里,Linux机器想管Windows服务器,这事儿一直挺让人头疼的。你猜怎么着?当SSH够不着Windows,PowerShell Remoting又没个统一的Python接口时,pywinrm模块就登场了。它通过Windows远程管理(WinRM)协议,让Python脚本能像在本地一样,轻松执行远程Windows命令,算是真正解决了跨平台管理的那个“老大难”问题。

快速安装与环境准备

好消息是,pywinrm的安装过程相当简单。它可是Ansible管理Windows节点的核心依赖,江湖地位摆在那儿。直接上pip命令就行:

!pip install pywinrm
import winrm
print("pywinrm模块导入成功")
print(f"支持的认证方式: basic, ntlm, kerberos, credssp")

执行后,你会看到类似这样的反馈,意味着环境已经就绪:

pywinrm模块导入成功
支持的认证方式:basic, ntlm, kerberos, credssp
WinRM协议端口:HTTP 5985 / HTTPS 5986

建立连接与执行基础命令

一切从建立会话开始。Session对象封装了所有连接细节,而run_cmd方法则是执行经典cmd命令的利器。来看个获取网络信息的例子:

session = winrm.Session(
    'windows-server.example.com',
    auth=('administrator', 'password'),
    transport='ntlm')
result = session.run_cmd('ipconfig', ['/all'])
print(f"命令执行状态码: {result.status_code}")
print(result.std_out.decode('utf-8', errors='ignore')[:200] + "...")

命令执行后,返回的状态码和输出信息一目了然:

命令执行状态码:0
Windows IP Configuration
   Host Name . . . . . . . . . . . . : WIN-SERVER
   Primary Dns Suffix  . . . . . . . : example.com...

执行PowerShell脚本

当然,pywinrm的真正威力,还得看它执行PowerShell脚本的能力。run_ps方法会自动帮你把脚本转换成Base64编码发送过去,省心省力。比如,想获取系统基本信息:

ps_script = """
$os = Get-CimInstance Win32_OperatingSystem
$cpu = Get-CimInstance Win32_Processor
"操作系统: " + $os.Caption
"处理器: " + $cpu.Name
"""
result = session.run_ps(ps_script)
output_lines = result.std_out.decode('utf-8', errors='ignore').strip().split('\n')
for line in output_lines:
    print(f"  {line}")

运行一下,远程服务器的核心配置就清晰呈现在眼前:

操作系统:Microsoft Windows Server 2024 Datacenter
  处理器:Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz

认证方式选择

安全连接是远程管理的前提。pywinrm支持多种认证方式,选对方式,成功率和安全性都能大幅提升。关键在于根据你的环境来配置:

session_ntlm = winrm.Session(
    'server',
    auth=('domain\\user', 'password'),
    transport='ntlm')
print("认证方式配置完成")
print("  - NTLM: 本地+域账户")
print("  - Kerberos: 仅域账户")
print("  - CredSSP: 支持双跳")

简单来说,几种主要方式的适用场景是这样的:

认证方式配置完成
  - NTLM:本地+域账户
  - Kerberos:仅域账户
  - CredSSP:支持双跳

优势对比分析与建议

那么,和SSH或者直接调用PowerShell Remoting相比,pywinrm到底强在哪儿?它的核心优势其实很明确:提供了一个统一的Python接口,并且能无缝集成到Ansible这样成熟的自动化生态里。

话说回来,它也不是没有短板。初始配置相对复杂,而且依赖Windows防火墙开放特定端口(5985或5986),这些都是需要考虑的因素。

所以,什么时候该用它呢?经验表明,当你需要自动化管理大批量Windows服务器,或者正在构建一个统一的、跨Linux和Windows的运维平台时,pywinrm绝对应该放在优先选项里。它解决的,正是那个最关键的“连接”问题。

来源:https://www.51cto.com/article/839963.html
上一篇疯传 ! GitHub 热门 下一篇图文详解:ping 通了就代表网络没问题吗?
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
爱心企业捐33万购350套路灯 无奈全是假货
业界动态 · 2026-07-01

爱心企业捐33万购350套路灯 无奈全是假货

7月1日消息,广东阳江阳春市近日有市民反映一起令人愤慨的事件——三年前,当地一家爱心企业定向捐赠给村庄的一批太阳能路灯,使用不久便陆续出现故障。经查,整批路灯均为假冒伪劣的“三无”产品。更令人担忧的是,已有村民因路灯损坏,夜间摸黑出行时不慎摔伤,暴露出严重的安全隐患。 这批路灯背后涉及阳春市志愿者联

Claude Sonnet 5发布部分性能逼近Opus 4.8
业界动态 · 2026-07-01

Claude Sonnet 5发布部分性能逼近Opus 4.8

7月1日,Anthropic发布ClaudeSonnet5,具备自主规划与调用浏览器、终端等工具的智能体能力。性能在BrowseComp等评测中大幅超越Sonnet4 6,部分任务接近Opus4 8。安全方面,不良行为发生率降低,抗提示注入与幻觉率均有改善。

寒武纪成科创板万亿市值,优必选发布仿生人形机器人,红米K90至尊版发布
业界动态 · 2026-07-01

寒武纪成科创板万亿市值,优必选发布仿生人形机器人,红米K90至尊版发布

寒武纪盘中涨7%,市值突破万亿,成科创板首支万亿股票,年内涨幅超75%。优必选发布仿生人形机器人U1系列,主打家庭情感陪伴,预定超1 1万台。REDMIK90至尊版手机发布,搭载骁龙8至尊版、8550mAh电池、100W快充及165Hz直屏。

官方辟谣韩红因冯小刚新片走个面言论道歉退出公益
业界动态 · 2026-07-01

官方辟谣韩红因冯小刚新片走个面言论道歉退出公益

这一事件的来龙去脉颇为耐人寻味——7月1日,韩红在冯小刚新作《抓特务》的宣传活动中,一句“北京兄弟姐妹爷们娘们走个面儿”的喊话迅速引爆热搜。表面听来是一句热情招呼,却意外成为全网热议的“道德绑架”焦点。到底是喊话过于直白,还是网友过于敏感?不妨一同回顾始末。事实上,韩红担任了《抓特务》的配乐制作人,

小米汽车连续三月交付超3万辆 上半年累计逾18万辆
业界动态 · 2026-07-01

小米汽车连续三月交付超3万辆 上半年累计逾18万辆

数字往往最具有说服力。小米汽车正式公布了2026年6月的交付成绩——单月交付量继续稳定在3万辆以上,市场热度丝毫未减。尽管官方公告依然保持了简洁的风格,主要向用户的信赖与支持表达了谢意,但对于关注这个品牌的人来说,其中蕴含的信息已经足够清晰。将上半年的数据串联起来看,小米汽车的整体表现脉络相当清楚: