I'm pulling a subset of data from a long list of users I want to populate into a CSV. I can do the following which prints to screen the list, how do I then write each iteration as a row in a CSV?
foreach ($User in $UserList)
{
Write-Host $User.Enabled #Enabled
if ($User.Country -eq "CA" -OR $User.DistinguishedName -like "CANADA")
{
Write-Host "Canada"
}
elseif ($User.Country -eq "LUX" -OR $User.DistinguishedName -like "LUXEMBOURG")
{
Write-Host "Luxembourg"
}
elseif ($User.Country -eq "BRL" -OR $User.DistinguishedName -like "BRAZIL")
{
Write-Host "Brazil"
}
elseif ($User.Country -eq "USA" -OR $User.DistinguishedName -like "US")
{
Write-Host "America"
}
elseif ($User.Country -eq "UNITED KINGDOM" -OR $User.DistinguishedName -like "GB")
{
Write-Host "United Kingdom"
}
elseif ($User.Country -eq "HONG KONG" -OR $User.DistinguishedName -like "HK")
{
Write-Host "Hong Kong"
}
elseif ($User.Country -eq "INDIA" -OR $User.DistinguishedName -like "IN")
{
Write-Host "India"
}
elseif ($User.Country -eq "AUSTRALIA" -OR $User.DistinguishedName -like "AU")
{
Write-Host "Australia"
}
Write-Host $User.SamAccountName #Login ID
Write-Host $User.GivenName #First Name
Write-Host $User.Surname #Last Name
Write-Host $User.Title #Title
Write-Host $User.mail #E-Mail
Write-Host $User.LastLogonDate #Last Login Date
if ($User.accountExpires -eq 1)
{
Write-Host $User.AccountExpirationDate
}
else
{
Write-Host "N/A"
} #Expiration Date
# Write-Host $User. #Password Expiration
Write-Host $User.Department #Department
Write-Host $User.Office #Floor
Write-Host $User.OfficePhone #Office Number
Write-Host $User.MobilePhone #Mobile Number
Write-Host $User.whenCreated #Created Date
Write-Host $User.whenChanged #Changed Date
}
I'd suggest using a
switch
,Export-Csv
, and calculated properties withSelect-Object
: