COMポートの検索っていろいろやり方があるみたい。
一番すんなりいった方法はこれ↓

'[%(COM%)]を探してねっというクエリを宣言する
Dim query1 As ManagementObjectSearcher = _
New ManagementObjectSearcher("Select * from Win32_PNPEntity" & _
" Where (Name like '%(COM%)')")

'探した結果を取得して保持する
Dim queryCollection1 As ManagementObjectCollection = query1.Get()
'取得数
Debug.WriteLine(queryCollection1.Count.ToString & "個見つかった")

'ManagementObject形変数宣言
Dim mo As ManagementObject
For Each mo In queryCollection1
        Dim port_info As String = mo("Name").ToString
        Debug.WriteLine(port_info) 'ポート名
 Next