Array Definition and For Each Loops
Array Definition:
$aliases = @(
"user1"
"user2"
"user3"
"user4"
)
ForEach Loop:
$results = foreach ($currentAlias in $aliases) {
Get-Mailbox -Identity $currentAlias |
Select-Object DisplayName, Alias, PrimarySmtpAddress, UserPrincipalName, Database
}
Display/Export the results:
$results | Format-Table -AutoSize
# or
$results | Export-Csv .\mailboxes.csv -NoTypeInformation
Using try/catch error handling:
$aliases = @(
"user1"
"user2"
"user3"
"user4"
)
$results = foreach ($currentAlias in $aliases) {
try {
Get-Mailbox -Identity $currentAlias -ErrorAction Stop |
Select-Object DisplayName, Alias, PrimarySmtpAddress, UserPrincipalName, Database
}
catch {
[PSCustomObject]@{
DisplayName = $null
Alias = $currentAlias
PrimarySmtpAddress = $null
UserPrincipalName = $null
Database = "ERROR: $($_.Exception.Message)"
}
}
}
$results | Where-Object Database -like "ERROR*"
$results | Export-Csv .\mailbox-report.csv -NoTypeInformation