Outlook/Exchange Birthday Fix
Outlook/Exchange Birthday Fix
by
Kevin
·
$contactItems = @()
$outlook = New-Object -ComObject Outlook.Application
$namespace = $outlook.GetNamespace("MAPI")
$contactFolders = ($namespace.Folders | where {$_.Folderpath -like "*Outlook-Datendatei*"}).Folders
foreach($contactFolder in $contactFolders){
foreach($contact in $contactFolder.Items){
try{
$contactBirthdayOld = $null
$contactBirthdayOld = $contact.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x3A420040") #PidTagBirthday
}catch{
# Nothing to do here
}
if($contactBirthdayOld -ne $null -AND $contactBirthdayOld -notlike ""){
$contactCreationTime = $contact.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x30070040") #PR_CREATION_TIME
$contactBirthdayNew = $contact.Birthday
try{
$contact.Birthday = $contactBirthdayNew
$contact.Save()
Write-Host "Birthday for $($contact.FullName) has been configured successfully." -ForegroundColor Green
$contactItems += [PSCustomObject]@{
ContactObject = $contact
FullName = $contact.FullName
CreationTime = $contactCreationTime
Birthday = $contactBirthdayNew
PidTagBirthday = $contactBirthdayOld
NewBirthDayDate = $contactBirthdayNew
}
Start-Sleep -Milliseconds 50
}catch{
Write-Host "Failed to set birthday for $($contact.Fullname)!" -ForegroundColor Red
}
}else{
Write-Host "$($contact.FullName) no birthday configured!" -ForegroundColor Gray
}
}
}
$contactItems | ft Fullname, CreationTime, Birthday, PidTagBirthday, NewBirthdayDate
You may also like...