获取 NDIS 版本?
Get NDIS Version(s)?
我知道我可以使用 Windows PowerShell
Get-netadapter|select Name, ndisversion
将结果通过管道输出到文本文件,并从那里解析数据,但这有点老套。我想知道是否有办法使用更直接的方式获取相同的信息?即 WMI 或框架 class 等?我用 Google 搜索过,但一无所获。
所有 NetAdapter powershell cmdlet 都是 WMI 对象的精简包装器。所以你确实可以直接使用Microsoft.Management.Infrastructure
命名空间。
在这种情况下,您将枚举 root\standardcimv2\MSFT_NetAdapter
的实例以查看它们的 Name
和 DriverMajorNdisVersion
字段。
这不是关于 MI API 的完整教程,但这是该想法的伪代码草图:
var session = CimSession.Create(. . .);
foreach (var instance in session.EnumerateInstances(@"root\standardcimv2", "MSFT_NetAdapter")) {
var name = instance.CimInstanceProperties["Name"].Value as string;
var major = instance.CimInstanceProperties["DriverMajorNdisVersion"].Value as byte;
WriteLine($"{name}: {major}.{minor}");
}
我知道我可以使用 Windows PowerShell
Get-netadapter|select Name, ndisversion
将结果通过管道输出到文本文件,并从那里解析数据,但这有点老套。我想知道是否有办法使用更直接的方式获取相同的信息?即 WMI 或框架 class 等?我用 Google 搜索过,但一无所获。
所有 NetAdapter powershell cmdlet 都是 WMI 对象的精简包装器。所以你确实可以直接使用Microsoft.Management.Infrastructure
命名空间。
在这种情况下,您将枚举 root\standardcimv2\MSFT_NetAdapter
的实例以查看它们的 Name
和 DriverMajorNdisVersion
字段。
这不是关于 MI API 的完整教程,但这是该想法的伪代码草图:
var session = CimSession.Create(. . .);
foreach (var instance in session.EnumerateInstances(@"root\standardcimv2", "MSFT_NetAdapter")) {
var name = instance.CimInstanceProperties["Name"].Value as string;
var major = instance.CimInstanceProperties["DriverMajorNdisVersion"].Value as byte;
WriteLine($"{name}: {major}.{minor}");
}