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 :

modifier un élément dans les comptes user d'une OU


Sujet :

Scripts/Batch

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2008
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 11
    Points : 10
    Points
    10
    Par défaut modifier un élément dans les comptes user d'une OU
    Bonsoir je débute en powershell. Je voudrais l'utiliser pour m'aider à administrer l'AD. je recherche un script pour modifier un élément dans tous les comptes user d'une OU.
    Je fais la même chose avec les comptes ordinateur mais je n'arrive à le faire que pour un seul

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $ordinateur = [ADSI]'LDAP://CN=UC123456789,CN=ordinateurs,DC=momo,DC=fr'
    
    $ordinateur.PutEx(1, 'Description' ,$null) 
    
    $ordinateur.SetInfo()
    J'essaye en passant par un fichier text mais ca ne fonctionne pas:

    1 script :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $strCategory = “computer”
    $objDomain = New-Object System.DirectoryServices.DirectoryEntry(“LDAP://OU=ordinateurs,dc=momo,dc=fr”)
    $objSearcher = New-Object System.DirectoryServices.DirectorySearcher($objDomain,”(objectCategory=$strCategory)”,@(‘name’))
    $objSearcher.FindAll() | %{$_.properties.name} | out-file C:\computersList.txt
    2script de modification :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $EmplacementFichier = "c:\computersList.txt"
    $MonFichier = get-content $EmplacementFichier
    
    foreach ($UneLigne in $MonFichier){
    $ordinateur = [ADSI]'LDAP://cn=$UneLigne,OU=ordinateurs,DC=momo,DC=fr'
    
    $ordinateur.PutEx(1, 'Description',$null)
    $ordinateur.SetInfo()	
    }
    erreur :

    L'exception suivante s'est produite lors de la récupération du membre «*SetInfo*»*: «*Cet objet ne se trouve pas sur le
    serveur.

    Au niveau de C:\test2.ps1*: 14 Caractère*: 20
    + $ordinateur.SetInfo <<<< ()
    + CategoryInfo : NotSpecified: ( [], ExtendedTypeSystemException
    + FullyQualifiedErrorId : CatchFromBaseGetMember



    Merci par avance.

  2. #2
    Membre confirmé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2012
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2012
    Messages : 281
    Points : 520
    Points
    520
    Par défaut
    bonjour momo79379

    L'exception suivante s'est produite lors de la récupération du membre «*SetInfo*»*: «*Cet objet ne se trouve pas sur le
    serveur.
    ce message indique que l'ordinateur n'existe pas, du moins pas dans l'OU designé
    verifie ton fichier
    et verifie dans l'OU si l'ordinateur existe

    tel quel ton script fonctionne
    mais pour le faire evolué vers la modification de description personnalisé à chaque ordinateur
    il vaut mieu utilisé import-csv à la place get-content
    et adapter le reste du script biensur

  3. #3
    Membre confirmé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2012
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2012
    Messages : 281
    Points : 520
    Points
    520
    Par défaut
    petit détail que j'ai pas vu de suite :
    dans la ligne suivante il faut utilisé des guillemets à la place des apostrophes pour que la variable soit convertie :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ordinateur = [ADSI]'LDAP://cn=$UneLigne,OU=ordinateurs,DC=momo,DC=fr'
    soit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ordinateur = [ADSI]"LDAP://cn=$UneLigne,OU=ordinateurs,DC=momo,DC=fr"

  4. #4
    Membre à l'essai
    Inscrit en
    Mars 2008
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 11
    Points : 10
    Points
    10
    Par défaut
    Merci pour vos réponses. voila la solution qui me va :

    $EmplacementFichier = "c:\computersList.txt"
    $MonFichier = get-content $EmplacementFichier

    foreach ($UneLigne in $MonFichier){

    Set-ADComputer -Identity $Uneligne -Clear 'description'
    }

    Cordialement.

Discussions similaires

  1. modifier un élément dans une listBox
    Par sagesse dans le forum VB.NET
    Réponses: 1
    Dernier message: 09/02/2011, 13h56
  2. Perdu dans les comptes et les groupes
    Par cadoudal56 dans le forum Requêtes
    Réponses: 8
    Dernier message: 15/04/2009, 09h43
  3. Modifier un élément dans une liste
    Par T-O-N-Y dans le forum C#
    Réponses: 5
    Dernier message: 09/03/2009, 17h07
  4. Modifier un texte dans les fichiers d'un répertoire
    Par Azenet dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 09/01/2008, 12h43
  5. Modifier des fichiers dans les rep users automatiquement
    Par mazou dans le forum Windows Serveur
    Réponses: 4
    Dernier message: 06/09/2007, 09h42

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