Microsoft, Kasım 2024’te yayımladığı Exchange Server 2016 ve 2019 güvenlik güncellemelerinde yaşanan sorunlar için çözüm paylaştı. Güncellemenin ilk ve ikinci sürümleri, takvimle ilgili dosyaların işlenmesinde hatalara neden oluyor. Bu durum, özellikle Outlook Web App (OWA) ve Exchange Active Sync (EAS) kullanıcılarını etkiliyor.
Belirtiler
Güncellemeyi yükledikten sonra şu sorunlarla karşılaşabilirsiniz:
- .ical veya .ics dosyalarını ön izleyememe ve takvime ekleyememe.
- E-posta taşınırken (.ical veya .ics eklentileriyle) Exchange Transport’ta hatalar.
- Exchange sunucusunda şu tür olay günlüğü kayıtları oluşması:
w3wp#MSExchangeOWAAppPool,M.Exchange.Net, M.E.E.ExIanaTimeZoneProvider+Cache.AddTimeZone, M.E.ExchangeSystem.InvalidTimeZoneException
Microsoft.Exchange.ExchangeSystem.InvalidTimeZoneException: Time zone id already exists
Neden
Hata, Exchange Server tarafından kullanılan IanaTimeZoneMappings.xml dosyasındaki çift girişten kaynaklanıyor. Bu dosyada aynı zaman dilimine ait birden fazla kayıt bulunması, işlem hatalarına yol açıyor.
Çözüm
Yöntem 1: Manuel Düzenleme
- Dosyayı Bulun:
- IanaTimeZoneMappings.xml dosyası, şu dizinde yer alır:
<ExchangeInstallPath>\Microsoft\Exchange Server\V15\Bin
- IanaTimeZoneMappings.xml dosyası, şu dizinde yer alır:
- Girişleri Düzenleyin:
- Dosyayı Not Defteri ile açın.
- Aşağıdaki kaydı bulun (iki kez görünecektir):javascriptCopy code
<Map IANA="Asia/Bishkek" Win="Central Asia Standard Time" />
- Bu girişlerden birini silin ve dosyayı kaydedin.
- Servisleri Yeniden Başlatın: Yükseltilmiş bir PowerShell penceresinde şu komutları çalıştırın
Restart-Service -Name W3SVC, WAS -Force
Restart-Service -Name MSExchangeTransport
Yöntem 2: Powershell ile düzeltme
Aşağıdaki PowerShell kodunu bir dosyaya yapıştırın ve IANATimeZoneFix.ps1 adıyla kaydedin ve EMC
#Requires -Version 3.0
#Requires -RunAsAdministrator
$ianaMappingFilePath = "$env:ExchangeInstallPath\Bin\IanaTimeZoneMappings.xml"
$backupFilePath = "$($env:ExchangeInstallPath)Bin\$(Get-Date -Format MMddyyyyHHmmss)_IanaTimeZoneMappings.xml"
$xPathFilter = "//Map[@IANA='Asia/Bishkek' and @Win='Central Asia Standard Time']"
try {
if ($ianaMappingFilePath -eq "\Bin\IanaTimeZoneMappings.xml") {
Write-Host "Make sure to run the script on an Exchange Server" -ForegroundColor Red
} else {
[xml]$ianaMappingFile = Get-Content -Path $ianaMappingFilePath
$nodes = $ianaMappingFile.SelectNodes($xPathFilter)
if ($nodes.Count -eq 2) {
Write-Host "[+] Duplicate entries detected" -ForegroundColor Yellow
Copy-Item -Path $ianaMappingFilePath -Destination $backupFilePath
Write-Host "[+] Backup created: $backupFilePath"
try {
$nodes[0].ParentNode.RemoveChild($nodes[0]) | Out-Null
$ianaMappingFile.Save($ianaMappingFilePath)
} catch {
Write-Host "[+] Exception: $_" -ForegroundColor Red
}
Write-Host "[+] Duplicate entry successfully removed" -ForegroundColor Green
Write-Host "[+] Restarting services: W3SVC, WAS & MSExchangeTransport" -ForegroundColor Yellow
Restart-Service -Name W3SVC, WAS -Force
Restart-Service -Name MSExchangeTransport
} else {
Write-Host "[+] No duplicate entries found" -ForegroundColor Green
}
}
} catch {
Write-Host "[+] Exception: $_" -ForegroundColor Red
}
Bu işlemlerin ardından sorun giderilmiş olacaktır.