i making a sharedware in vista. but when i start vista, my application using wmi to get processor ID Return Empty String, Unless i run it in admin mode

(Once run at admin Mode, the code is ok until you restart vista.)

i read a lot in msdn , but found nothing useful.

my question is, how can i get the processor id under Vista UAC is there any other methods to do this.

this is my code:


vb .NET2.0

Dim strComputer As String = "."
Dim objWMIService As Object = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")

Dim colItems As Object = objWMIService.ExecQuery("Select * from Win32_Processor")
For Each objItem As Object In colItems

'return empty string, unless you run in admin mode.
MsgBox("Processor Id: " & objItem.ProcessorId)

'this line is always ok.
MsgBox("Maximum Clock Speed: " & objItem.MaxClockSpeed)