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

C# Discussion :

[C#/Active Directory] Comment créer un utilisateur depuis une Table Access ?


Sujet :

C#

  1. #1
    Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 15
    Points : 4
    Points
    4
    Par défaut [C#/Active Directory] Comment créer un utilisateur depuis une Table Access ?
    consiste à automatisé les tâches répétitives d'administration de système Windows Server 2003 :
    Gestion des utilisateurs : - Création automatisée d'utilisateur depuis une table Access avec tous les attributs utiles. [création des répertoires personnels, création des partages cachés sur les répertoires personnels, attribution des droits NTFS, ajout dans les groupes usuels] et bien sur la suppression d'utilisateurs automatisés depuis une table Access ainsi que leur dossiers personnels correspondant..

    Toute aide est la bienvenue, je suis assez débutant en C# et j'ai déjà reussi pour l'ajout des utilisateurs, mais pas pour ce qui est entre [...] voici le code...

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    using System;
    using System.DirectoryServices;
     
    namespace CreerUtilisateur
    {
     
        /// <summary>
        /// Résumé de la description de Class.
        /// </summary>
        class Class
        {
            /// <summary>
            /// Le point d'entrée principal de l'application.
            /// </summary>
            [STAThread]
            static void Main(string[] args)
            {
              try // Connexion à l'annuaire AD
              {
                DirectoryEntry Ldap = new DirectoryEntry("LDAP://cifom.local", "Administrateur", "continuer");
     
     
                // Création du user Test User et initialisation de ses propriétés
                DirectoryEntry user = Ldap.Children.Add("cn=Test User", "user");
                user.Properties["SAMAccountName"].Add("testuser");
                user.Properties["sn"].Add("User");
                user.Properties["givenName"].Add("Test");
                user.Properties["description"].Add("Compte de test créé automatiquement");
                // On envoie les modifications au serveur
                user.CommitChanges();
     
                // On va maintenant lui définir son password. L'utilisateur doit avoir été créé
                // et sauvé avant de pouvoir faire cette étape
                user.Invoke("SetPassword", new object [] {"motdepasse"});
                // On va maintenant activer le compte : ADS_UF_NORMAL_ACCOUNT
                user.Properties["userAccountControl"].Value = 0x0200;
                // On envoie les modifications au serveur
                user.CommitChanges();
                //on ajoute l'utilisateur au groupe
                Group.Invoke("Add",new Object[]{user.Path.ToString()});
                Group.CommitChanges();
     
                Group.Close();
                user.Close();
              }
              catch(Exception e)
              {
                Console.Out.WriteLine("Erreur de connexion à l'annuaire LDAP : " + e.ToString());
              }
            }
        }
    }
    Merci d'avance de prendre le temps de m'aider cela est assez primordial à mes yeux...

  2. #2
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Citation Envoyé par Moul_dy
    ...j'ai déjà reussi pour l'ajout des utilisateurs, mais pas pour ce qui est entre [...] voici le code...
    Excuses moi mais je ne vois quelle partie te pose souci, peux-tu expliciter stp ?
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  3. #3
    Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 15
    Points : 4
    Points
    4
    Par défaut
    et bien j'arrive a crée l'utilisateur, mais pas depuis une table Access et pour la création des répertoires personels, création des partage caché, attribution des droits...
    je sais le faire dans un fichier batch mais pour cki est en c#

    ah oui encore une précision, quand j'ai écris "pour ce qui est ente [...]" signifie que les points que j'ai ecrit entre crochet ne sont pas claire pour moi ... excusez moi de ne pas être plus claire

  4. #4
    Membre du Club
    Inscrit en
    Février 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 53
    Points : 61
    Points
    61
    Par défaut
    waooouuu!!!! ambitieux comme projet. surtout si tu debutes en C#.
    donc essayons de t'aiguiller dans tes recherches, dans l'ordre:
    1- En ce qui concerne la manipulation de l'Active directory, je note que tu n'as pas trop de probleme. Toutefois, voici un lien qui est didactique si tu veux en savoir plus:
    http://webman.developpez.com/article...age=ressources

    2-Pour ce qui est de la manipulation des repertoires/fichiers:
    http://faqcsharp.developpez.com/?page=file

    3-La manipulation des bases de données (par ex ACCESS):
    http://faqcsharp.developpez.com/?page=adonet

    4-La manipulation des Securité NTFS :
    Pour cela Microsoft à mis en ligne un exemple pour Visual Studio 2005 qui permet de charger et de modifier les ACL sur des objets NTFS.
    http://msdn.microsoft.com/vstudio/do...s/default.aspx
    J'ai un gros projet en cours la dessus et je n'ai pas trouveé d'autres sources d'infos sur le net...donc j'avance doucement.

    cela devrait t'aider un tout petit peu. bonne chance

  5. #5
    Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 15
    Points : 4
    Points
    4
    Par défaut
    Merci tophoune, ca m'a permis de comprendre quelques trucs, mais comme tu l'as dit je suis ambitieux, mais j'ai surtout pas le choix, c'est pour ca que j'ai demandé de l'aide sur ce forum, Mais bon voila J'espere apprendre beaucoup par le biais de ce projet et la moindre aide m'est très précieux...
    merci encore...

    pour les autres qui sont de passage, si vous avez d'autre lien ou même code a me proposer, c'est volontier que je l'accepte...^^

  6. #6
    Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 15
    Points : 4
    Points
    4
    Par défaut Création d'utilisateur
    Re-bonjour ! j'ai un new problème, comment je dois transformer ou modifier le code ci-dessous afin qu'il récupére les informations d'un utilisateur(Nom, prénom, classe scolaire(3ein1, 2cin2,..), date de naissance) depuis une table access et crée les utilisateurs a partire de ces informations ??

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    try 
    {
       // Connexion à l'annuaire AD    
       DirectoryEntry Ldap = new DirectoryEntry(<a href="ldap://cifom.local" target="_blank">LDAP://cifom.local</a>, 
    "Administrateur", "continuer");
     
      // Création du user Test User et initialisation de ses propriétés
      DirectoryEntry user = Ldap.Children.Add("cn=Test User", "user");
      user.Properties["SAMAccountName"].Add("testuser");
      user.Properties["sn"].Add("User");
      user.Properties["givenName"].Add("Test");
      user.Properties["description"].Add("Compte de test créé 
    automatiquement");
      // On envoie les modifications au serveur
      user.CommitChanges();
     
      // On va maintenant lui définir son password. L'utilisateur doit avoir été créé
      // et sauvé avant de pouvoir faire cette étape
      user.Invoke("SetPassword", new object[] { "motdepasse" });
      // On va maintenant activer le compte : ADS_UF_NORMAL_ACCOUNT
      user.Properties["userAccountControl"].Value = 0x0200;
      // On envoie les modifications au serveur
      user.CommitChanges();
      //on ajoute l'utilisateur au groupe
      Group.Invoke("Add", new Object[] { user.Path.ToString() });
      Group.CommitChanges();
     
      Group.Close();
      user.Close();
    }
    catch (Exception e)
    {
      Console.Out.WriteLine("Erreur de connexion à l'annuaire LDAP : " 
         + e.ToString());
    }

  7. #7
    Membre du Club
    Inscrit en
    Février 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 53
    Points : 61
    Points
    61
    Par défaut
    je pense que dans un premier temps, avant de modifier quoique ce soit comme code et compte tenu de l'etendu de ton projet , il faut que structure ton projet car tu vas vite te perdre (c'est pas le tout de pondre un amas de functions/procedures dans un module, faut aussi penser a celui qui passera apres toi pour modifier le projet!!!).

    En ce qui concerne les acces a des bases access, regarde ca, ca va te donner des idées:
    http://www.startvbdotnet.com/ado/msaccess.aspx

    Potasse ce tuto:
    http://xo.developpez.com/tutoriel/vb.net/poo/ . La programmation OO est preponderante dans Vb.net . Tu peux par exemple créer une classe ADUserManagement avec ses methodes d'ajout, de suppression et de modification.....

    Avec ces pistes , tu devrais pouvoir repondre a ton premier besoin qui est l'importation de compte dans l'AD... Ensuite reviens nous voir pour les bogues eventuels ou pour la suite.

    bonne chance

  8. #8
    Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 15
    Points : 4
    Points
    4
    Par défaut
    Merci bien, mais je dois dire que je désespere et qu'il y a beacoup de chose dont je n'y comprend pas la moindre petite parcelle... je dois faire beaucoup de tuto, mais pas facile facile tout ca...

  9. #9
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Citation Envoyé par Moul_dy
    Merci bien, mais je dois dire que je désespere et qu'il y a beacoup de chose dont je n'y comprend pas la moindre petite parcelle... je dois faire beaucoup de tuto, mais pas facile facile tout ca...
    Peux-tu nous dire quel est ton niveau exact de formation car ton besoin est peut-être aussi dans cette direction. Il se peut qu'un complément encadré/documenté dans le domaine de la POO te sera d'un grand secours afin de ne pas te décourager face à la masse de nouveautés que tu rencontres.
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  10. #10
    Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 15
    Points : 4
    Points
    4
    Par défaut
    eh bien voyez-vous j'ai suivi des cours de C# pendant un peu pret 12 ou 13 semaine a raison de 4*45 min par semaine et vu que ca traine beaucoup a cause des différents niveau je vous laisse voir, je sais faire que des choses très basique, et je dois dire que personne n'est content de la base qui lui a été enseigné , une perte de temps aulieu d'un cours de C# serai plus approprié comme therme...

  11. #11
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Il y a d'excellents livres très pédagogiques sur C# dont la critique (Morpheus) est disponible via notre rubrique Livre.DotNet
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  12. #12
    Rédacteur
    Avatar de JauB
    Homme Profil pro
    Freelancer
    Inscrit en
    Octobre 2005
    Messages
    1 792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Maroc

    Informations professionnelles :
    Activité : Freelancer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 792
    Points : 2 914
    Points
    2 914
    Par défaut
    est ce que t'as vu ce qui est joint?
    Fichiers attachés Fichiers attachés
    Mes articles, Mon Blog

    Rubrique Jasper/iReport :
    ------- Forum Jasper --------
    ----- FAQ Jasper/iReport -----


  13. #13
    Membre du Club
    Inscrit en
    Février 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 53
    Points : 61
    Points
    61
    Par défaut
    c'est bien ce que j'avais compris d'apres tes messages.
    NE DESESPERE PAS !!! tu seras jugé en tre grande partie sur ta conduite du projet et seulement pour une petite partie sur le resultat. Donc 3 mots te sont vitaux: CALME, PONDERATION, INTELLIGENCE.
    par contre ne bacle pas le travail. Réponds au maximum de besoins dans le temps qui t'est imparti... par contre fais le "dans les regles de l'art" (si je puis dire). Si tu n'as pas fini a temps, tu pourras toujours vanter les mérites de la lisibilité et de l'evolutivité de ce que tu as fait. Et n'oublie pas les phases "Definition des besoins" et "Spécifications" ( on ne se jette pas bille en tete dans le codage).
    Le but de ce forum est de trouver des "pistes" qui permettent d'orienter nos recherches (si kk1 te donne une solution complete tant mieux).
    alors resaisi toi, que diable!!!! .
    RESPIRE UN GRAND COUP ET REMETS TOI AU BOULOT.

  14. #14
    Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 15
    Points : 4
    Points
    4
    Par défaut
    Merci de votre soutien, il est bon a lire, je me remet au boulot et je me donnerai a fond chez moi aussi, mais pour l'instant j'ai du retard alors voila et je m'attendais certe pas a trouvé une solution complete (il est vrai que si je serai tombé dessus je m'en serai pas plaint), just un peu de l'aide sur certain point, mais ce à quoi je ne m'attendais pas c'était de tomber sur des choses comme "IsolatedStorageFile" pour crée des répertoires, alors que je ne sais même pas qu'est ce qu'IsolatedStorageFile,... des choses comme ca, mais tout ne px pas bien aller direcement, alors voila je vais me remotiver au boulot .. merci

  15. #15
    Membre du Club
    Inscrit en
    Février 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 53
    Points : 61
    Points
    61
    Par défaut
    Héhé, content que tu aies retrouvé le moral!!!!
    par contre , si tu es bloqué sur un point précis , DIS LE EXPLICITEMENT (plutot que d'essayer de trouver la solution generale) . Prends le temps d'expliquer le contexte (quoique on commence a le connaitre maintenant ) , joint un petit bout de code , joint les messages d'erreurs ... bref tout ce qui peut nous eclairer sans perdre de temps (demande a Neguib, il passe pas mal de temps a repeter a tous les "posteurs" d'etre precis et clair dans leur demande).
    Bon aller, a bientot

  16. #16
    Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 15
    Points : 4
    Points
    4
    Par défaut
    Pas de probleme j'essayerai d'etre le plus explicite possible..
    la sociabilité des gens sur ce forum me fait pleasir... je vais plus trainer ici moi ... bon je vais me mettre au boulot un peu , je voulais just mettre ce mess pour vous dire un grand à bientot

  17. #17
    Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 15
    Points : 4
    Points
    4
    Par défaut
    Je sais que je ne suis sans doute pas sur le bon forum, mais quelqu'un pourrait m'aiguillé pour les logins script S.V.P (création de lecteur personnel et attribution de droits NTFS(si possible)), mais surtout comment appeler un fichier batch depuis un programme C# ?!?!?!?

  18. #18
    Membre du Club
    Inscrit en
    Février 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 53
    Points : 61
    Points
    61
    Par défaut
    alors,
    1/Execution d'un programme externe avec C#:
    .NET framework inclu la classe Process,qui est incluse dans le namespace Diagnostics (ex: using System.Diagnostics, Ensuite tu declenches le processus avec la methode : Process.Start

    2/Script permettant de modifier les securités NTFS:
    Personnelement j'utilise xcacls.vbs. C'est pour moi le plus complet.
    http://support.microsoft.com/?id=825751

    3/Creation d'un lecteur perso: peux-tu être un peu plus explicite ?

  19. #19
    Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 15
    Points : 4
    Points
    4
    Par défaut
    Mici -[^_^]-

    pour être un peu plus explicite, je dois crée un lecteur personnel pour chaque utilisateur, je prefere utiliser un script pour cela, alors je me vaudrais savoir si la commande et juste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    net use J: \\Ip/nom serveur\partage\%username%\$ /PERSISTENT:NO
    voila



    Oula le temps que je comprenne comment s'utilise Xcacls.vbs on pourrait reconstruire une tour eiffel , non mais un peu plus sérieusement je voulais te remercie tophoune de prendre le temps de me répondre cela me fait très plaisir et il est vrai qu'il me faudra un certain temps afin de comprendre le fonctionnement de Xcacls, mais comme toute chose il faut de l'invistissement et du temps... aller A+

  20. #20
    Membre du Club
    Inscrit en
    Février 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 53
    Points : 61
    Points
    61
    Par défaut
    hmmmm, la commande que tu ennonces releve plutot du LoginScript. Je ne vois pas en quoi elle est gerable dans ton projet. Toutefois, si je te posais cette question, c'est qu'il existe une autre methode (parmi beaucoup d'autres) et qui , je pense, semble plus adaptée pour ton projet (a toi de voir en fonction de tes competences si tu es a meme de la realiser).
    Dans l'Active Directory, les objets "Users" beneficient d'une proprieté qui te permet de gerer cette fonctionnalité. Si tu vas dans les proprietes d'un utilisateur, dans l'onglet "Profile" tu peux parametrer le "Home Folder".

    En ce qui concerne ta commande Net Use, je crois que tu te trompes avec le "\$". Si comme je le pense le Home Folder de ton utlisateur est partagé de maniere cachée (d'ou le $) je pense que tu dois plutot utiliser la commande suivante:
    net use J: \\<Ip>|<Nom du Serveur>\partage\%username%$ /PERSISTENT:NO (quoique je te conseille d'utiliser le PERSISTENT:YES)

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 0
    Dernier message: 09/05/2011, 15h30
  2. active directory récupérer l'ou d'un utilisateur
    Par piotrr dans le forum Windows Forms
    Réponses: 1
    Dernier message: 26/11/2009, 14h42
  3. [Active Directory] Comment tout récupérer avec Delphi ?
    Par avogadro dans le forum API, COM et SDKs
    Réponses: 5
    Dernier message: 16/11/2007, 11h44
  4. Active directory : Comment extraire la liste de tous les contacts?
    Par Asriel01 dans le forum Windows Serveur
    Réponses: 1
    Dernier message: 12/07/2007, 12h32
  5. Réponses: 4
    Dernier message: 10/04/2007, 12h34

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