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

Scripts/Batch Discussion :

Mise à jour de l'AD par script de lecture dans un répertoire de fichier XML


Sujet :

Scripts/Batch

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2011
    Messages : 33
    Points : 24
    Points
    24
    Par défaut Mise à jour de l'AD par script de lecture dans un répertoire de fichier XML
    Bonjour,

    J'ai actuellement une page intranet qui permet d'éffectuer des modifications sur les informations des comptes Active Directory. Lorsque l'on modifie, cela créé un fichier XML et le stock dans une partition du disque dure partagé (m).
    Je voudrais que pour effectuer la mise à jour on trouve le fichier le plus ancien, car un même compte peu avoir 2 fichiers XML de mise à jour, étant donné que celui qui nous intéresse est le plus récent, il faudrait commencer par les plus vieux et une fois qu'il sera lu et ajouté on l'archivera dans un dossier "archive_xml"

    J'ai pensé à résoudre le script comme cela :
    1) Compter nombres d'éléments présent dans le dossier
    2) Exécutez une boucle qui se répète autant de fois qu'il y a d'élements
    3) Sélectionner le fichier le plus ancien dans le dossier
    4) Mettre à jour dans l'Active Directory le fichier XML le plus ancien
    5) Déplacer le fichier XML dans un dossier archive_xml

    Mais il y a un problème.. si vous pouvez m'aider merci


    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
    $i = (Dir \\Win-webserver\m\*.xml).Count
    For($j=0; $j -lt $i; $j++)
    {
    $tableauFichiers = Get-Childitem \\Win-Webserver\m\*.xml
    $plusAncien = get-date
    foreach ($tmp in $tableauFichiers)
    {
    	if ([system.dateTime]::Compare($tmp.CreationTime, $plusAncien) -lt 0)
    	{
    		$plusVieuxFichier = $tmp;
    		$plusAncien = $plusVieuxFichier.CreationTime
    	}
    }
    $nom = $plusVieuxFichier.Name
    $xmldata = [xml] (Get-Content \\Win-Webserver\m\$nom)
    $login = $xmldata.utilisateur.login
    $user = [ADSI] "LDAP://CN=$login, CN=Users, DC=solidaris, DC=local"
    $user.Put('sn', $xmldata.utilisateur.nom)
    $user.Put('givenName', $xmldata.utilisateur.prenom)
    $user.Put('telephoneNumber', $xmldata.utilisateur.telephone)
    $user.Put('mail', $xmldata.utilisateur.email)
    $user.Put('company', $xmldata.utilisateur.companie)
    $user.Put('department', $xmldata.utilisateur.departement)
    $user.Put('Description', $xmldata.utilisateur.description)
    $user.SetInfo()
    Move-Item \\Win-Webserver\m\$nom c:\archive_xml
    }

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2011
    Messages : 33
    Points : 24
    Points
    24
    Par défaut
    MAJ : J'ai remarqué que quand on lisait les scripts dans le répertoire, ils sont lus par odre de création, donc pas besoin de test ?
    Le problème doit venir de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $login = $xmldata.utilisateur.login
    $user = [ADSI] "LDAP://CN=$login, CN=Users, DC=test, DC=local"
    $user.Put('sn', $xmldata.utilisateur.nom)
    MAJ 2 : Le problème provient de mon login. Car il est de type "prenom.nom" (hors quand je test avec un login de type "Employe1" qui correspond au DN ça fonctionne).

    Je cherche pour trouver comment déclarer dans le LDAP

    MAJ 3 : apparement on ne peut pas faire un LDAP avec le sAMAccountName.

    Il faudrait que je récupère le DN (distinguished name). Etant donné que je n'ai que le login comment faire ?

Discussions similaires

  1. Réponses: 7
    Dernier message: 20/08/2009, 01h48
  2. Réponses: 3
    Dernier message: 17/01/2007, 09h33
  3. Mise à jour d'une balise par innerHTML qui pose pb !!
    Par nerik38 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 20/01/2006, 16h13
  4. Réponses: 2
    Dernier message: 23/12/2005, 22h32
  5. mise à jour d'une liste par un popup
    Par Equus dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 25/02/2005, 11h21

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