[POWERSHELL] La boucle FOREACH

Hello à tous !
Voici une instruction de Powershell qui sert énormément.

Aujourd’hui, notre exemple est le suivant :
Nous devons récupérez les logs d’une vingtaine de poste.

Pour ce faire, nous allons récupérer nos postes et les mettre dans un fichier txt. Notez les uns sous les autres.

$PCS = Get-Content "C:\OneDrive\Script\list.txt"

Ici, nous définissons notre variable $PCS avec le cmdlet Get-Content.
La valeur de notre variable  est égale au contenu de notre fichier “C:\OneDrive\Script\list.txt”.
Maintenant, réfléchissons à la manière de récupérer les logs désirés.
Voici le script :

Copy-Item -filter *.log "\\PC\c\program Files\NPortAdminSuite\bin\" "C:\OneDrive\Script\$PC\" -Recurse

Le cmdlet Copy-Item nous permet de copier des fichiers.
L’option -filter *.log permet de prendre uniquement les fichiers avec l’extension .log
Le 1er chemin correspond à la source.
Le 2nd correspond à la destination.

Maintenant, nous devons faire en sorte que chaque ligne de notre fichier texte, où sont inscrit les postes, soit traitée pour que nous puissions récupérer nos logs.

foreach (PC inPCS) {}

Nous utiliserons la boucle foreach.
Entre (), nous déclarons une nouvelle variable $PC.
Elle correspond à chaque ligne de notre fichier texte.

Maintenant, mettons tout cela en ordre :




Tous les PC présents dans notre fichier texte seront traités.
Ainsi, nous récupérerons tous les fichiers logs en un clic !

C’est merveilleux !