Partage
  • Partager sur Facebook
  • Partager sur Twitter

Powershell foreach et export- csv

    19 juin 2019 à 0:08:13

    Bonjour la communauté.

    cela fait déjà quelques jours que je suis sur cette problématique mais sans solution jusqu’à présent.

    j’explique, j’ai un vulgaire powershell avec un fichier d’entrée (liste de serveurs) sur lequel je souhaite appliquer un traitement via une boucle foreach et, en récupérer le résultat en sortie dans un csv.  

    # Emplacement fichierSource
    $fileComputerNames = "E:\ReportXplanif\ServeursIUCR2K12.txt"
    # Write-Host $fileComputerNames
     
    # Emplacement fichierDestination
    $desti = "E:\ReportXplanif"
    # Write-Host $desti
    
    Foreach ($server in Get-Content $fileComputerNames) {
     
       
        $cmde = {Get-ScheduledTask | Where {$_.Principal.userid -eq "ZRES\XPLANIF"} | Get-ScheduledTaskInfo}
        Invoke-Command -ComputerName $server -ScriptBlock $cmde |
        Select @{LABEL='Serveur';EXPRESSION={$server}}, TaskName,LastRunTime,NextRunTime
        }
       Export-csv ($desti + "\XplanifTasks.csv") -Delimiter "," -NoTypeInformation
    

    La boucle semble fonctionner par contre, sur un fichier d’entrée de 100 ligne seule la dernière est exporter (les précédentes occurrences sont écrasées) pourquoi je ne sais pas. J’ai déjà essayé de réadapter le script en ajoutant des variables pour l’incrémentation  (voir code si dessous) mais sans réussite.

    # Emplacement fichierSource
    $fileComputerNames = "E:\ReportXplanif\ServeursIUCR2K12.txt"
    # Write-Host $fileComputerNames
     
    # Emplacement fichierDestination
    $desti = "E:\ReportXplanif\"
    # Write-Host $desti
     
    $cmde = @()
    Foreach ($server in Get-Content $fileComputerNames) {
     
       
        $cmde += {Get-ScheduledTask | Where {$_.Principal.userid -eq "ZRES\XPLANIF"} | Get-ScheduledTaskInfo}
        Invoke-Command -ComputerName $server -ScriptBlock $cmde |
        Select @{LABEL='Serveur';EXPRESSION={$server}}, TaskName,LastRunTime,NextRunTime
        }
       
        $cmde | Export-csv ($desti + "\XplanifTasks.csv") -Delimiter "," -NoTypeInformation
    



    Pourriez-vous y jeter un oeil et m’eclairer svp

    • Partager sur Facebook
    • Partager sur Twitter
      16 décembre 2019 à 11:23:11

      Salut,
      Je pense que tu devrais faire ton get-content directement dans ta variable $filecomputernames
      • Partager sur Facebook
      • Partager sur Twitter

      Powershell foreach et export- csv

      × 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