UWFは、uwfmgrを利用する以外に、Windows Management Instrumentation(WMI)から制御することもできます。WMIは、PowerShellや.NETアプリケーションからアクセスしやすく、設定や状態を確認するのに非常に便利です。
UWF WMIプロバイダーは、Unified Write Filter WMI provider referenceで提供されており、レファレンスを確認することができます。
PowerShellによるUWFの制御方法については詳細な記事が多数ありますので、今回はC#によるUWFの制御方法を紹介します。
Visual Studioで、C#のアプリケーションプロジェクトを用意してください。WPF(Windows Presentation Foundation)でもWindows Formでも同様です。プロジェクトを用意したら[プロジェクト]−[参照の追加]からSystem.Managementを追加してください(図2)。
そして、以下の要素を追加することで、WMIを利用することが可能になります。
以下のリスト1は、UWFのフィルターが有効かどうかを確認するコードになります。
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Management; namespace WindowsFormsApp1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); ManagementScope scope = new ManagementScope(@"root\standardcimv2\embedded"); ManagementClass UWFFilter = new ManagementClass(scope.Path.Path, "UWF_Filter", null); foreach (ManagementObject mo in UWFFilter.GetInstances()) { if (mo.GetPropertyValue("CurrentEnabled").ToString() == "True") { label1.Text = "on"; } else { label1.Text = "off"; } } } } }
UWF WMIプロバイダーは、uwfmgrで可能な全ての動作が提供されています。独自のuwfmgrを開発することも、独自のアプリケーションからUWFの詳細な制御を行うことも可能です。
今回はUWF WMIプロバイダーを紹介しましたが、Windows 10 IoTで提供されるロックダウン機能も同様に、WMI経由で全ての設定と制御が可能となっています。ロックダウン機能を理解するには、WMIプロバイダーを参照するのも1つの手段かもしれません。
次回は、Shell Launcher(シェルランチャー)とKeyboard Filter(キーボードフィルター)について解説します。
Copyright © ITmedia, Inc. All Rights Reserved.