翻译《The Old New Thing》- How do I obtain the computer manufacturer’s name?

news2024/11/29 0:40:29

How do I obtain the computer manufacturer's name? - The Old New Thing (microsoft.com)icon-default.png?t=N7T8https://devblogs.microsoft.com/oldnewthing/20081218-00/?p=19783

Raymond Chen 2008年08月08日


如何获取计算机制造商的名字?

        一位客户想要一种方法来确定计算机制造商的名称。例如,他们想要通过某种函数调用并得到返回结果“IBM”、“Compaq”或“Dell”。

        我不知道他们为什么想要这些信息,目前我也不关心。

        当然,当你寻找信息时,你不会去搜索 MSDN;那是疯狂的人会做的事情。不,让我们直接启动注册表编辑器(regedit)并按 Ctrl+F(搜索)。

我无法想象有多少应用程序兼容性错误是由注册表编辑器中那个“有用”的 Ctrl+F 对话框造成的。

        客户找到了用于自定义系统控制面板的注册表键,以及也参与其中的 OEMINFO.INI 文件。但随后出现了可靠性问题。

        毕竟,由于它只是一个注册表键和一个 INI 文件,用户可以编辑它并让它显示任何他们想要的内容。

        如果客户擦除了他们的硬盘并从头开始重新安装 Windows,那么这些信息也会丢失。

        这位客户想要某种程度的保证,即如果计算机声明它是 Dell,那么它确实是 Dell。

        进入 WMI(Windows 管理工具)。

        脚本团队对 WMI 非常熟悉。如果你搜索短语“from Win32_ComputerSystem”,你将从《嘿,脚本小子!》栏目中找到一次又一次的命中。

        恰好 WMI 也暴露了计算机制造商信息。

        如果你查看脚本团队发布的脚本,可能三分之二的脚本都遵循这种模式:

strComputer = “.”
Set objWMIService = GetObject(“winmgmts:\\” & strComputer & “\root\cimv2”)
Set colItems = objWMIService.ExecQuery(“Select * from something“)
For Each objItem in colItems
     Wscript.Echo objItem.something
Next

我们所要做的就是填充“something”。

strComputer = “.”
Set objWMIService = GetObject(“winmgmts:\\” & strComputer & “\root\cimv2”)
Set colItems = objWMIService.ExecQuery(“Select * from Win32_ComputerSystem“)
For Each objItem in colItems
     Wscript.Echo “System Name: ” & objItem.Name
     Wscript.Echo “Manufacturer: ” & objItem.Manufacturer
     Wscript.Echo “Model: ” & objItem.Model
     Wscript.Echo
Next

        好的,我们可以利用 WMI 获取这些信息。但它有多可靠呢?

        嗯,WMI 团队告诉我,他们通过直接查询 SMBIOS 来获取信息,所以它的可靠性和你的 BIOS 一样。

        主要制造商会把他们的名字写入 BIOS,但如果你是在家用机器上运行,那么这些值就是主板上附带的。

        BIOS 制造商通常会在他们的 SMBIOS 中放置占位符字符串,将制造商设置为一个通用字符串,比如“Manufacturer”。

        当主板制造商安装 BIOS 时,他们应该用更有意义的内容替换占位符字符串,但大多数制造商并不在意。

        结果是,你从当地电脑商店购买零件组装的机器,制造商很可能只会显示“Manufacturer”。

        总结来说,如果你查询 WMI 获取计算机制造商,如果返回“Dell”,那么你可以相当确定你有一台 Dell 计算机。

或者有人非常闲得无聊,烧录了一个自定义 BIOS,上面写着“Dell”。

        另一方面,如果返回的是“Manufacturer”,那么你就仍然不清楚。

        你所知道的只是你有某种通用计算机。

        即使主要制造商会把他们的名字写入 BIOS,我听说如果你把你的电脑送回制造商,他们更换主板时,有时会忘记在更换的主板的 BIOS 中烧录他们的名字。

        因此,即使是品牌计算机,你也可能看到“Manufacturer”。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1804597.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vuInhub靶场实战系列--prime:2

免责声明 本文档仅供学习和研究使用,请勿使用文中的技术源码用于非法用途,任何人造成的任何负面影响,与本人无关。 目录 免责声明前言一、环境配置1.1 靶场信息1.2 靶场配置 二、信息收集2.1 主机发现2.1.1 netdiscover2.1.2 nmap主机扫描2.1.3 arp-scan主机扫描 2.2 端口扫描…

Flutter中同步与异步

一,同步/异步的理解 1,await:同步机制 同步操作会阻止其他操作执行,直到完成为止。同步就好比打电话一样,打电话时都是一个人在说另一个人听,一个人在说的时候另一个人等待,等另一个人说完后再…

OCP-042之:Oracle结构体系

1. Oracle结构体系 1.1 概述 1.1.1 版本 版本后缀所代表的含义 i:代表基于Internet架构的数据库,如9i g:代表基于grid(网格)的数据库,如11g grid的目的:降低成本,提高服务质量,简化管理 Storage Grid:ASM(automatic storage management),继承了LVM技术,Oracl…

Git【版本控制和Git的安装介绍】

01 【版本控制和Git的安装介绍】 工程设计领域中,使用“版本控制”管理工程蓝图的设计过程。在 IT 开发中也可以使用版本控制思想管理代码的版本迭代。 1.目的 协同修改:支持在服务器对同一个文件多人协同地修改; 数据备份:同时…

java中的异常-异常处理(try、catch、finally、throw、throws)+自定义异常

