2014-01-30 88 views
4

我想通过Visual Basic在Visual Studio中构建一个应用程序,并且正在提取当前机器的信息。基本上,我想要做的是在Visual Basic中提取Bitlocker的加密状态,如果C:驱动器是Bitlocked或不是Bitlocked,则输出。在Visual Basic中检查Bitlocker加密状态

我在网上查找了一些可以完成此操作的东西,但是我看到的所有内容都与WMI有关。这也表明WMI需要安装在你将要使用它的每台机器上。我只想在机器运行该文件后能够进入机器并将所有信息输出到表单中。我现在拉的一切代码如下:

Public Class ComputerInformation 
    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load 
     TextBoxComputerName.Text = Environment.MachineName 
     TextBoxOSVersion.Text = System.Environment.OSVersion.ToString 
     TextBoxOSFullName.Text = My.Computer.Info.OSFullName 
     TextBoxCurrentUser.Text = System.Environment.UserName 
     TextBox64Bit.Text = System.Environment.Is64BitOperatingSystem 
     TextBoxSystemDirectory.Text = System.Environment.SystemDirectory 
     TextBoxDomain.Text = System.Environment.UserDomainName 
     ' CHECK BITLOCKER STATUS HERE. 
    End Sub 
End Class 

一些帮助,也许一个解释将不胜感激! 谢谢!

+1

我做了一些搜索并在[FMAPI库](http:/ /)中找到[DetectEncryptedVolume](http://msdn.microsoft.com/en-us/library/dd239112(VS.85).aspx) /msdn.microsoft.com/en-us/library/dd239122(v=vs.85).aspx)这似乎做你所需要的。您应该能够在不通过WMI的情况下进行安装。不幸的是,我对Bitlocker进一步了解不够,但希望这会有所帮助。 –

+0

感谢这个史蒂文。但是,我确实看到代码是C++,我正在使用Visual Basic编译我的所有数据!谢谢你! –

+2

从VB.NET可能通过[pinvoke](http://msdn.microsoft.com/en-us/library/aa719104(v = vs.71).aspx)在C++ dll中调用函数。 –

回答

7

是的,您可以通过使用Win32_EncryptableVolume WMI类来进行查询。 ProtectionStatus属性告诉你加密是否打开。 WMI确实需要安装而不是。但是,只有在机器上存在Bitlocker时,Win32_EncryptableVolume类才可用。

要开始使用,请首先下载WMI Code Creator utility。它可以让你玩WMI查询,并自动生成你需要的VB.NET代码并进行测试。在菜单中,使用代码语言并选择“Visual Basic.NET”。从类组合框中选择Win32_EncyptableVolume并选择ProtectionStatus属性。点击“执行代码”进行测试。将生成的源代码复制/粘贴到您的程序中。还要检查没有Bitlocker的计算机上的代码,您需要了解您获得的例外情况,以便知道Bitlocker根本不存在。

+0

感谢这个解释汉斯。所以你说,即使我目前的机器上没有Bitlocker,这个类也不会显示,我甚至不能在Visual Studio中引用它。因为我正在将这个应用程序写入没有Bitlocker的计算机上。我下载了WMI Code Creator,甚至没有看到Win32_ExcryptableVolume ...我是否正确?谢谢! –

+1

“引用”一词不恰当,WMI类不是.NET类。您引用System.Management类。您可以从WMI代码创建器工具中知道“Win32_EncryptableVolume”只显示为一个字符串。您*需要在安装Bitlocker的计算机上运行它来测试它。 –