首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用System.Management查询VMware服务器

使用System.Management查询VMware服务器
EN

Stack Overflow用户
提问于 2011-05-26 00:29:26
回答 2查看 1K关注 0票数 0

摘要:是否可以在使用System.Management;查询WMI时指定要使用的端口

我在Linux下有一个python脚本,它使用WBEM查询许多ESXi服务器上的类,以检查不同子系统上的警告或错误。在此之前,我已经单独编写了一个WPF应用程序,该应用程序使用WMI查询多个WinTel机器的磁盘消耗等。

我想写一个新的WPF应用程序,它将执行与脚本相同的功能,我认为我可以使用WMI来实现这一点。以下是我的测试代码,为简洁起见,删除了错误处理,SetOptions是一个提供用户名和密码的私有函数:

代码语言:javascript
复制
 foreach (string hostname in Properties.Settings.Default.Hosts)
     foreach (string WMIclass in Properties.Settings.Default.Classes)
     {
     ObjectQuery Query = new ObjectQuery("SELECT * FROM " + WMIclass);
     ManagementObjectSearcher mos = GetMos(Query, hostname);
     foreach (ManagementObject mo in mos.Get())
         foreach (PropertyData pdc in mo.Properties)
             Debug.WriteLine(pdc.Name + " \t\t: " + pdc.Value);
     }

private ManagementObjectSearcher GetMos(ObjectQuery Query, string Hostname)
{
     ConnectionOptions Options = SetOptions();
     ManagementScope Scope = new ManagementScope("\\\\" + Hostname + "\\root\\cimv2", Options);
     return new ManagementObjectSearcher(Scope, Query);
}

问题是我在远程服务器上得到了一个不可用的RPC。我认为这是因为我首先尝试在135上建立一个RPC调用,该调用不是由ESX服务器托管的。我的问题是如何指定端口5989,或者在.net中有没有什么简单的东西可以用来执行我需要做的事情。我天真地认为WMI/WBEM之间的类结构看起来是一样的,当然这是可以做到的:-/

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-11-08 02:04:24

如上所述,.net中的WMI类不支持WBEM。最后,我围绕VMware.Vim.dll编写了一些代码,其中有一些关于我需要做什么的很好的文档。

票数 0
EN

Stack Overflow用户

发布于 2011-10-14 04:40:46

System.Management只能用于连接到其他运行WMI的Windows计算机,并且不支持WBEM。我见过的惟一的C# WBEM客户端库是http://code.google.com/p/wbemtools/,但它看起来不是很成熟。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6127742

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档