使用 Win32_Product Class 时缺少软件条目

Missing software entry when using Win32_Product Class

我有 Windows Server 2012R2 运行 域控制器和客户端 Windows 7 SP1 的测试环境。

我使用此代码从客户端获取已安装软件的列表:

        ManagementScope scope = new ManagementScope("\\10.0.0.101\root\cimv2");
        scope.Connect();

        ObjectQuery query = new ObjectQuery("SELECT * FROM Win32_Product Where AssignmentType = 1");
        ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query);
        ManagementObjectCollection queryCollection = searcher.Get();

        foreach (ManagementObject item in queryCollection)
        {
            Console.WriteLine("Name: " + item["Name"].ToString());
            Console.WriteLine("PackageName: " + item["PackageName"].ToString());
            Console.WriteLine("PackageCode: " + item["PackageCode"].ToString());                
        }

我的问题是,在将客户端加入域之前,我只获得了客户端上安装的软件列表。连接到域后客户端上安装了任何东西,我在查询中没有看到它。

我借助远程注册表而不是 WMI 解决了这个问题。