问题标签 [wmi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1768 浏览

c# - WMI 提供程序程序集中的 RunInstaller 属性

我正在类库中创建一个解耦的 WMI 提供程序。我读过的所有内容都指向包括以下内容:

我收集此安装的目的是因为 Windows WMI 基础结构在使用之前需要了解我的 WMI 提供程序的结构。

我的问题是 - 这个“安装程序”什么时候运行?MSDN 说安装程序将在“安装程序集期间”被调用,但我不确定这意味着什么,或者它何时会在包含 WMI 提供程序的类库的上下文中发生。

我的印象是,这是针对包含 WMI 提供程序的程序集手动运行InstallUtil.exe的自动替换,但我对提供程序所做的更改不会被 Windows WMI 基础结构识别,除非我从命令提示符手动运行 InstallUtil。我可以在开发过程中在自己的机器上执行此操作,但如果将使用提供程序的应用程序部署到其他机器 - 那么怎么办?

看来这个 RunInstaller / DefaultManagementInstaller 组合不能正常工作 - 对吗?

0 投票
2 回答
1865 浏览

c# - 如何在 .net 中为网络适配器设置 dns 搜索后缀?

我编写了一个命令行实用程序,用于检测连接的网络接口,并为其设置 staitc ip 地址和 dns 服务器(通过调用 netsh)。但是,我似乎无法弄清楚如何设置 dns 搜索后缀。netsh 似乎没有能力做到这一点。否则我该怎么做(也许是WMI)?

0 投票
1 回答
451 浏览

.net - 软盘 Win32_LogicalDisk 失败

使用 Bob King 的想法,我编写了以下方法。

它适用于 CD、可移动驱动器、常规驱动器。

但是对于软盘,它总是返回“不可用”。有任何想法吗?

0 投票
3 回答
1901 浏览

windows - 我如何知道 Windows 是否刚刚从 BSOD 中恢复?

来自http://support.microsoft.com/kb/317277:如果 Windows XP 由于严重错误而重新启动,Windows 错误报告工具会提示您...

我的应用程序如何知道“Windows XP 由于严重错误而重新启动”?

0 投票
5 回答
19362 浏览

c++ - EnumDisplayDevices vs WMI Win32_DesktopMonitor,如何检测活动监视器?

对于我当前的 C++ 项目,我需要为在大量计算机上连接并处于活动状态的每个监视器检测一个唯一的字符串。

研究指出了两种选择

  1. 使用 WMI 并在 Win32_DesktopMonitor 中查询所有活动监视器。使用 PNPDeviceID 唯一标识监视器。

  2. 使用 EnumDisplayDevices API,并向下挖掘以获取设备 ID。

我有兴趣使用设备 ID 来识别唯一的型号,因为使用默认即插即用驱动程序的监视器将报告一个通用字符串作为监视器名称“默认即插即用监视器”

我一直在使用 WMI 方法遇到问题,它似乎只在我的 Vista 机器上返回 1 个显示器,查看文档发现它在非 WDDM 设备上无法正常工作。

EnumDisplayDevices 从后台服务(尤其是在 Vista 上)运行时似乎有点问题,如果它在会话 0 中,它将不返回任何信息。

  • 有没有其他人必须做类似的事情(为所有连接的有源监视器找到唯一的模型字符串?)

  • 哪种方法效果最好?

0 投票
8 回答
22098 浏览

.net - 检测处理器数量

您如何检测 .net 中的物理处理器/内核的数量?

0 投票
6 回答
2413 浏览

c# - 查询机器规格

有哪些方法可以通过编程接口查询本地机器的规格(CPU 规格、操作系统版本、显卡规格和驱动程序等一系列内容)?我们正在用 C# 编写一个简单的应用程序来测试我们的主应用程序的兼容性,并希望它转储一些系统指标,但我似乎无法找到从哪里开始,使用什么接口,库,任何东西。

我尝试了各种搜索,但只能找到需要用户交互或必须安装的程序和 GUI 程序。

或者,只要允许我们将其与测试应用程序一起分发,一个小型命令行程序也可以正常工作。

我找到了一个程序,它可以获得我想要的一些规范,PsInfo。然而,它似乎要求每个用户在第一次运行时同意一些许可,即使它是一个命令行应用程序。另外,它只处理操作系统/CPU 信息,我需要的还不止这些。

另外:忘了明确提及,但这确实只对 Windows 机器是必需的。你们好快啊!

编辑:这个 WMI 看起来确实像我需要的,谢谢!虽然有很多蠕虫,所以我必须深入研究。它提到对于某些事情,用户必须具有管理员权限;这可能不会是一个大问题,但它可能会限制它一点。

0 投票
5 回答
7811 浏览

windows - 如何确定接口是否是 Windows PC 上的物理 LAN 端口?

我正在寻找一种方法来准确确定接口是否是 Windows 中 PC 上的物理 802.3 以太网端口。

使用 ipconfig /all 我可以列出所有接口,当我在我的电脑上执行此操作时,可以在此处列出几个条目,包括 VPN、蓝牙、Wifi 和物理以太网接口。

我正在寻找类似“isPhysical(interface)”的东西。(有多个物理网口没问题,我只想知道是不是物理网口)。

更新:

杰伊和克里斯谢谢!

(评论空间不够,我就在这里发)

我目前正在考虑使用 WMI Win32_NetworkAdapter。但是,它显示了 AdapterType="Ethernet 802.3" 的 4 个接口。

我的电脑上只有 1 个物理端口,其他端口的名称为“虚拟机网络服务驱动程序”。(我认为这些是我的公司出于某些邪恶的原因安装的)

我在界面中找到了我需要的属性,但是在winXP下没有!!!

PhysicalAdapter 数据类型:布尔型 访问类型:只读

指示适配器是物理适配器还是逻辑适配器。如果为 True,则适配器是物理的。Windows Server 2003、Windows XP、Windows 2000 和 Windows NT 4.0:此属性不可用。

除了对名称中的“虚拟”一词进行文本过滤之外,有什么方法可以确定它是否是物理端口?

更新 12/08

看起来虚拟接口是在安装 VM 时添加的。

以下是有关虚拟适配器的一些详细信息:http: //blogs.msdn.com/virtual_pc_guy/archive/2005/04/01/404816.aspx

发现如果用户没有管理员权限,WMI 界面不会返回所需数据的问题。所以,现在看看 GetAdapterInfo 方法。但是,它似乎在实际适配器的描述中添加了“虚拟机服务驱动程序”,使得“虚拟”文本检查无效。

GetAdapterInfo 返回的结构:

http://msdn.microsoft.com/en-us/library/aa366062(VS.85).aspx

0 投票
4 回答
6818 浏览

.net - WMI - 一般故障

我们有一个 .NET 应用程序,它使用 WMI 收集整个网络中机器上的各种信息,例如读取 Win32_NTLogEvent 以查看 Symantec Antivirus 是否编写了任何内容。查询工作正常,但在重复运行 WMI 查询后,“通用故障”错误将开始出现。这在大约之后非常一致地发生。125 个电话。重新启动我们正在对其运行 WMI 查询的机器,始终可以修复错误……直到运行下一个 125 个查询。

看起来存储库很好,我们找不到任何日志文件大小问题。

更多信息 - 得到错误后运行 WMIDiag 并发现 -

25607 13:55:38 (1)!!错误:WMI 枚举操作错误报告:2 错误!

25608 13:55:38 (0) ** - ROOT/CIMV2, SubClassesOf, '*', 0x80041006 - (WBEM_E_OUT_OF_MEMORY) 没有足够的内存用于操作。

25609 13:55:38 (0) ** MOF 注册:'C:\WINNT\SYSTEM32\WBEM\SNMPREG.MOF' 25610 13:55:38 (0) ** - Root/CIMv2、InstancesOf、'Win32_PerfFormattedData_PerfProc_Thread'、 0x8007000E - 没有足够的存储空间来完成此操作。

25611 13:55:38 (0) ** MOF 注册:'C:\WINDOWS\SYSTEM32\WBEM\WMI.MOF'

有人见过这个吗?想法?

0 投票
5 回答
8250 浏览

windows-installer - 为什么枚举已安装的 MSI 包这么慢?

这是这个问题的后续。

我正在使用这个稍作修改的脚本来枚举所有已安装的 MSI 包:

然而,令人惊讶的是其糟糕的表现。枚举我的 XP 机器上安装的 34 个 MSI 软件包需要 3 到 5 分钟!

相比之下,旁边的 Linux 机器需要 7 秒才能枚举 1400+ RPM...叹息

这有什么线索吗?