To me, the first thing we need to learn is to deal with is CSV file. First let's read a CSV file, loop across the lines.
Here is an example of CSV input file.
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 { # save current object into a local variable $currentLine = $_ # deal with columns $mail = $currentLine.Mail # test mail domain name # we add a property with the result of our 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" } # return updated currentLine with new column $currentLine } | # export result line by line to CSV # -NoTypeInformation prevents metadata from being exported Export-Csv -Path preCheck.csv -NoTypeInformation
This script will output CSV file with a new column.
"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 |