Windows 10 IoTロックダウン機能の個別解説:Unified Write Filter待ったなし!組み込み機器のWindows 10 IoT移行(4)(3/3 ページ)

» 2018年10月22日 10時00分 公開
前のページへ 1|2|3       

UWFをWMIから制御する

 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)。

図2 図2 Visual StudioでC#のアプリケーションプロジェクトを用意し、[参照の追加]からSystem.Managementを追加する

 そして、以下の要素を追加することで、WMIを利用することが可能になります。

  • using System.Management;

 以下のリスト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";
                }
            }
        }
    }
}
リスト1 UWFのフィルターが有効かどうかを確認するコード

 UWF WMIプロバイダーは、uwfmgrで可能な全ての動作が提供されています。独自のuwfmgrを開発することも、独自のアプリケーションからUWFの詳細な制御を行うことも可能です。

 今回はUWF WMIプロバイダーを紹介しましたが、Windows 10 IoTで提供されるロックダウン機能も同様に、WMI経由で全ての設定と制御が可能となっています。ロックダウン機能を理解するには、WMIプロバイダーを参照するのも1つの手段かもしれません。



 次回は、Shell Launcher(シェルランチャー)とKeyboard Filter(キーボードフィルター)について解説します。

前のページへ 1|2|3       

Copyright © ITmedia, Inc. All Rights Reserved.