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 :

Problème d'export de donnée en csv avec la commande foreach [PowerShell]


Sujet :

Scripts/Batch

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Avril 2016
    Messages : 5
    Points : 5
    Points
    5
    Par défaut Problème d'export de donnée en csv avec la commande foreach
    Bonjour,

    Je viens solliciter votre aide encore une fois car j'ai un problème d'export de donnée en csv avec la commande foreach.

    Mon script recupère bien les données que je veux mais impossible d'avoir un csv avec toutes les informations je n'ai le résultat que pour la dernière OU.

    Voici mon script:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Import-module ActiveDirectory
    
    $data = Import-Csv "c:\temp\Data.csv" -delimiter ";"
    
    foreach ($Data1 in $Data) {
    $OU = $data1.OU
    Get-ADObject -Filter * -SearchBase "OU=$OU,DC=XXX,DC=XXX,DC=XXX" -Properties * | Select-object sAMAccountName,Description,memberOf,objectClass,mail,location,company,userAccountControl,distinguishedName | Export-Csv "c:\temp\Results.csv" -delimiter ";" -NoTypeInformation
    }
    J'ai aussi essayer comme ça mais j'ai une demande d'input d'Objet et je ne sais pas quoi faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Import-module ActiveDirectory
    
    $data = Import-Csv "c:\temp\Data.csv" -delimiter ";"
    
    foreach ($Data1 in $Data) {
    $OU = $data1.OU
    Get-ADObject -Filter * -SearchBase "OU=$OU,DC=XXX,DC=XXX,DC=XXX" -Properties * | Select-object sAMAccountName,Description,memberOf,objectClass,mail,location,company,userAccountControl,distinguishedName
    }Export-Csv "c:\temp\Results.csv" -delimiter ";" -NoTypeInformation
    Nom : Capture.JPG
Affichages : 1860
Taille : 18,1 Ko

    Merci d'avance pour votre aide.

    Cordialement

  2. #2
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Bonjour à toi,

    En effet ça ne vas pas !
    Pour chaque OU que tu traire le fichier results.csv est écrasé, Export-CSV ne gère pas l'append.

    Il faut donc procéder autrement, comme ceci par exemple :
    Code Powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Import-module ActiveDirectory
     
    $data = Import-Csv "c:\temp\Data.csv" -delimiter ";"
    $OUDatas = @()
    foreach ($Data1 in $Data) {
      $OU = $data1.OU
      $OUDatas += Get-ADObject -Filter * -SearchBase "OU=$OU,DC=XXX,DC=XXX,DC=XXX" -Properties * | Select-object sAMAccountName,Description,memberOf,objectClass,mail,location,company,userAccountControl,distinguishedName
    }
    $OUDatas | Export-Csv "c:\temp\Results.csv" -delimiter ";" -NoTypeInformation
    Au lieu d'écrire dans le CSV à chaque fois, on utilise un tableau dans lequel on stock chaque OU à traiter.
    Et seulement à la fin on vient exporter le tableau dans le fichier CSV
    Par pitié !!!! :Si vous ne savez pas faire cliquez ici !
    Citation Envoyé par Marc-L
    C'est dommage que parfois tu sois aussi lourd que tu as l'air intelligent…

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Avril 2016
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Bonjour,

    En effet cela marche beaucoup mieux un grand merci à toi.

    Pour être sur de tout comprendre car je suis encore un peu novice en powershell peux-tu me dire qu'elle est la fonction de ces 2 corrections que tu as faites je n'ai jamais utilisé ces paramètres.
    Et Merci encore

    Cordialement

  4. #4
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Comme expliqué dans mon post précédent on utilise un tableau.

    @() est pour initialisé la variable en tant que tableau.
    Le += étant l'opérateur d'addition on pourrait très bien écrire également :
    Code Powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    $OUDatas = $OUDatas + Get-ADObject -Filter * -SearchBase "OU=$OU,DC=XXX,DC=XXX,DC=XXX" -Properties * | Select-object SAMAccountName,Description,memberOf,objectClass,mail,location,company,userAccountControl,distinguishedName
    Mais pour simplifié l'écriture et la syntaxe on le fait de manière plus courte.

    Il permet ici d'ajouter un élément en plus dans la tableau à chaque fois.
    Par pitié !!!! :Si vous ne savez pas faire cliquez ici !
    Citation Envoyé par Marc-L
    C'est dommage que parfois tu sois aussi lourd que tu as l'air intelligent…

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Avril 2016
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Je comprends bien mieux maintenant.

    Merci pour ton retour et ton aide.

    Bonne journée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème d'export de donnée dans un fichier csv
    Par sab_info dans le forum Général Dotnet
    Réponses: 3
    Dernier message: 07/11/2014, 13h31
  2. Réponses: 1
    Dernier message: 27/07/2010, 13h40
  3. exportation de données en .csv
    Par bombjack91 dans le forum Access
    Réponses: 3
    Dernier message: 28/06/2007, 23h32
  4. Access, export de données vers Excel - avec Variable
    Par jackfred dans le forum VBA Access
    Réponses: 7
    Dernier message: 04/06/2007, 17h37
  5. [phpMyAdmin] Problèmes d'exportation de tables en CSV
    Par seb92500 dans le forum SQL Procédural
    Réponses: 7
    Dernier message: 31/10/2006, 11h53

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