在本地系统中使用VB.NET中的WMI查询获取Bitlocker信息时访问被拒绝

时间:2015-09-15 11:37:10

标签: vb.net wmi

我正在开发一个VB.NET应用程序来从本地系统获取Bitelocker信息。以下是我的代码。当我使用管理员权限运行时,此代码可以正常运行并返回结果。但是在没有管理员权限的情况下运行时会出错。

Dim arEncryptionMethod = {"None", "AES 128 With Diffuser", "AES 256 With Diffuser", _
    "AES 128", "AES 256"}
Dim arProtectionStatus = {"Protection Off", "Protection On", "Protection Unknown"}
Dim strComputer = "."

Dim colItems As New ManagementObjectSearcher("\\" & strComputer & _
    "\root\CIMV2\Security\MicrosoftVolumeEncryption",
    "Select * from Win32_EncryptableVolume " & "Where DriveLetter='C:'")

For Each objItem As ManagementObject In colItems.Get()
    ListBox1.Items.Add("Volume:" & objItem("DriveLetter"))
    ListBox1.Items.Add(" EncryptionMethod: " & arEncryptionMethod(objItem.InvokeMethod _
        ("GetEncryptionMethod", Nothing, Nothing)("EncryptionMethod")))
    ListBox1.Items.Add(" ProtectionStatus: " & arProtectionStatus(objItem.InvokeMethod _
        ("GetProtectionStatus", Nothing, Nothing)("ProtectionStatus")))
Next

1 个答案:

答案 0 :(得分:0)

通过编辑应用程序下的Administrator来授予您的程序RequestedExecutionLevel权限。您需要在解决方案下显示所有文件,查找app.manifest

更改默认值:<requestedExecutionLevel level="asInvoker" uiAccess="false" />

  <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />

另外在另一方面,当你打开这个文件时,它应该在那里有说明,解释你可以改变它的类型。