如何在 Asp.Net Core 上使用 ORMi 获取统一写入过滤器状态?

How can you get the Unified Write Filter status using ORMi on Asp.Net Core?

在我的 Asp.Net 核心 MVC Web 应用程序中,我需要知道是否启用了写入过滤器 (UWF)。

我目前正在开发 Windows 10 Enterprise。

经过大量谷歌搜索后,我发现可以通过访问 Windows Management Instrumentation (WMI) 来完成。 与 Asp.Net 不同,Asp.Net Core 需要一个名为 ORMi 的外部库才能使用 WMI。

尽管阅读了 Microsoft 文档,但我还是无法理解如何使它们正常工作... 我会把我用过的文档留给你:

Write Filter

ORMi

WMI

你们如何帮助我。谢谢!

我找到了解决方案。

首先你需要安装写入过滤器: 这是 guide

然后你需要在Visual Studio中安装ORMi NuGet Packet。

查看 this 网站以更好地了解 WMI。

我会把我写的代码留给你

[WMIClass("UWF_Filter")]
    public class UnifiedWriteFilter : WMIInstance
    {
        [WMIProperty("CurrentEnabled")]
        public bool IsEnabled { get; set; }

    }

    public void IsWriteFilterEnabled()
    {
        WMIHelper helper = new WMIHelper("root\standardcimv2\embedded");

        UnifiedWriteFilter unifiedWriteFilter = helper.QueryFirstOrDefault<UnifiedWriteFilter>(); // The query is correct

        if (unifiedWriteFilter.IsEnabled)
        {
            Console.WriteLine("Write filter Enabled");
            ViewBag.WriteFilterStatus = "enabled";
        }
        else
        {
            Console.WriteLine("Write filter Not Enabled");
            ViewBag.WriteFilterStatus = "disabled";
        }

    }