问题标签 [wql]

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 投票
1 回答
366 浏览

c# - 在 WqlEventQuery 中为超过 1 个网络适配器编写查询在 c# 中失败

我正在尝试检测 2 个网络适配器的 DNS 更改。
我在 win 7 64 位机器上使用 c# .net 4.0。
监听网络适配器win注册表项的代码(在RegisterToDNSChanges里面):

此代码正确提取网络适配器,并希望通过使用 ManagementEventWatcher 来查询每个网络适配器的 DNS 更改,并查询超过 1 个网络适配器 ID。对于 1 个单个网络适配器,它可以完美运行,但是当有 2 个时,我在该捕获机制中收到错误“发生错误:未找到”。

被拒绝的查询如下所示:

仅 1 个网络适配器的成功查询如下所示:

您知道为什么 ManagementEventWatcher 会拒绝对 2 个不同网络适配器的查询吗?谢谢

0 投票
1 回答
264 浏览

iis - 从 Win32_PerfRawData_NETFramework_NETCLRMemory 中选择 PercentTimeinGC

希望你一切都好。

目标:从 Win32_PerfRawData_NETFramework_NETCLRMemory PercentTimeinGC 中提取 WMI 数据,如 perfmon = ".NET CLR Memory / % Time in GC" 中所示

环境 IIS 7,工作进程 Garden (4)(ASP .NET4.0 应用程序池)(4xw3wp.exe 进程)

故事:在本地 perfmon 中,我们可以在本地监控 4 个 w3wp.exe 实例用于垃圾收集的时间,我们希望将此数据导出到外部监控,如 PRTG 或自制的看门狗软件。

搜索网络并了解 wql 脚本和 WMI 查询使我们相信这很简单,但事实并非如此。

添加语句“SELECT PercentTimeinGC FROM Win32_PerfRawData_NETFramework_NETCLRMemory”无论我们尝试什么 wmi 测试工具或脚本,总是返回值“0”,但是搜索其他语句有几次指出这是正确的语句。

所以我们错过了一些东西,或者它根本不可能,我不相信。

希望这里的任何人都可以启发我们简短的交流;-)

感谢,并有一个愉快的一天。

麦克风

0 投票
1 回答
370 浏览

powershell - Get-CimAssociatedInstance 可以区分先行和从属的 win32_services 吗?

我正在尝试获取 win32_service 的关联实例列表,然后根据它们是“依赖”还是“需要”win32_service 来分离这些实例。

例如,我可以获得 WAS 服务的关联列表:

这使我能够获得与 WAS 相关的服务列表;但是,它没有说明它们是“先行”还是“从属”对象。

如果我使用 WQL,我可以看到对象是由先行键和从属键枚举的:

而且,我可以在使用“关联者”时指定密钥

是否可以在 Get-CimAssociatedInstance 中指定“角色”?或者,我是否坚持使用 WQL 来确定服务是否依赖/先行?

编辑:我特别想知道是否可以使用 Cim cmdlet 获取此信息。我知道 Get-Service 可以获取信息,但这不是我在这里要问的。

0 投票
1 回答
414 浏览

object - WQL 查询返回集合中的多个实例

我在 VBScript 中运行 WQL 查询以从我们的 SCCM 数据库中提取数据。我可以做其他所有的查询都按预期工作。它们通常返回一个对象集合,我可以使用标准方法循环并访问它:

当使用该objgroup.GetObjectText_方法在工作查询中的一个集合对象中显示数据时,我通常会看到如下内容:

每个对象中本质上都有一个实例(如果我的术语有误,请纠正我)具有我可以轻松访问的属性。

对于有问题的查询,我在每个对象中看到多个实例:

如何访问具有多个实例的对象中的属性?为什么它返回多个实例?

顺便说一句,这是我正在运行的查询:

0 投票
1 回答
1088 浏览

vbscript - 查询日期之间的事件日志记录

我正在编写一个 VBScript,它试图查询 WMI 系统日志以了解当月的启动和关闭情况,不幸的是,我在创建的查询中遇到了自动化错误。

我有一个函数可以为月初和月底动态创建一个 UTC(至少我认为它确实如此并且看起来正确),然后将其添加到查询字符串中,如下所示:

我试过用单引号代替双引号(使用CHR(34)我不知道更好的方法)。

我希望有人能够以我的方式指出错误并解释为什么这个查询不起作用。

0 投票
2 回答
800 浏览

powershell - 过滤器中的 WQL 不起作用

我正在尝试做类似的事情:

但我有一个错误:

Get-WmiObject:无效查询在行:1 char:14 + Get-WmiObject <<<< Win32_NetworkAdapterConfiguration -Filter "DefaultIPGateway!=NULL" + CategoryInfo:InvalidOperation: (:) [Get-WmiObject],ManagementException + FullyQualifiedErrorId:GetWMIManagementException, Microsoft.PowerShell.Commands.GetWmiObjectCommand

这很奇怪,因为当我尝试获取 DefaultIPGateway 值的类型时。它是现有值的 System.Array:

对于不存在的值,则为 NULL:

有人可以帮我理解为什么我的 WQL 不起作用以及我应该怎么做才能让它运行吗?

0 投票
0 回答
924 浏览

c# - C# WMI 查询:如何深入了解对象类型 System.Management.ManagementBaseObject?

我正在尝试以编程方式查询 WMI 以获取数据库服务器上的 SAN WWN 编号。我正在使用 WMI 命名空间 root\wmi 和 MSFC_FibrePortHBAAttributes 类。我的问题是我可以访问此类的 Attributes 属性,但我无法深入到该属性中以获取MSFC_FibrePortHBAAttributes.Attributes.PortWWN值。

在PowerShell中,查询如下(使用一个索引,因为有多个):

但是,我的任务是在 C# 中执行此操作。例如,在相关的类 MSFC_FCAdapterHBAAttributes 中,我可以通过以下方式使用 C# 查询 HBA 驱动程序名称:

这给了我:“DriverName:elxstor”,一个驱动程序名称。凉爽的。

但是,当我想使用相同的查询逻辑和方法来查询要查询的 MSFC_FibrePortHBAAttributes 类时MSFC_FibrePortHBAAttributes.Attributes.portwwn,我会卡住,因为 Attributes 是一个System.Management.ManagementBaseObject并且我无法弄清楚如何深入到对象中以获取它的底层属性。

如果我尝试:

我得到:“值:System.Management.ManagementBaseObject”并且for循环中的属性变量没有任何成员可以在WMI路径中走得更远。

任何帮助是极大的赞赏。让我知道是否需要进一步澄清,谢谢。

0 投票
0 回答
130 浏览

c++ - 进程创建/终止通知的 WQL 查询

我有一个WQL如下查询,列出了我系统的所有正在运行的进程。

现在我应该如何编写WQL查询以使用C++. 我试过了"SELECT * FROM __InstanceCreationEvent""SELECT * FROM Win32_ProcessStartTrace"等等。但它没有用。请帮忙。

0 投票
1 回答
550 浏览

c++ - 哪个方法调用了 IWbemObjectSink::Indicate 方法

我正在开发一个C++使用VS2010. 在我的代码中,我有两个WQL查询如下:

IWbemObjectSink::Indicate在创建或删除进程时,我将其名称从该方法打印到控制台中。当打印进程的名称时,我需要知道它是创建还是删除。我怎么会知道这个?有什么方法可以知道哪个异步方法调用了Indicate方法?

谢谢

0 投票
1 回答
143 浏览

wmi - 有没有办法以编程方式修改 SCCM 2012 中的报告?

我是一个团队的一员,该团队正致力于将我们现有的 SCCM 系统从 2007 年迁移到 2012 年。报告已被迁移,但由于表名和列名不一致,大多数查询都不起作用。

因此,我需要修改迁移的报告以反映 SCCM 2012 中的表名和列名。有超过 1000 个报告,所以我想编写这个过程的脚本。

有没有办法通过 WMI 而不是通过 SCCM 控制台以编程方式修改 SCCM 报告?