ciao amicici

ho creato il codice seguente con il WMI code creator della microsoft ma non funziona.
se lo inserisco in un nuovo progetto vb.net, si luppa mi blocca la macchina e sono costretto a riavviare.
se lo stesso codice lo faccio in vbs funziona perfettamente.....

grazie
ciao

Imports System
Imports System.Drawing
Imports System.Collections
Imports System.ComponentModel
Imports System.Windows.Forms
Imports System.Data
Imports System.Management

Namespace WMISample

Public Class MyQuerySample
Inherits System.Windows.Forms.Form

Friend WithEvents userNameLabel As System.Windows.Forms.Label
Friend WithEvents userNameBox As System.Windows.Forms.TextBox
Friend WithEvents passwordBox As System.Windows.Forms.TextBox
Friend WithEvents passwordLabel As System.Windows.Forms.Label
Friend WithEvents OKButton As System.Windows.Forms.Button
Friend WithEvents closeButton As System.Windows.Forms.Button

Private components As System.ComponentModel.IContainer

Public Sub New()
MyBase.New()

InitializeComponent()
End Sub

Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)

If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub

<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()

Me.userNameLabel = new System.Windows.Forms.Label
Me.userNameBox = new System.Windows.Forms.TextBox
Me.passwordBox = new System.Windows.Forms.TextBox
Me.passwordLabel = new System.Windows.Forms.Label
Me.OKButton = new System.Windows.Forms.Button
Me.closeButton = new System.Windows.Forms.Button
Me.SuspendLayout()
'
' userNameLabel
'
Me.userNameLabel.Location = New System.Drawing.Point(16, 8)
Me.userNameLabel.Name = "userNameLabel"
Me.userNameLabel.Size = New System.Drawing.Size(160, 32)
Me.userNameLabel.TabIndex = 0
Me.userNameLabel.Text = "Enter the user name for the remote computer:"
'
' userNameBox
'
Me.userNameBox.Location = New System.Drawing.Point(160, 16)
Me.userNameBox.Name = "userNameBox"
Me.userNameBox.Size = New System.Drawing.Size(192, 20)
Me.userNameBox.TabIndex = 1
Me.userNameBox.Text = ""
'
' passwordBox
'
Me.passwordBox.Location = New System.Drawing.Point(160, 48)
Me.passwordBox.Name = "passwordBox"
Me.passwordBox.PasswordChar = "*"
Me.passwordBox.Size = new System.Drawing.Size(192, 20)
Me.passwordBox.TabIndex = 3
Me.passwordBox.Text = ""
'
' passwordLabel
'
Me.passwordLabel.Location = new System.Drawing.Point(16, 48)
Me.passwordLabel.Name = "passwordLabel"
Me.passwordLabel.Size = new System.Drawing.Size(160, 32)
Me.passwordLabel.TabIndex = 2
Me.passwordLabel.Text = "Enter the password for the remote computer:"
'
' OKButton
'
Me.OKButton.Location = New System.Drawing.Point(40, 88)
Me.OKButton.Name = "OKButton"
Me.OKButton.Size = new System.Drawing.Size(128, 23)
Me.OKButton.TabIndex = 4
Me.OKButton.Text = "OK"
'
' closeButton
'
Me.closeButton.DialogResult = System.Windows.Forms.DialogResult.Cancel
Me.closeButton.Location = New System.Drawing.Point(200, 88)
Me.closeButton.Name = "closeButton"
Me.closeButton.Size = New System.Drawing.Size(128, 23)
Me.closeButton.TabIndex = 5
Me.closeButton.Text = "Cancel"
'
' MyQuerySample
'
Me.AcceptButton = Me.OKButton
Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
Me.CancelButton = Me.closeButton
Me.ClientSize = New System.Drawing.Size(368, 130)
Me.ControlBox = false
Me.Controls.Add(Me.closeButton)
Me.Controls.Add(Me.OKButton)
Me.Controls.Add(Me.passwordBox)
Me.Controls.Add(Me.passwordLabel)
Me.Controls.Add(Me.userNameBox)
Me.Controls.Add(Me.userNameLabel)
Me.Name = "MyQuerySample"
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScree n
Me.Text = "Remote Connection"
Me.ResumeLayout(false)

End Sub

Public Overloads Shared Function Main() As Integer

Application.Run(New MyQuerySample)
End Function

Private Sub OKButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OKButton.Click

Try
Dim connection As New ConnectionOptions
connection.Username = userNameBox.Text
connection.Password = passwordBox.Text
connection.Authority = "ntlmdomain:xxxxxxx"

Dim scope As New ManagementScope( _
"\\x.x.x.x\root\CIMV2", connection)
scope.Connect()

Dim query As New ObjectQuery( _
"SELECT * FROM Win32_DiskDrive")

Dim searcher As New ManagementObjectSearcher(scope, query)

For Each queryObj As ManagementObject in searcher.Get()

Console.WriteLine("-----------------------------------")
Console.WriteLine("Win32_DiskDrive instance")
Console.WriteLine("-----------------------------------")
Console.WriteLine("Caption: {0}", queryObj("Caption"))
Next

Close()
Catch err As ManagementException
MessageBox.Show("An error occurred while querying for WMI data: " & err.Message)
Catch unauthorizedErr As System.UnauthorizedAccessException

MessageBox.Show("Connection error (user name or password might be incorrect): " & unauthorizedErr.Message)
End Try
End Sub

Private Sub closeButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles closeButton.Click

Close()
End Sub
End Class
End Namespace