none
Ajouté un compte reseau dans le group administrateur via Remote ? RRS feed

  • Question



  • Bonjour a tous

    Voila j'ai fait un petit code qui crée un nouvelle utilisateur local ou distant le probleme dans ce code c'est qu'il fonctionne tres bien en local
    mais a distant il ne fonctionne qu'a moitié c'est a dire qu'il me crée bien l'utilisateur mais ne l'ajoute pas dans le group administrateurs
            Dim ad As New DirectoryEntry("WinNT://" & tbPing.Text & ",computer")
            Dim newUser As DirectoryEntry = ad.Children.Add("MonNewUser", "user")
            newUser.Invoke("SetPassword", New Object() {"#Mypassw0rd2009#"})
    
            newUser.CommitChanges()
    
            Dim AddGroup As DirectoryEntry = ad.Children.Find("administrateurs", "group")
            If AddGroup IsNot Nothing Then
                AddGroup.Invoke("Add", New Object() {newUser.Path.ToString()})
                Console.WriteLine("Création du compte réussie")
            End If

    Ce problème n'est pas très grave en soit car je souhaite ajouté un compte existant (réseau)
    Je pense qu'il faut faire une recherche du login depuis le LDAP (AD) et l'importer dans le group administrateurs mais je sais pas comment faire !

    Avez vous une idée ?

    En vous remercie d'avance


    Cordialement, Troxsa
    mardi 1 décembre 2009 10:19
    Auteur de réponse

Réponses


  • Bon ben j'ai fini par trouvé comment faire, je poste la source au cas ou d'autre personne en aurais besoin

            '
            ' Ajoute l'utilisateur (AD) dans le group Administrateurs
            '
            Dim de As New DirectoryEntry("LDAP://xxxxxxxxxxxxxxxxxxxxx")
            Dim deSearch As New DirectorySearcher() With {.SearchRoot = de, .Filter = "cn=xxxxxxx"}
    
            Dim group As New DirectoryEntry("WinNT://" & Computer.Text & "/Administrateurs")
            Dim Members As Object = group.Invoke("Members", Nothing)
            Dim ExistLocal = False
    
            For Each Member As Object In CType(Members, IEnumerable)
    
                Dim x As New DirectoryEntry(Member)
                If x.Name.ToLower = deSearch.FindOne.GetDirectoryEntry.Properties("cn").Value.ToString.ToLower Then
                    ExistLocal = True
                    Exit For
                End If
            Next
    
            If ExistLocal = False Then
                group.Invoke("Add", New Object() {"WinNT://" & de.Properties("dc").Value & "/" & deSearch.FindOne.GetDirectoryEntry.Properties("cn").Value})
            Else
                Console.WriteLine("Le compte exite deja")
            End If


    A bientot



    Cordialement, Troxsa
    • Marqué comme réponse TroxsaEditor vendredi 11 décembre 2009 09:29
    vendredi 11 décembre 2009 09:29
    Auteur de réponse

Toutes les réponses


  • J'ai trouvé ce petit bout de code qui fonctionne bien pour lister les utilisateurs, mais j'arrive toujours pas a créer ...

            Dim Admins As New DirectoryEntry("WinNT://" & tbPing.Text & "/Administrateurs")
            Dim Members As Object = Admins.Invoke("Members", Nothing)
            For Each Member As Object In CType(Members, IEnumerable)
                Dim CurrentMember As New DirectoryEntry(Member)
                MessageBox.Show(CurrentMember.Name)
            Next

    Cordialement, Troxsa
    mercredi 2 décembre 2009 12:25
    Auteur de réponse
  • J'avance a petit pas, par contre là je nage complément


    Qui pourrais me dire ou je me plante

            '
            ' Ajoute l'utilisateur (AD) dans le group Administrateurs
            '
            Dim de As New DirectoryEntry("LDAP://xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx")
            Dim deSearch As New DirectorySearcher() With {.SearchRoot = de}
            deSearch.Filter = "cn=XXXXXXX"
    
            Dim group As New DirectoryEntry("WinNT://" & tbPing.Text & "/Administrateurs")
            Dim Members As Object = group.Invoke("Members", Nothing)
    
            For Each Member As Object In CType(Members, IEnumerable)
                Dim x As New DirectoryEntry(Member)
                Console.WriteLine(x.Name)
            Next
    
    'ici ça bug group.Invoke("Add", New Object() {deSearch.FindOne.Path.ToString})
    J'ai trouvé ce code sur le net sur ExpertExchange il faut aller tout en bas
    (http://209.85.135.132/search?q=cache:nLFTbhA4Nf8J:www.experts-exchange.com/Programming/Languages/.NET/Visual_Basic.NET/Q_24428723.html+adding+user+LDAP+to+administrators+local+%22VB.net%22+%22WINNT:\\%22+computer&cd=3&hl=fr&ct=clnk&gl=fr&client=firefox-a)

    et une partie ici http://www.vbforums.com/showthread.php?t=535091


    Quelle qu'un a une idée ! ?

    Cordialement, Troxsa
    mercredi 2 décembre 2009 15:14
    Auteur de réponse

  • Bon ben j'ai fini par trouvé comment faire, je poste la source au cas ou d'autre personne en aurais besoin

            '
            ' Ajoute l'utilisateur (AD) dans le group Administrateurs
            '
            Dim de As New DirectoryEntry("LDAP://xxxxxxxxxxxxxxxxxxxxx")
            Dim deSearch As New DirectorySearcher() With {.SearchRoot = de, .Filter = "cn=xxxxxxx"}
    
            Dim group As New DirectoryEntry("WinNT://" & Computer.Text & "/Administrateurs")
            Dim Members As Object = group.Invoke("Members", Nothing)
            Dim ExistLocal = False
    
            For Each Member As Object In CType(Members, IEnumerable)
    
                Dim x As New DirectoryEntry(Member)
                If x.Name.ToLower = deSearch.FindOne.GetDirectoryEntry.Properties("cn").Value.ToString.ToLower Then
                    ExistLocal = True
                    Exit For
                End If
            Next
    
            If ExistLocal = False Then
                group.Invoke("Add", New Object() {"WinNT://" & de.Properties("dc").Value & "/" & deSearch.FindOne.GetDirectoryEntry.Properties("cn").Value})
            Else
                Console.WriteLine("Le compte exite deja")
            End If


    A bientot



    Cordialement, Troxsa
    • Marqué comme réponse TroxsaEditor vendredi 11 décembre 2009 09:29
    vendredi 11 décembre 2009 09:29
    Auteur de réponse