问题标签 [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 回答
803 浏览

c# - MSNdis_StatusMediaDisconnect 和设备唯一名称

我正在使用 ManagementEventWatcher 来观察使用 System.Management 的网络电缆断开连接。

带有 WQL: 的 ManagementEventWatcher SELECT * FROM MSNdis_StatusMediaDisconnect
并且在 EventArrived 时触发以下方法:

问题是:
我有 2 个网络接口,来自同一制造商,两种情况下,InstanceName 具有相同的值,我无法识别拔出的网络!

我已经尝试了 EventArrivedEventArgs 中的所有属性,但它们没有设备的约束 id ......比如设备 ID。

如何找出女巫网络接口被拔掉?

0 投票
2 回答
3859 浏览

c# - 我可以从 System.Management.EventArrivedEventArgs 对象中获取 ExecutablePath 吗?

我正在使用 System.Management.ManagementEventWatcher 来获取已启动进程的进程 ID 和可执行路径:

使用这个 WQL 查询:

从 Win32_ProcessStartTrace 中选择 ExecutablePath

有没有一种方法可以避免进行对象搜索,但仍然可以使用 EventArrivedEventArgs 对象中已有的内容获取 ExecutionPath?

我真正需要的是每个启动的新进程的 ProcessID 和 ExecuatblePath。这是最简单的方法吗?

0 投票
4 回答
2245 浏览

wmi - 带有可选列的 WQL SELECT

我需要进行这样的查询:

麻烦的是,AdapterTypeId 列并不总是存在。在这种情况下,我只想要一切,就像这样:

我的 WQL/SQL 知识非常有限。谁能告诉我如何在单个查询中执行此操作?

编辑:
似乎需要更多背景知识:我正在使用 WMI 向 Windows 查询设备信息,它使用类似 SQL 的语法。因此,在我的示例中,我正在查询 AdapterTypeId 为 0 的网络适配器。
但是,该列并不总是存在,这意味着如果我枚举返回的值,则不会列出“AdapterTypeId”。

编辑 2:
将 SQL 更改为 WQL;显然这是更正确的。

0 投票
1 回答
1835 浏览

c# - 构造函数ManagementObject(字符串路径)无法解析从查询Win32_GroupUser类(C#)中获得的字符串

因此,我 WMI 查询远程计算机以获取其Administrators组的成员:

它将PartComponent属性作为字符串返回。这是列表(为安全起见更改了名称)。域用户joeblowjanedoe并且确实是该机器中的本地管理员。

我在一个循环中遍历上述结果。在其中,我执行以下操作:

我这样做是为了从每个成员对象中提取 Domain 和 Name 属性。在一个完美的世界中,我将获得以下字符串列表作为最终结果:

但这就是发生的事情:ManagementObject使用该构造函数创建的对象是的!域,名称,标题,一切,所有null!除了第一个(本地管理员)。对于那个,构造函数像宣传的那样工作。

为什么会这样?是因为进行查询的用户不是域管理员吗?(不过,它目标机器上的本地管理员。实际上,它是OUR_DOMAIN\janedoe。)

0 投票
2 回答
1932 浏览

c# - 我有一个用户帐户的 SID,我想要它所属组的 SID

这必须从远程机器上获得。以下查询不适用于 SID,但适用于组和帐户名称。

它返回的 Win32_Group 对象以字符串的形式出现,它们只有域和名称(即使 Win32_Group 具有 SID 属性)。

我有这种下沉的感觉,我将不得不:

  1. 通过查询 Win32_SID 将 SID 转换为帐户名;
  2. 执行上面的查询;
  3. 通过查询 Win32_Group将每个生成的组名称转换为 SID。
0 投票
2 回答
5050 浏览

.net - 如何在不通过 .NET 中的集合枚举的情况下获取 ManagementObjects(WMI 结果)的计数

当通过 WMI 查询大量数据时(比如 windows 事件日志 Win32_NTLogEvent),在下载所有内容之前了解自己输入的数字是非常有用的。有两种方法吗?

据我所知,WQL 中没有“Select Count(*) FROM Win32_NTLogEvent”。

据我所知,ManagementObjectCollection 的 Count 属性实际上枚举了所有结果,无论您将 Rewindable 属性设置为 true 还是 false。

如果不能在.NET中完成,可以直接使用底层的IWbem对象来完成吗 谢谢

0 投票
3 回答
4086 浏览

c# - 当使用 WQL 从 WMI 查询 Win32_NTLogEvent 类时,TimeGenerated 属性是基于计算机的本地时间还是 GMT?

我正在编写一个 C# windows 服务,该服务正在通过一些域控制器上的事件日志进行一些搅动。其中一些是 Windows Server 2003,一些是 Windows Server 2008。服务停止后,我试图从日志中中断的地方继续。为了做到这一点,而不是

SELECT * FROM Win32_NTLogEvent WHERE --criteria for events I am looking for

我在做

SELECT * FROM Win32_NTLogEvent WHERE TimeGenerated = --some date AND --criteria for events I am looking for

在某一时刻,我确信 TimeGenerated 字段是服务器的本地时间,但现在 Windows 2008 服务器似乎正在使用 GMT 来记录该时间。任何人都可以阐明这是否是两个操作系统运行方式之间的真正不同,或者这是一个配置问题?

0 投票
2 回答
12926 浏览

c++ - 如何加入 WMI 查询 (WQL)

我想通过 WQL 查询获取引导硬盘的序列号。

可以使用以下查询检索引导分区:

序列号在 Win32_DiskDrive 中:

Win32_DiskDriveToDiskPartition具有Win32_DiskDriveto的映射Win32_DiskPartition。它们映射Win32_DiskDrive.DeviceIDWin32_DiskPartition.DeviceIDWin32_DiskDriveToDiskPartition

如何构建一个内部连接Win32_DiskPartition和的 WQL 查询Win32_DiskDrive?我必须使用关联器还是与 INNER JOIN 一起使用?

0 投票
2 回答
2855 浏览

wmi - WMI EventLog 时间间隔

大家好,

我正在尝试使用 WMI 和 WQL 获取事件日志条目。

我可以使用正确的源名称获取正确的日志,依此类推,但我可以进行选择查询以仅获取过去 5 或 10 分钟的结果。

这是我的查询:

0 投票
2 回答
3243 浏览

wmi - 使用 WQL 可靠地获取最新的事件日志记录

我编写了一个应用程序,它通过 Zenoss wmi-client 包从 linux 收集 Windows 日志。

它使用 WQL 查询事件日志并解析返回。我的问题是试图在日志中找到最新的条目。

我偶然发现了这个,它告诉我在这样的查询中使用 NumberOfRecords 列

并将其返回值用作最高日志。

我的问题是,我听说 Windows 事件日志是一个循环缓冲区,也就是说,当日志已满时,它会用新日志覆盖它最旧的日志。这会对 NumberOfRecords 有影响吗,好像发生这种情况一样,事件的“RecordNumber”属性将继续增加,但是事件日志中的实际记录数不会改变(对于每个写入的条目,都会删除一个)。

任何人都可以了解这实际上是如何工作的(NumberOfRecords 是最高的 RecordNumber,还是日志中的实际事件数),并可能提出解决方案?

更新

所以我们现在知道 NumberOfRecords 不能单独工作,因为 Event Log 是一个环形缓冲区。MS 解决方案是获取最旧的记录并将其添加到 NumberOfRecords 以获取实际的最新记录。

这可以通过 WinAPI 实现,但我是从 Linux 远程调用的。有谁知道我如何在我的场景中实现这一目标?

谢谢