使用 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 解决了这个问题。
我有 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 解决了这个问题。