【问题标题】:Access WMI via Python from Linux从 Linux 通过 Python 访问 WMI
【发布时间】:2013-11-21 08:13:08
【问题描述】:

我正在寻找一种从 Linux 机器 (CentOS 6) 远程从 Python 脚本访问 WMI(Windows 管理工具)的方法

当然有 python-wmi 包,但它使用的是 Windows API,而这在 Linux 上是不可用的。 我找到了应该做类似事情的wmi-client-wrapper。但是没有文档,甚至这个例子也不适合我。

我之所以要这样做,是因为我想远程获取系统上的所有用户帐户并将它们存储在数据库中。 也许你有任何其他提示如何做到这一点。

谢谢

【问题讨论】:

  • 你的 Linux 机器上安装了wmic 吗?尝试运行wmic -U Administrator%password //192.168.1.149 "SELECT * FROM Win32_Processor"。 (这相当于 wmi-client-wrapper 示例中的命令)

标签: python linux wmi wmi-query


【解决方案1】:

您可以使用在 Python 中实现 WMI 的 Impacket (https://github.com/CoreSecurity/impacket)。

有两个例子可能有用:

1) https://github.com/CoreSecurity/impacket/blob/master/examples/wmiquery.py:它允许发出 WQL 查询并获取对象的描述

2) https://github.com/CoreSecurity/impacket/blob/master/examples/wmiexec.py:与 psexec 类似的方法,但通过 WMI 执行命令

【讨论】:

  • 嗨@beto,我一直在尝试找出Impacket 支持/实现WM​​I 的程度。官方表示它是部分/完整的,这不太有用。你能帮帮我吗?
【解决方案2】:

如其名称所述,wmi-client-wrapper 包是 wmic 客户端的包装器。因此,您首先需要安装 wmic 才能使其工作。要安装 wmic,只需在你的 linux 机器上运行:

sudo aptitude install wmi-client

安装 WMIC 后,您的 wmi-client-wrapper 应该可以按照示例中的说明工作:

import wmi_client_wrapper as wmi

wmic = wmi.WmiClientWrapper(
    username="Administrator",
    password="password",
    host="192.168.1.149",
)

output = wmic.query("SELECT * FROM Win32_Processor")

您可以在此链接http://felimwhiteley.wordpress.com/2008/08/15/wmi-calls-from-linux/中找到有关 wmic 的更多信息

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-15
    相关资源
    最近更新 更多