WMI - Informations sur machine d'un réseau - Vista bloque...
jullouyot_46
Messages postés43Date d'inscriptionjeudi 9 décembre 2004StatutMembreDernière intervention11 octobre 2013
-
27 janv. 2009 à 11:55
jullouyot_46
Messages postés43Date d'inscriptionjeudi 9 décembre 2004StatutMembreDernière intervention11 octobre 2013
-
27 janv. 2009 à 14:50
Bonjour,
je réalise une petite appli dans le but de visualiser les machines de
mon domaine, et peut être pas la suite, pourvoir les administrer à
distance.
Je suis dans un domaine AD, 2003 serveur et développe sur .Net 2008.
Je me sers de WMI (pas des masses des masses d'info dessus...) et ça
fonctionne assez bien pour les serveurs (2000 et 2003) mais pas pour
les postes sous vista. Je désactive le pare feu Vista, et là, ça
fonctionne...
Je dispose d'une listbox1, à gauche, avec les noms de toutes les machines du domaine.
ma listbox2, à droite, affiche le résultat des actions lancées par des boutons placés au centre.
Ici, j'ai mis l'exemple du bouton "capacités des disques"
#Region "Déclarations"
'SYSTEM.MANAGEMENT
Dim myConnectionOptions As System.Management.ConnectionOptions
Dim myManagementScope As System.Management.ManagementScope
Dim myObjectSearcher As System.Management.ManagementObjectSearcher
Dim myObjectCollection As System.Management.ManagementObjectCollection
Dim myObject As System.Management.ManagementObject
Dim aObjectQuery As System.Management.ObjectQuery
#End Region
'Procedure de connexion à la machine monServeur placée en paramètre
myManagementScope = New System.Management.ManagementScope(ChaineDeConnexion, myConnectionOptions)
'* connection au WMI namespace
myManagementScope.Connect()
If myManagementScope.IsConnected = False Then
MessageBox.Show("Impossible de se connecter au namespace WMI")
End If
Catch ex As Exception
MessageBox.Show("Erreur générale: " & ex.Message)
End Try
End Sub
'Bouton1: va chercher la capacité des disques durs.
'capacités Disques
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Try
If ListBox1.SelectedItem Is Nothing Then
MessageBox.Show("Vous devez sélectionner une machine du réseau")
Else
ListBox2.Items.Clear()
Connexion(ListBox1.SelectedItem.ToString)
EspaceDisque()
End If
Catch ex As Exception
MessageBox.Show("Erreur générale: " & ex.Message)
End Try
End Sub
'fonction associée:
Private Sub EspaceDisque()
'La classe ObjectQuery représente une requête de gestion qui retourne des instances ou des classes
aObjectQuery = New System.Management.ObjectQuery("select * from Win32_LogicalDisk where DriveType=3")
'La classe ManagementObjectSearcher permet d'extraire une
collection d'objets de gestion, en fonction de la requête spécifiée
lors de son instanciation par le paramètre ObjectQuery ou directement
par une string si l'on " code en dur ".
myObjectSearcher = New ManagementObjectSearcher(myManagementScope, aObjectQuery)
'ManagementObjectCollection représente différentes collections d'objets de gestion extraits via WMI.
myObjectCollection = myObjectSearcher.Get()
myObject = New System.Management.ManagementObject
For Each myObject In myObjectCollection
Dim EspaceTotal As Double = myObject.GetPropertyValue("size") / (1024 * 1024)
Dim EspaceLibre As Double = myObject.GetPropertyValue("freespace") / (1024 * 1024)
Dim PourcentageUtilisé As Double = myObject.GetPropertyValue("freespace") * 100 / myObject.GetPropertyValue("size")
jullouyot_46
Messages postés43Date d'inscriptionjeudi 9 décembre 2004StatutMembreDernière intervention11 octobre 2013 27 janv. 2009 à 14:50
Je pense avoir trouvé...
sur les postes Vista, et à priori, aussi sur les postes XP SP2, il faut autoriser l'exception d'administration à distance entrante, comme l'explique l'article:
http://support.microsoft.com/default.aspx/kb/875605
bizarre, car par défaut, nous configurons XP et Vista de façons à ce qu'on puisse en prendre le controle à distance... D'ailleurs la connexion RDP se fait correctement !
maintenant, comment déployer ça sur mon domaine sans me taper poste par poste... par GPO ?