IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

lister les ordinateurs présents sur le réseau


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Février 2005
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aube (Champagne Ardenne)

    Informations forums :
    Inscription : Février 2005
    Messages : 30
    Par défaut lister les ordinateurs présents sur le réseau
    Bonjour,
    j'utilisais sous windows 7 cette fonction pour récupérer la liste des pc sur le réseau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    Public Function Liste_Ordi_Domaine(ByVal domaine As String) As String()
            Dim dirs, dir As System.DirectoryServices.DirectoryEntry
            Dim buf(-1) As String
            Dim ans As New System.Collections.Specialized.StringCollection()
            dirs = New System.DirectoryServices.DirectoryEntry("WinNT://" & Mon_domaine())
            For Each dir In dirs.Children
                ' collect data on all of our Domain PCs
                If dir.SchemaClassName = "Computer" Then
                    ans.Add(dir.Name)
                End If
            Next
            If ans.Count > 0 Then
                ReDim buf(ans.Count - 1)
                ans.CopyTo(buf, 0)
            End If
            Return buf
        End Function
    Mais depuis windows 10, celle ci ne retourne plus rien.
    Malgré mes recherches sur System.DirectoryServices rien y fait.
    De plus toutes les solutions que j'ai pus trouver date de 2017.
    Je suis sous Windows 10 Professionnel build 19043.1165 avec visual studio 2017.

    Merci de vos suggestions

  2. #2
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    Bonjour,

    Est-ce une erreur mais dans ton code au niveau du paramètre de ta méthode tu nommes ta variable comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ByVal domaine As String
    et dans le corps de ta méthode tu appelles :
    En bref domaine et Mon_Domaine() retournent peut être deux valeurs différentes ...o_O...

    De mon côté j'ai testé ceci sur Windows 10 et ca retourne correctement les objets computer de l'AD :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
      Public Sub ComputersInDomain(domainName As String)
            Using dirEntry As DirectoryEntry = New DirectoryEntry("WinNT://" & domainName)
                dirEntry.Children.SchemaFilter.Add("computer")
                Using txt As New StreamWriter("c:\Computers.txt")
                    For Each c As DirectoryEntry In dirEntry.Children
                        txt.WriteLine(c.Name)
                    Next
                End Using
            End Using
        End Sub
    Une autre question :

    Ton programme est-il exécuté avec une élévation de privilèges (en configurant le fichier MANIFEST) ? :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <requestedExecutionLevel  level="requireAdministrator"  uiAccess="false" />
    ++

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Février 2005
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aube (Champagne Ardenne)

    Informations forums :
    Inscription : Février 2005
    Messages : 30
    Par défaut
    Merci de ta réponse :
    Pour : ByVal domaine As String retourne bien le nom de domaine "WORKGROUP".

    Mon programme est-il exécuté avec une élévation de privilèges (en configurant le fichier MANIFEST) ? : OUI
    avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <requestedExecutionLevel  level="requireAdministrator"  uiAccess="false" />
    Merci pour le code, je vais tester cela, et reviens pour le résultat.

  4. #4
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    Citation Envoyé par developpeurvb Voir le message
    Merci de ta réponse :
    Pour : ByVal domaine As String retourne bien le nom de domaine "WORKGROUP".
    En fait tu ne veux pas retourner les postes disponibles dans un DOMAIN mais les postes disponibles dans un Groupe de travail (=LAN local). Ce n'est pas la même chose !!
    A moins d'voir nommé ton domain (Active Directory) Workgroup .......o_O

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     Public Sub ComputersInLocal()
            Using dirEntry As DirectoryEntry = New DirectoryEntry("WinNT:")
                dirEntry.Children.SchemaFilter.Add("computer")
                Using txt As New StreamWriter("c:\Computers.txt")
                    For Each c As DirectoryEntry In dirEntry.Children
                        txt.WriteLine(c.Name)
                    Next
                End Using
            End Using
        End Sub
    Bon codage ++

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Février 2005
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aube (Champagne Ardenne)

    Informations forums :
    Inscription : Février 2005
    Messages : 30
    Par défaut
    J'ai testé ta solution avant hier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     Public Function GetPCList() As List(Of String)
            Dim PCList As New List(Of String)
            Using dirEntry As System.DirectoryServices.DirectoryEntry = New System.DirectoryServices.DirectoryEntry("WinNT://" & Mon_domaine)
                dirEntry.Children.SchemaFilter.Add("computer")
                For Each c As System.DirectoryServices.DirectoryEntry In dirEntry.Children
                    PCList.Add(c.Name)
                Next
            End Using
            Return PCList
        End Function
    Celle-ci a fonctionné. mais ne fonctionne plus aujourd'hui !
    Alors je teste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Public Function GetPCList() As List(Of String)
            Dim PCList As New List(Of String)
            Using dirEntry As System.DirectoryServices.DirectoryEntry = New System.DirectoryServices.DirectoryEntry("WinNT:")
                dirEntry.Children.SchemaFilter.Add("computer")
                For Each c As System.DirectoryServices.DirectoryEntry In dirEntry.Children
                    PCList.Add(c.Name)
                Next
            End Using
            Return PCList
        End Function
    Mais pas mieux, la je me pose des questions.
    Je n'ais pas Active Directory, pas de domaine de réseau, c'est juste un simple WORKGROUP avec partage de fichiers et imprimantes.

  6. #6
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    Bonjour,

    C'est bizarre ce comportement o_O""
    Retente avec le code qui a fonctionné en mettant un bloc Try Catch et regardes s'il y a une erreur qui pop :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
     Public Function GetPCList() As List(Of String)
            Dim PCList As New List(Of String)
            Try
            Using dirEntry As System.DirectoryServices.DirectoryEntry = New System.DirectoryServices.DirectoryEntry("WinNT://" & Mon_domaine)
                dirEntry.Children.SchemaFilter.Add("computer")
                For Each c As System.DirectoryServices.DirectoryEntry In dirEntry.Children
                    PCList.Add(c.Name)
                Next
            End Using
            Catch ex as exception
                Msgbox(ex.tostring)
            End try
            Return PCList
        End Function

Discussions similaires

  1. Réponses: 1
    Dernier message: 25/05/2017, 23h10
  2. Lister les PC présents sur le réseau
    Par yassinevic dans le forum Langage
    Réponses: 5
    Dernier message: 02/08/2011, 12h32
  3. [Débutant] lister les ordinateurs connecter sur le reseau
    Par marouprod dans le forum VB.NET
    Réponses: 8
    Dernier message: 16/07/2011, 12h47
  4. lister les démons présent sur mon système
    Par Purple Haze dans le forum Administration système
    Réponses: 5
    Dernier message: 23/03/2007, 11h35
  5. Lister les "objets" présents sur le réseau
    Par n8ken dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 05/07/2006, 10h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo