[英]Programmatically determine if Windows 8 secure boot is enabled
我正在編寫一個安全應用程序,用於驗證用戶計算機上的許多安全規則和策略。 我需要實現一個測試方法,該方法在啟用Windows 8的安全啟動功能時返回true,或在禁用時返回false。
我搜索了信息,我看到這是一個BIOS功能。 所以我的問題是:是否可以使用C#代碼獲取Windows 8安全啟動的狀態? 如果有,怎么樣?
更新:請參閱@ magicandre1981的答案,重要的是要提到狀態注冊表項僅在支持安全啟動功能時存在。 如果您在計算機上找不到此密鑰,則可能是您的計算機不支持安全啟動。
檢查安全啟動狀態/支持轉到運行 - > msinfo32.exe並搜索“安全啟動狀態”
當然,Windows 10的代碼也很好,並且應該處理大多數條件,包括遺留密鑰和缺失密鑰和異常,以及未來。打印到控制台同時還返回批處理或腳本使用的標志:
using System;
using Microsoft.Win32;
namespace CheckSecureBoot
{
class Program
{
static int Main()
{
int rc = 0;
string key = @"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecureBoot\State";
string subkey = @"UEFISecureBootEnabled";
try
{
object value = Registry.GetValue(key, subkey, rc);
if (value != null)
rc = (int)value;
}
catch { }
Console.WriteLine($@"{subkey} is {(rc >= 1 ? "On" : "Off")} ({rc.ToString()})");
return rc;
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.