【问题标题】:WMI deprecated: how to query from .Net Core now?WMI 已弃用:现在如何从 .Net Core 查询?
【发布时间】:2020-03-05 14:41:25
【问题描述】:

我读过here that Microsoft is deprecating WMI。我需要在 .NET Core 中启动一个项目并从 Windows 查询信息,例如Win32_OperatingSystemWin32_LogicalDisk

我了解到您应该避免在 PowerShell 中使用 Get-WmiObject 并改用 Get-CimInstance。现在应该在 .Net Core 中使用什么(哪个 Nuget/库)来查询这些信息?

【问题讨论】:

  • 也许这个答案会帮助你stackoverflow.com/questions/57795873/…
  • 我想这是用友好的 .NET 类包装底层 api 的优势。当他们认为它变得足够重要时,他们可以更改包装器实现。所以对 the Nuget package、.NETCore 2.0 和 .NETStandard 2.0 的支持感觉很好。他们为什么不为 PowerShell 做这件事尚不清楚,我怀疑他们想让以前使用 WMI 工具的 devops 看起来熟悉它。

标签: windows .net-core wmi cim


【解决方案1】:

您可以使用适用于 .NET Core 的 Windows 兼容包(articlenuget),它使您可以访问许多仅限 Windows 的 API,但将您的应用程序限制为只能在 Windows 上运行,这可能不是您的应用程序。再担心。此兼容包也称为平台扩展。有了这个,您需要学习如何使用 System.Management 命名空间(API Refexample code 1example code 2)中的类。继续探索 API 以获取示例。

此外,似乎有一个更新的跨平台开源系统,类似于 Microsoft 制造的 CIM。虽然显然不是 WMI 中可用的所有东西都可用这个,所以你的里程会有所不同:https://www.nuget.org/packages/Microsoft.Management/https://www.nuget.org/packages/Microsoft.Management.Infrastructure/

希望这会有所帮助。

【讨论】:

猜你喜欢
  • 2016-12-04
  • 1970-01-01
  • 1970-01-01
  • 2017-06-10
  • 2013-12-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-07
相关资源
最近更新 更多