我有一个用Windows BitLocker加密的磁盘。如何使用Winforms中输入的密码解锁驱动器。如果我能做到这一点,我将能够在Winforms中使用加密驱动器上的文档。我在此地址尝试了这些步骤,但我只能访问BitLocker的状态,没有其他。
1u4esq0p1#
using System.Management; namespace WinForms { public class BitLocker { private readonly string _computerIp; public BitLocker(string computerIp) { _computerIp = computerIp; } /// <summary> /// Simple Usage for localhost: /// var bitlocker = new BitLocker("localhost"); /// var result = bitlocker.UnlockWithPassphrase("D:", "password"); /// </summary> /// <param name="driveLetter"></param> /// <param name="passphrase"></param> /// <returns></returns> public object UnlockWithPassphrase(string driveLetter, string passphrase) { object result = null; const string wmiNamespace = "\\\\{0}\\root\\CIMV2\\Security\\MicrosoftVolumeEncryption"; var scope = new ManagementScope(string.Format(wmiNamespace, _computerIp)); var query = new ObjectQuery("SELECT * FROM Win32_EncryptableVolume"); var searcher = new ManagementObjectSearcher(scope, query); var allVolumes = searcher.Get(); foreach (var o in allVolumes) { var volume = (ManagementObject) o; if (volume.Properties["DriveLetter"].Value.ToString() != driveLetter) continue; object[] methodArgs = { passphrase }; result = volume.InvokeMethod("UnlockWithPassphrase", methodArgs); } return result; } } }
请注意,它需要管理员权限。
1条答案
按热度按时间1u4esq0p1#
请注意,它需要管理员权限。