Partage
  • Partager sur Facebook
  • Partager sur Twitter

Boucles en Powershell

Optimisation programme

    18 septembre 2019 à 15:45:37

    Bonjour,

    J'ai un script powershell qui récupère des données sur plusieurs AD pour les stocker dans un tableau qui sort sur excel.

    Hors pour le moment, la meilleure solution que j'ai trouvé c'est d'utiliser un foreach() pour chacun des AD. Mais il y en a plein, est-ce que quelqu'un aurait une idée de boucle pour l'alléger ?

    un exemple de foreach que j'utilise 10 fois mais que je voudrais boucler :

    $WorkSheet.Name="Nom de l'AD"

    $InitialRow=4

    $stockdel'AD=Get-ADUser-Filter {SamAccountName -like"*"-SearchBase "Chemin de l'AD"-Properties *|?{$_.DistinguishedName-notlike"Exclusion de certains résultats"}

    foreach ($1Stockdel'ADin$Stockdel'AD )
        {
    $WorkSheet.Cells.Item($InitialRow,1=$1donnée
    $WorkSheet.Cells.Item($InitialRow,2=$1donnée
    $WorkSheet.Cells.Item($InitialRow,3=$1donnée
    $WorkSheet.Cells.Item($InitialRow,4=$1donnée
    $WorkSheet.Cells.Item($InitialRow,5=$1donnée
    $WorkSheet.Cells.Item($InitialRow,6=$1donnée
    $WorkSheet.Cells.Item($InitialRow,7=$1donnée
    $WorkSheet.Cells.Item($InitialRow,8=$1donnée
    $WorkSheet.Cells.Item($InitialRow,9=$1donnée
    $WorkSheet.Cells.Item($InitialRow,10=$1donnée
    $WorkSheet.Cells.Item($InitialRow,11=$1donnée
    $WorkSheet.Cells.Item($InitialRow,12= $1donnée
    $InitialRow++
         } 
    #####Création d'une nouvelle feuille

    #####Mise en place du titre dans la feuille active

    #####Mise en forme du titre

    #####Creation des entetes du Tableau

    #####Taille des colonnes
    ####Mise au centre de la première ligne du tableau

    ####Mise en forme du Tableau

    -
    Edité par vivienbouvier 18 septembre 2019 à 16:46:53

    • Partager sur Facebook
    • Partager sur Twitter
      20 septembre 2019 à 3:10:19

      Salut 

      compteur = 0
      TANT QUE compteur < 10 FAIRE
          Ton foreach 
          compteur += 1
      FIN TANT QUE
      

      ?

      • Partager sur Facebook
      • Partager sur Twitter
        20 septembre 2019 à 11:25:47

        On est bien d'accord mais j'ai des paramètres qui changent à chaque fois, je débute en powershell, y'a moyen d'envoyer des arguments dans les fonctions, ou d'avoir des paramètres comme en C ?

        -
        Edité par vivienbouvier 20 septembre 2019 à 11:26:27

        • Partager sur Facebook
        • Partager sur Twitter
          20 septembre 2019 à 16:23:35

          Je ne connais pas bien Ps, mais, tu peux utiliser le compteur pour gérer les différents arguments :

          compteur = 0
          arguments_liste = [(arg0A, arg0B, ...), (arg1A, arg1B, ...), ..., (arg9A, arg9B, ...)]
          TANT QUE compteur < 10 FAIRE
              # récupérer le contenu du tuple correspondant à la valeur du compteur
              # remplir avec les bons arguments
              ton foreach
              compteur += 1

          Par exemple :

          FONCTION blabla(n):
              écrire("valeur : " + n)
          
          liste = [12,50,65,14]
          
          POUR i dans index(liste): # on parcourt 0, 1, 2, 3
              blabla(liste[n]) # le premier sera blabla(12), le dernier blabla(14)
          
          RÉSULTAT :
          valeur : 12
          valeur : 50
          valeur : 65
          valeur : 14

          Pour ta question.


          • Partager sur Facebook
          • Partager sur Twitter

          Boucles en Powershell

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown