问题标签 [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.
c# - MSNdis_StatusMediaDisconnect 和设备唯一名称
我正在使用 ManagementEventWatcher 来观察使用 System.Management 的网络电缆断开连接。
带有 WQL: 的 ManagementEventWatcher SELECT * FROM MSNdis_StatusMediaDisconnect
,
并且在 EventArrived 时触发以下方法:
问题是:
我有 2 个网络接口,来自同一制造商,两种情况下,InstanceName 具有相同的值,我无法识别拔出的网络!
我已经尝试了 EventArrivedEventArgs 中的所有属性,但它们没有设备的约束 id ......比如设备 ID。
如何找出女巫网络接口被拔掉?
c# - 我可以从 System.Management.EventArrivedEventArgs 对象中获取 ExecutablePath 吗?
我正在使用 System.Management.ManagementEventWatcher 来获取已启动进程的进程 ID 和可执行路径:
使用这个 WQL 查询:
从 Win32_ProcessStartTrace 中选择 ExecutablePath
有没有一种方法可以避免进行对象搜索,但仍然可以使用 EventArrivedEventArgs 对象中已有的内容获取 ExecutionPath?
我真正需要的是每个启动的新进程的 ProcessID 和 ExecuatblePath。这是最简单的方法吗?
wmi - 带有可选列的 WQL SELECT
我需要进行这样的查询:
麻烦的是,AdapterTypeId 列并不总是存在。在这种情况下,我只想要一切,就像这样:
我的 WQL/SQL 知识非常有限。谁能告诉我如何在单个查询中执行此操作?
编辑:
似乎需要更多背景知识:我正在使用 WMI 向 Windows 查询设备信息,它使用类似 SQL 的语法。因此,在我的示例中,我正在查询 AdapterTypeId 为 0 的网络适配器。
但是,该列并不总是存在,这意味着如果我枚举返回的值,则不会列出“AdapterTypeId”。
编辑 2:
将 SQL 更改为 WQL;显然这是更正确的。
c# - 构造函数ManagementObject(字符串路径)无法解析从查询Win32_GroupUser类(C#)中获得的字符串
因此,我 WMI 查询远程计算机以获取其Administrators
组的成员:
它将PartComponent
属性作为字符串返回。这是列表(为安全起见更改了名称)。域用户joeblow
,janedoe
并且确实是该机器中的本地管理员。
我在一个循环中遍历上述结果。在其中,我执行以下操作:
我这样做是为了从每个成员对象中提取 Domain 和 Name 属性。在一个完美的世界中,我将获得以下字符串列表作为最终结果:
但这就是发生的事情:ManagementObject
使用该构造函数创建的对象是空的!域,名称,标题,一切,所有null
!除了第一个(本地管理员)。对于那个,构造函数像宣传的那样工作。
为什么会这样?是因为进行查询的用户不是域管理员吗?(不过,它是目标机器上的本地管理员。实际上,它是OUR_DOMAIN\janedoe
。)
c# - 我有一个用户帐户的 SID,我想要它所属组的 SID
这必须从远程机器上获得。以下查询不适用于 SID,但适用于组和帐户名称。
它返回的 Win32_Group 对象以字符串的形式出现,它们只有域和名称(即使 Win32_Group 具有 SID 属性)。
我有这种下沉的感觉,我将不得不:
- 通过查询 Win32_SID 将 SID 转换为帐户名;
- 执行上面的查询;
- 通过查询 Win32_Group将每个生成的组名称转换为 SID。
.net - 如何在不通过 .NET 中的集合枚举的情况下获取 ManagementObjects(WMI 结果)的计数
当通过 WMI 查询大量数据时(比如 windows 事件日志 Win32_NTLogEvent),在下载所有内容之前了解自己输入的数字是非常有用的。有两种方法吗?
据我所知,WQL 中没有“Select Count(*) FROM Win32_NTLogEvent”。
据我所知,ManagementObjectCollection 的 Count 属性实际上枚举了所有结果,无论您将 Rewindable 属性设置为 true 还是 false。
如果不能在.NET中完成,可以直接使用底层的IWbem对象来完成吗 谢谢
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 来记录该时间。任何人都可以阐明这是否是两个操作系统运行方式之间的真正不同,或者这是一个配置问题?
c++ - 如何加入 WMI 查询 (WQL)
我想通过 WQL 查询获取引导硬盘的序列号。
可以使用以下查询检索引导分区:
序列号在 Win32_DiskDrive 中:
Win32_DiskDriveToDiskPartition
具有Win32_DiskDrive
to的映射Win32_DiskPartition
。它们映射Win32_DiskDrive.DeviceID
到Win32_DiskPartition.DeviceID
Win32_DiskDriveToDiskPartition
如何构建一个内部连接Win32_DiskPartition
和的 WQL 查询Win32_DiskDrive
?我必须使用关联器还是与 INNER JOIN 一起使用?
wmi - WMI EventLog 时间间隔
大家好,
我正在尝试使用 WMI 和 WQL 获取事件日志条目。
我可以使用正确的源名称获取正确的日志,依此类推,但我可以进行选择查询以仅获取过去 5 或 10 分钟的结果。
这是我的查询:
wmi - 使用 WQL 可靠地获取最新的事件日志记录
我编写了一个应用程序,它通过 Zenoss wmi-client 包从 linux 收集 Windows 日志。
它使用 WQL 查询事件日志并解析返回。我的问题是试图在日志中找到最新的条目。
我偶然发现了这个,它告诉我在这样的查询中使用 NumberOfRecords 列
并将其返回值用作最高日志。
我的问题是,我听说 Windows 事件日志是一个循环缓冲区,也就是说,当日志已满时,它会用新日志覆盖它最旧的日志。这会对 NumberOfRecords 有影响吗,好像发生这种情况一样,事件的“RecordNumber”属性将继续增加,但是事件日志中的实际记录数不会改变(对于每个写入的条目,都会删除一个)。
任何人都可以了解这实际上是如何工作的(NumberOfRecords 是最高的 RecordNumber,还是日志中的实际事件数),并可能提出解决方案?
更新
所以我们现在知道 NumberOfRecords 不能单独工作,因为 Event Log 是一个环形缓冲区。MS 解决方案是获取最旧的记录并将其添加到 NumberOfRecords 以获取实际的最新记录。
这可以通过 WinAPI 实现,但我是从 Linux 远程调用的。有谁知道我如何在我的场景中实现这一目标?
谢谢