我正在运行 Windows 7 64 位。
这个问题最近才出现,因为几个月前我一直在 WMI 的同一部分工作,没有出现问题。
这是一个特定于机器的问题,因为我已经在其他几台 PC 上尝试过这个测试程序并且它可以工作。
我已经运行了 wbemtest,与身份验证类型数据包连接,并成功枚举了 Win32_PerfFormattedData_PerfOS_Memory 对象,我可以查看 MOF 的内部结构,这是我在我的软件中尝试做的事情。
我还删除并重建了 WMI 存储库并尝试重新同步 PERF 数据。
我的 C# 应用程序还连接到 Packet 的身份验证类型。
这是我的简单测试应用程序 ( pastebin ) 的代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Management;
namespace WMITest
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show(Dump());
}
string Dump()
{
string HOST = "WILLIAM-PC";
string Data = "";
try
{
ConnectionOptions CO = new ConnectionOptions();
CO.Authentication = AuthenticationLevel.Packet;
ManagementScope Scope = new ManagementScope(@"\\" + HOST + @"\root\cimv2", CO);
Scope.Connect();
if (! Scope.IsConnected)
{
MessageBox.Show("Not connected!");
}
Scope.Options.EnablePrivileges = true;
SelectQuery Query = new SelectQuery("SELECT * FROM Win32_PerfFormattedData_PerfOS_Memory");
ManagementObjectSearcher MOS = new ManagementObjectSearcher(Scope, Query);
foreach (ManagementObject MO in MOS.Get())
{
foreach (PropertyData PD in MO.Properties)
{
Data = Data + PD.Name + " = " + PD.Value + "\n";
}
}
return Data;
}
catch (Exception E)
{
return "Exception: " +E.Message ;
}
}
}
}
任何建议将不胜感激。谢谢你。