I have been asked on my post about How to get some information on Bitlocker using VBScript and WMI? if I could provide a solution using Visual Basic.

Here it is:

Imports System.Management 'Need to add System.Management reference to solution

Module Module1
    Sub Main()
        Dim arEncryptionMethod = {"None", "AES 128 With Diffuser", "AES 256 With Diffuser", "AES 128", "AES 256"}
        Dim arProtectionStatus = {"Protection Off", "Protection On", "Protection Unknown"}
        Dim arConversionStatus = {"Fully Decrypted", "Fully Encrypted", "Encryption In Progress", "Decryption In Progress", "Encryption Paused", "Decryption Paused"}
        Dim arLockStatus = {"Unlocked", "Locked"}

        Dim strComputer = "."
        Dim colItems As New ManagementObjectSearcher("\\" & strComputer & "\root\CIMV2\Security\MicrosoftVolumeEncryption", "SELECT * FROM Win32_EncryptableVolume")

        For Each objItem As ManagementObject In colItems.Get()
            Console.WriteLine("DeviceID: " & objItem("DeviceID"))
            Console.WriteLine("DriveLetter: " & objItem("DriveLetter"))
            Console.WriteLine(" EncryptionMethod: " & arEncryptionMethod(objItem.InvokeMethod("GetEncryptionMethod", Nothing, Nothing)("EncryptionMethod")))
            Console.WriteLine(" ProtectionStatus: " & arProtectionStatus(objItem.InvokeMethod("GetProtectionStatus", Nothing, Nothing)("ProtectionStatus")))
            Dim ConversionStatus As ManagementBaseObject = objItem.InvokeMethod("GetConversionStatus", Nothing, Nothing)
            Console.WriteLine(" ConversionStatus: " & arConversionStatus(ConversionStatus("ConversionStatus")))
            Console.WriteLine(" EncryptionPercentage: " & ConversionStatus("EncryptionPercentage") & "%")
            Console.WriteLine(" LockStatus: " & arLockStatus(objItem.InvokeMethod("GetLockStatus", Nothing, Nothing)("LockStatus")))

            Dim keyProtectors(1) As Object '[in, optional] uint32 KeyProtectorType, [out] string VolumeKeyProtectorID[]
            keyProtectors(0) = 0 'Get all key protector types -> http://msdn.microsoft.com/en-us/library/windows/desktop/aa376441(v=vs.85).aspx
            objItem.InvokeMethod("GetKeyProtectors", keyProtectors)
            For Each keyProtector In keyProtectors(1)
                Dim keyProtectorFriendlyName(1) As Object '[in] string VolumeKeyProtectorID, [out] string FriendlyName
                keyProtectorFriendlyName(0) = keyProtector
                objItem.InvokeMethod("GetKeyProtectorFriendlyName", keyProtectorFriendlyName)
                Console.WriteLine("  KeyProtector: " & keyProtectorFriendlyName(1))
        Next objItem
    End Sub

End Module

Visual Basic Bitlocker Info