Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net WMI Win32_OperatingSystem OSArchitecture字段导致异常_.net_Wmi - Fatal编程技术网

.net WMI Win32_OperatingSystem OSArchitecture字段导致异常

.net WMI Win32_OperatingSystem OSArchitecture字段导致异常,.net,wmi,.net,Wmi,我正在尝试获取有关从WMI安装的Windows版本的信息。大多数领域都在工作。我可以获得操作系统“名称”和“版本”,这两个字段都是我拥有的Win32_OperatingSystem对象的字段 但另一个字段“OSArchitecture”生成异常(“未找到”) 文档说明该字段应该存在,并且是一个字符串: 有什么想法吗?你最初的问题是这样的: strOSArchitecture = mo("Architecture") 应该是: strOSArchitecture = mo("OSArchite

我正在尝试获取有关从WMI安装的Windows版本的信息。大多数领域都在工作。我可以获得操作系统“名称”和“版本”,这两个字段都是我拥有的Win32_OperatingSystem对象的字段

但另一个字段“OSArchitecture”生成异常(“未找到”)

文档说明该字段应该存在,并且是一个字符串:


有什么想法吗?

你最初的问题是这样的:

strOSArchitecture = mo("Architecture")
应该是:

strOSArchitecture = mo("OSArchitecture")
既然您已经确认这是问题中的一个简单输入错误(不是您的实际代码),那么另一种可能是您运行的是Server 2003、2000、NT4、XP或Me/98/95,其中文档将
OSArchitecture
键列为不可用?

以查看可用属性的当前(运行时)列表,遍历
属性
属性。 在控制台应用程序中,它看起来像:

For Each mo In searcher.Get
    Console.WriteLine("..." + mo.Properties.Count.ToString() + " properties")
    For Each prop In mo.Properties
        Console.WriteLine(prop.Name)
    Next
    '...

在我的XP安装中,列出的61个属性名称中没有出现任何
OSArchitecture

可能是一个愚蠢的问题…您是否在win32 OS上运行查询…我想如果是x64,它可能不在那里。它在32位Windows 7上运行。抱歉,它确实在运行。在尝试使用不同的名称修复此问题后,我粘贴了错误版本的代码。“OSArchitecture”出现异常。我将编辑我的问题。我现在意识到它取决于目标机器。我用Gimel的想法编写了一个小程序moTest,并在2003年和2008年的机器上运行它。2008年计算机返回了一个具有OSArchitecture属性的mo,而2003年计算机返回了一个不具有OSArchitecture属性的mo。您能否编辑您的答案以删除对属性名称的更正并仅包含实际答案?这将解释此异常。但是,既然实际的本机WMI类定义了这样一个字段(OSArchitecture),为什么它不作为属性存在呢?桥上的虫子?
For Each mo In searcher.Get
    Console.WriteLine("..." + mo.Properties.Count.ToString() + " properties")
    For Each prop In mo.Properties
        Console.WriteLine(prop.Name)
    Next
    '...