一、概述 1、java程序员在编写程序时提前编写好对异常的处理程序,在程序发生异常时就可以执行预先设定好的处理程序,处理程序执行完之后,可以继续向后执行后面的程序 2、异常处理程序是在程序执行出现异常时才执行的 二、5个关键字 1、tr…

11 gpio 与 pinctrl 子系统

1、GPIO 硬件结构 GPIO 是通用输入/输出端口的简称。GPIO 的引脚与外部硬件设备连接,可实现与外部通讯、控制外部硬件或者采集外部硬件数据的功能。 八种工作模式 GPIO_Mode_AIN 模拟输入 GPIO_Mode_IN_FLOATING 浮空输入 GPIO_Mode_IPD 下拉输入 GPIO_Mode_IPU 上拉输入GP…

Hadoop笔记

1.hadoop环境搭建,linux命令(vi);2.分布式的基本概念,cap理论(遵循此原则开发分布式数据库),hdfs,mapreduce;3.3.1;3.2重点;4.map,reduce过程,优缺…

DBeaver无法连接Clickhouse,连接失败

DBeaver默认下载的是0.2.6版本的驱动,但是一直连接失败: 报错提示 解决办法 点击上图中的Open Driver Configuration点击库 - 重置为默认状态在弹出的窗口中修改驱动版本号为0.2.4或者其他版本(我没有试用过其他版本)&#xff0…

c++【入门】求圆环的面积

限制 时间限制 : 1 秒 内存限制 : 128 MB 题目 如下图所示的圆环铁片,中间是空心的,已知圆环外圆的半径是r1厘米(如:10cm),内圆半径是r2厘米(如:6cm),请编…

stm32最小系统焊接调试总结

stm32最小系统打板后,接下来开始焊接元器件,焊接元器件可以参考立创EDA焊接辅助工具。 图1 焊接辅助助手 焊接准备工具有,焊台,放大镜,元器件,镊子,焊锡膏,锡丝及万用表等。调节焊台温度到350-400摄氏度。焊接顺序是先焊接USB typec接口,5V电源,ldo,ch340,stm32芯片…

标准发布实施 | 《村镇污水处理一体化集成装备技术规范》

根据《中华人民共和国标准化法》以及国家标准化管理委员会、民政部联合制定的《团体标准管理规定》,依据全国团体标准信息平台和《中华环保联合会团体标准管理办法(试行)》,全国团体标准《村镇污水处理一体化集成装备技术指南》&a…

32.768k晶振FC-135R在智能手表手环中的作用

随着智能设备的普及,智能手表和手环已经成为人们日常生活中不可或缺的科技产品。晶振在智能手表手环中的作用是通过传感器给智能手环连接提供信号频率,是很重要的核心部位,这些设备的核心在于其精准的时钟管理和低功耗特性,32.768…

Polar Web【中等】xxe

Polar Web【中等】xxe Contents Polar Web【中等】xxe思路&探索EXP运行&总结 思路&探索 如题目所示,此题考查XXE漏洞,具体细节需要逐步深挖 打开站点,提示了flag所在的文件,点击按钮,可见php的配置信息&am…

【CS.DB】深度解析:ClickHouse与Elasticsearch在大数据分析中的应用与优化

文章目录 《深入对比:在大数据分析中的 ClickHouse和Elasticsearch》 1 介绍 2 深入非关系型数据库的世界2.1 非关系型数据库的种类2.2 列存储数据库(如ClickHouse)2.3 搜索引擎(如Elasticsearch)2.4 核心优势的归纳 3…

[word] word文字间隙怎么调整? #媒体#职场发展

word文字间隙怎么调整? 在文档中的数据包含英文、数字、中文等,会有间隙,有时候误以为是空格,但是根本删除不了,其实这是默认的间隙,是可以调整的,下面教大家word文字间隙怎么调整的操作&#…

【Modelground】个人AI产品MVP迭代平台(4)——Mediapipe视频处理网站介绍

文章目录 介绍模型配置输入输出核心实现(源码)总结 介绍 这篇文章我将硬核介绍Modelground的第一个产品——Mediapipe视频处理!网站入口为https://tryiscool.space/ml-video/,如图所示,欢迎体验。 tip: 由于服务器带宽…

以客户为中心:消费电子行业的产品研发之道

在消费电子行业这片快速变化的领域中,产品的迭代更新和技术的创新是推动行业不断前进的动力。然而,随着市场的日益成熟和消费者需求的多样化,如何确保产品能够满足目标用户的需求,成为摆在每一个产品研发团队面前的难题。本文将探…

理解JVM内存模型与Java内存模型(JMM)

理解JVM内存模型与Java内存模型(JMM) 在Java程序的运行过程中,内存管理和线程的同步是两个重要的概念。本文将深入探讨JVM内存模型(Java Virtual Machine Memory Model)和JMM(Java Memory Model&#xff0…

PyTorch学习5:Logistic回归

文章目录 前言一、分类问题简介二、示例1.示例步骤2.示例代码 总结 前言 介绍利用PyTorch实现Logistic回归的分类问题 一、分类问题简介 分类问题的输出为属于每一个类别的概率,概率值最大的即为所属类别。最常见的Sigmoid函数:Logistic函数。 二、示…

了解Java内存模型(Java Memory Model, JMM)

了解Java内存模型(Java Memory Model, JMM) Java内存模型(Java Memory Model, JMM)是Java语言规范中规定的一组规则,定义了多线程程序中变量(包括实例字段、静态字段和数组元素)的访问方式。JM…