Selon moi, la première notion à connaître est la manipulation des fichiers CSV. Lisons donc un fichier CSV et faisons une boucle dessus pour manipuler chaque ligne.
Partons de l'exemple suivant.
Samaccountname | |
---|---|
abc123 | abc123@domain.com |
def123 | def123@domain.com |
ghi123 | ghi123@test.com |
Samaccountname,Mail abc123,abc123@domain.com def123,def123@domain.com ghi123,ghi123@test.com
Import-Csv -Path input.csv | foreach { # On sauvegarde l'objet courant dans une variable dédiée $currentLine = $_ # exemple de récupération de colonne $mail = $currentLine.Mail # on fait un test # on ajoute une propriété à la ligne courante avec le résultat du test if ($mail -match "domain.com$") { $currentLine | Add-Member -MemberType NoteProperty -Name "domainCheck" -Value "valid" } else { $currentLine | Add-Member -MemberType NoteProperty -Name "domainCheck" -Value "invalid" } # on retourne la ligne courante avec la nouvelle colonne $currentLine } | # export result line by line to CSV # -NoTypeInformation empêche le fichier exporté de contenir une ligne de metadata Export-Csv -Path preCheck.csv -NoTypeInformation
Ce script exporte ce genre de fichier CSV avec une nouvelle colonne.
"Samaccountname","Mail","domainCheck" "abc123","abc123@domain.com","valid" "def123","def123@domain.com","valid" "ghi123","ghi123@test.com","invalid"
Samaccountname | domainCheck | |
---|---|---|
abc123 | abc123@domain.com | valid |
def123 | def123@domain.com | valid |
ghi123 | ghi123@test.com | invalid |