Mono .NET框架和WMI

7
我们有一个使用WMI的.NET项目,现在想将其移植到Mono框架。
看起来Mono不支持WMI。
是否有任何库可以添加WMI支持?
基本上我们想要从Linux/OS X桌面访问Windows服务器,使用WMI进行访问。
3个回答

5

Windows Management Instrumentation是微软实现的WBEM(基于Web的企业管理)。

有一些开源实现(例如openPegasus),您可能可以将其用作客户端,但无法确定MS使用了什么版本。如果您可以向服务器发送CIM查询,则可能会获得良好的结果。

请注意,Windows不支持通过http进行WMI,只支持DCOM / DCE-RPC,因此某些客户端将无法工作。快速搜索后,OpenPegasus将允许您使用WMI映射器访问Windows。如果不行,您始终可以在Windows上运行服务器组件。


5
关于WMI over HTTP,请查看WinRM,它似乎是XP、Win2003、Win2008和Vista的WS-Management实现。这定义了一种通过HTTP(S)(SOAP)访问Common Information Model(CIM)信息的方式。CIM由DMTF定义,而WMI是Microsoft对CIM的实现。
如果我正确地阅读了字母表,你应该能够使用Linux上的SOAP访问Windows机器上的WinRM(WS-Management),从而提供对WMI的访问(只要安装、运行并且没有被防火墙阻挡)。
无论在公司网络上运行此类东西是否被IT/安全允许都是另一回事:任何开放的端口都可能存在安全风险,而允许命令、控制和配置的端口则可能会造成严重漏洞。证书、IPSec和作用域防火墙规则是你的朋友!请注意,我没有直接使用WS-Management或WinRM的经验,所以 YMMV

1

我知道你可以在Linux上安装wmi-client(sudo apt-get install wmi-client)。你应该能够使用它从Linux命令行查询Windows框中的任何wmi对象。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接