我在这里读到 Microsoft 正在弃用 WMI 。我需要在 .NET Core 中启动一个项目并从 Windows 查询信息,例如
Win32_OperatingSystem
或Win32_LogicalDisk
。
我读到您应该在 PowerShell 中避免使用
Get-WmiObject
并使用 Get-CimInstance
来代替。现在应该在 .Net Core 中使用什么(哪个 Nuget/库)来查询此类信息?
您可以使用 .NET Core 的 Windows 兼容包(article、nuget),它使您可以访问许多仅限 Windows 的 API,但限制您的应用程序只能在 Windows 上运行,这可能不是您担心的事情关于。此兼容包也称为平台扩展。有了这个,您需要学习如何使用
System.Management
命名空间中的类(API Ref、示例代码 1、示例代码 2)。继续探索 API 的示例。
另外,貌似微软有一个比较新的类似CIM的跨平台开源系统。虽然显然并不是 WMI 中提供的所有功能都可用,所以您的情况会有所不同:https://www.nuget.org/packages/Microsoft.Management/ 和 https://www.nuget.org/packages/ Microsoft.管理.基础设施/
希望这有帮助。
我个人使用过https://github.com/MartinKuschnik/WmiLight,它的效果就像margic!