やまかわ あいみ横から失礼します。ファームウェア保護(System Guard セキュア起動)の状態をプログラムで確認する方法ですね。
直接的な単一のWindows API関数は提供されていませんが、標準的な方法としてWMI (Windows Management Instrumentation) を使用して確認することができます。 具体的には、Win32_DeviceGuardクラスのプロパティを調べることで、仮想化ベースのセキュリティ(VBS)関連の機能状態を取得可能です。
PowerShellを使った確認方法:
管理者としてPowerShellを開き、以下のコマンドを実行します。
Get-CimInstance -ClassName Win32_DeviceGuard -Namespace root\Microsoft\Windows\DeviceGuard
結果の確認ポイント:
コマンドを実行すると、いくつかのプロパティが表示されます。特に重要なのは以下の2つです。
SecurityServicesConfigured: 設定されているセキュリティサービスSecurityServicesRunning: 現在実行中のセキュリティサービス
これらのプロパティは数値の配列になっており、それぞれの数値が特定のサービスに対応しています。「3」が「System Guard セキュア起動」を意味します。
したがって、SecurityServicesRunningの配列に3が含まれていれば、ファームウェア保護(セキュア起動)が有効で実行中であると判断できます。
GUIで手軽に確認する場合は、ご存じかもしれませんが「ファイル名を指定して実行」からmsinfo32.exeを起動し、「システムの要約」内にある「仮想化ベースのセキュリティサービス(実行中)」の項目を確認する方法も有効です。 [11, 15, 18]