1

Windows 7 64Bit を実行しています。

この問題は、数か月前に 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 ;   
            }
        }
    }
}

どんな提案もありがたく受け取られます。ありがとうございました。

4

0 に答える 0