[Microsoft.Office.Interop.Outlook.Application] $outlook = New-Object -ComObject Outlook.Application
$entries = $outlook.Session.GetGlobalAddressList().AddressEntries
foreach($entry in $entries){
write-output ("{0}: {1}" -f $entry.Name, $entry.GetExchangeUser().PrimarySMTPAddress), $entry.GetExchangeUser().MobileTelephoneNumber)
}
OR
param (
$OutFile = (Get-Date -Format yyyy-MM-dd) + "_GALEntries.csv"
)
$Outlook = New-Object -ComObject Outlook.Application
$GlobalAddressList = $Outlook.Session.GetGlobalAddressList().AddressEntries
$TotalObjects = $GlobalAddressList.Count
$i = 1
foreach ($entry in $GlobalAddressList)
{
Write-Progress -Id 1 -Activity "Exporting Global Address List Entries" -PercentComplete (($i / $TotalObjects) * 100) -Status "[$($i)/$($TotalObjects)] entries exported"
If ($entry.Address -match "\/o\=")
{
$EntryData = $entry.GetExchangeUser()
$RecordData = [ordered]@{
Name = $EntryData.Name
First = $EntryData.FirstName
Last = $EntryData.Last
PrimarySmtpAddress = $EntryData.PrimarySmtpAddress
UserPrincipalName = $EntryData.PrimarySmtpAddress
x500 = $EntryData.Address
Alias = $EntryData.Alias
AssistantName = $EntryData.AssistantName
BusinessPhone = $EntryData.BusinessTelephoneNumber
MobilePhone = $EntryData.MobileTelephoneNumber
Title = $EntryData.JobTitle
Department = $EntryData.Department
Company = $EntryData.CompanyName
OfficeLocation = $EntryData.OfficeLocation
Address = $EntryData.StreetAddress
City = $EntryData.City
StateOrProvince = $EntryData.StateOrProvince
PostalCode = $EntryData.PostalCode
}
$Record = New-Object PSobject -Property $RecordData
$Record | Export-csv $OutFile -NoTypeInformation -Append
}
$i++
}
Write-Progress -Id 1 -Status "Completed." -Completed