Exchange Server 2007 ve 2010 Ortamlarından 2013 Ortamına Geçiş – Exchange Server 2013 Migration
Bu makalemde sizlere mevcut organizasyonunuzda kullanmakta olduğunuz Exchange Server 2010 sistemlerinin 2013 sistemlere nasıl taşınacağını anlatacağım.
Malum Exchange Server 2010 SP3 ve Exchange Server 2013 CU1 yükseltme paketlerinin çıkması ile artık bu iki ürün bir arada çalışabiliyor. Bu da geçiş projelerinin başlayacağı anlamına geliyor.
Peki, proje planlarken nelere dikkat etmek gerekiyor.
Malum Exchange çok geniş mimariler için tasarlanan bir ürün. Ancak isterseniz tek bir sunucu ile de rahatlıkla uygun ölçekli firmalara hizmet verebiliyor. Bende bu nedenle makalemi parçalar halinde sizlere sunacağım.
Makalemin ilk bölümü Kobi ve orta ölçekli işletmeler için yani tek sunuculu bir ortamdaki geçişi canlandıracağım. İlerleyen bölümlerde ise CAS Array ve DAG mimarisi olan yapılar için detay vermeye devam edeceğim.
Öncelikle aşağıdaki tablo yardımı ile duruma genel olarak bir bakalım.
Bu tablo bizlere Exchange 2003 hariç diğer iki eski sürüm için geçiş desteklediğini görebiliyoruz. Exchange Server 2013 eski Exchange sürümleri ile birlikte çalışabiliyor ( 2003 hariç ), ancak siz ortama Exchange kurulumunu direkt olarak Exchange 2013 ile yaparsanız bu durumda ortama eski sürüm bir Exchange ekleme şansınız yoktur.
Geçiş adımlarımızı aşağıdaki gibi sıralıyorum;
1 – Exchange 2013 Sistem Gereksinimlerini Kontrol Ediyoruz.
2 – Gerekli Olan Sistem Gereksinimlerini Yerine Getiriyoruz.
3 – Eğer gereli ise Disjoint Name Space için gerekli ayarları yapacağız.
4 – Exchange 2013 Kurulumunu Mevcut 2010 kurulu ortama yapıyoruz.
5 – Exchange Server 2013 üzerinde Sertifika Ayarlarını tamamlıyoruz.
6 – Exchange Virtual Directory Ayarlarını Düzenliyoruz.
7 – Offline Address Book Ayarlarını Yapıyoruz.
8 – Internet mail trafiğini Exchange 2010 dan 2013 e aktarıyoruz.
9 – Posta kutularını 2013’ e taşıyoruz.
10 – Varsa Public Folder taşıma işlemini gerçekleştiriyoruz.
11 – Exchange Server 2013 için gerekli olan kurulum sonrası adımları yapıyoruz. ( lisans anahtarı, CAS ayarları, kurulumun kontrol edilmesi, gerekli olan yönetim sunuculara konsol kurulması vb ).
Bu adımlara başlamadan önce mutlaka mevcut sisteminiz ile bütünleşmiş çalışan yedekleme, anti virüs, imza yazılımları veya Audit yazılımları gibi kullandığınız 3 parti yazılımların Exchange Server 2013 ile de uyumlu olması gerekmektedir. Bu ürünlerden en önemlisi yedeklemedir. Çünkü eğer hazır bir ürününüz yok ise çok kısa sürede loğlardan kaynaklı olarak diskleriniz dolacaktır. Bu nedenle geçiş öncesi mutlaka bu ürünlerin desteklendiğini kontrol ediniz.
Yine bir diğer önemli konu bu işleme başlamadan önce mutlaka mevcut sistemin güncel bir yedeğini alınız. Bunu okuyup geçmeyin lütfen gerçekten önemli bir maddedir J
Benim kendi alışkanlıklarımdan bir tanesi de mutlaka mevcut ortamın sağlıklı çalıştığını kontrol etmemdir. Çünkü sorunlu bir yapıyı geçirmek ortamı çok daha ciddi manada bozabilir. Bunun için mevcut sistemin mutlaka loglarını iyice inceleyiniz.
1 – Exchange 2013 Sistem Gereksinimlerini Kontrol Ediyoruz.
Mevcut Organizasyon Durumunuzu Kontrol Edelim.
Organizasyonunuzda Minimum Exchange Server 2007 SP3 RL10 olmalıdır.
Exchange Server 2003, geçiş için desteklenmediği için öncelikle 2007 veya 2010 sürümlerine yükseltilerek bu geçişi yapabilirsiniz. Veya 3 parti yazılımlar kullanabilirsiniz.
Eğer Office 365 olan bir ortam için geçiş yapacaksanız aşağıdaki linki incelemenizi öneriyorum
http://technet.microsoft.com/en-us/library/hh534377(v=exchg.150).aspx
Schema Master Rolü yüklü DC’ lerin desteklenen işletim sistemi sürümleri aşağıdaki gibidir;
Windows Server 2012 Standard or Datacenter
Windows Server 2008 R2 Standard or Enterprise
Windows Server 2008 R2 Datacenter RTM or later
Windows Server 2008 Standard or Enterprise (32-bit or 64-bit)
Windows Server 2008 Datacenter RTM or later
Windows Server 2003 Standard Edition with Service Pack 2 (SP2) or later (32-bit or 64-bit)
Windows Server 2003 Enterprise Edition with SP2 or later (32-bit or 64-bit)
Global Catalog rolü için desteklenen işletim sistemi sürümleri aşağıdaki gibidir;
Windows Server 2012 Standard or Datacenter
Windows Server 2008 R2 Standard or Enterprise
Windows Server 2008 R2 Datacenter RTM or later
Windows Server 2008 Standard or Enterprise (32-bit or 64-bit)
Windows Server 2008 Datacenter RTM or later
Windows Server 2003 Standard Edition with Service Pack 2 (SP2) or later (32-bit or 64-bit)
Windows Server 2003 Enterprise Edition with SP2 or later (32-bit or 64-bit)
Domain Controller olacak makineler için desteklenen işletim sistemi sürümleri aşağıdaki gibidir;
Windows Server 2012 Standard or Datacenter
Windows Server 2008 R2 Standard or Enterprise SP1 or later
Windows Server 2008 R2 Datacenter RTM or later
Windows Server 2008 Standard or Enterprise SP1 or later (32-bit or 64-bit)
Windows Server 2008 Datacenter RTM or later
Windows Server 2003 Standard Edition with Service Pack 2 (SP2) or later (32-bit or 64-bit)
Windows Server 2003 Enterprise Edition with SP2 or later (32-bit or 64-bit)
Network tarafında ise Exchange Server 2013 IPv6 desteklemektedir, ancak bunu şartı olarak IPv4 ün yüklü ve açık olması gerekmektedir. Böyle bir ortam için tüm iletişim IPv6 üzerinden gerçekleşir.
Daha fazla bilgi için
http://technet.microsoft.com/en-us/library/gg144561(v=exchg.150).aspx
Domain Controller tarafındaki limitasyonlara bakacak olursak. Performans nedeni ile 64bit’ lik DC lerin olduğu bir ortamda kurulum tavsiye edilmektedir. Buna ek olarak DC üzerine kurulum desteklenmek ile beraber tavsiye edilmemektedir. Yani mümkünse Exchange Server 2013 kurulumunu Member bir makinede yapın.
Eğer buna imkânınız yok ve DC üzerine Exchange Server 2013 kurulumu yaparsanız artık bu dc üzerinde dcpromo komutu kullanamazsınız. Yani Bu DC’ yi ortamdan uzaklaştırmak veya tekrar Member bir makine yapma şansınız yok. Bunun için mutlaka Exchange Server’ ı kaldırmanız gereklidir.
Donanım tarafındaki gereksinimleri ise aşağıdaki gibidir;
X64CPU
RAM = Mailbox 8GB minimum, Client Access 4GB minimum, Mailbox ve Client Access yüklü bir makine için ise 8GB minimum
Page file konusunda ise minimum fiziksel RAM miktarınca, maksimum ise 10MB üstü kadar bir değer girmeniz tavsiye edilmektedir.
Exchange yüklenecek disk içerisinde en az 30GB boş alan olması gerekmektedir.
İşletim sistemi olarak ise;
Windows Server 2012 Standard or Datacenter
Windows Server 2008 R2 Standard with Service Pack 1 (SP1)
Windows Server 2008 R2 Enterprise with Service Pack 1 (SP1)
Windows Server 2008 R2 Datacenter RTM or later
Desteklenmektedir, ancak Core sürümleri için destek yoktur. Eğer elinizde 2008 R2 Core var ise yeniden yükleme yapmanız şart iken, Server 2012 için ise aşağıdaki komut ile normal mode geçiş yapabilirsiniz.
Install-WindowsFeature Server-Gui–Mgmt-Infra, Server-Gui-Shell –Restart
Yönetim araçlarını ise aşağıdaki işletim sistemlerine kurabilirsiniz.
Windows Server 2012 Standard or Datacenter
Windows Server 2008 R2 Standard with SP1
Windows Server 2008 R2 Enterprise with SP1
Windows Server 2008 R2 Datacenter RTM or later
Windows 8 x64
Windows 7 SP1 x64
Desteklenen istemci uygulamaları tarafından ise sürümler aşağıdaki gibidir;
Outlook 2013
Outlook 2010 SP1
Outlook 2007 SP3
Entourage 2008 for Mac
Outlook for Mac 2011
2 – Gerekli Olan Sistem Gereksinimlerini Yerine Getiriyoruz.
Exchange Server 2013 Kurmak için olarak gerekli olan sistem gereksinimlerin başında Forest ve Domain gereksinimleri gelmektedir.
Forest Functional Level, en az 2003 olmalı ve Schema Master rolümü taşıyan DC’ ninde minimum Server 2003 SP2 olması gereklidir.
Schema genişletme işlemini eğer kurulum ile birlikte yapmak yerine farklı bir makinede yapmak istiyorsanız bu durumda bu makineye aşağıdaki iki bileşeni yüklemeniz gerekmektedir.
Windows Management Framework 3.0
Ancak ek bir iş çıkmaması adına zaten Windows Server 2012 içerisinde var olan yukarıdaki bileşenleri yükleyip aynı makine üzerinden schema genişletme işlemi yapabilirsiniz veya hiç bunlar ile uğraşmaz ara yüzden bu güncelleme işleminin otomatik bir şekilde yapılmasını tercih edebilirsiniz.
Server 2012 üzerinde bu komutları çalıştırmak için RSAT-ADDS yüklü olması gerekmektedir.
Install-WindowsFeature RSAT-ADDS
Eğer komut seti ile yapmak isterseniz gerekli kurulumların olduğu bir makine üzerinde aşağıdaki komutu çalıştırabilirsiniz.
setup /PrepareSchema veya setup /ps
Sözleşmeyi kabul etmek için tam komut aşağıdaki gibidir
Setup /ps /IAcceptExchangeServerLicenseTerms
Bu komutu çalıştırmak için Enterprise Admins ve Schema Admins grubu üyesi olmanı gereklidir.
Bu komutu schema master rolüne sahip olan Domain controller ile aynı site ve aynı domain’ e üye bir makinede çalıştırmanız gereklidir. Ayrıca makinede yüklü olan işletim sistemi 64bit olmalıdır.
Bu komutu çalıştırdıktan sonra organizasyonunuzun büyüklüğüne göre replikasyon süresini beklemeniz gerekmektedir. Bu süreci repadmin komut seti ile kontrol edebilirsiniz.
Repadmin /showrepl
Buradan DC lerin en son ne zaman güncellendiğini tarih ve saat olarak takip edebilirsiniz.
Eğer site yapısından dolayı saatlerce replikasyonu beklemek istemiyorsanız aşağıdaki komut ile yine replikasyonu elle tetikleyebilirsiniz
Repadmin /syncall /Aed
Bundan sonra ise AD için aşağıdaki komut setini çalıştırıyoruz.
setup /PrepareAD [/OrganizationName: <organization name> ] or setup /p [/on:<organization name>]
Eğer hali hazırda kurulu bir Exchange server var ise sadece /p çalışacaktır, ancak eğer ilk kez kurulum yapıyorsanız aynı ara yüzde size sorulduğu gibi bir organizasyon ismi vermek için /OrganizationName parametresini kullanmanız gereklidir.
Organizasyon ismi en fazla 64 karakter olabilir, a-z, A-z, boşluk ( başta ve sonra olmayacak), 0-9, tire, gibi standart bir isimlendirme şartları vardır. Ayrıca eğer boşluk kullanacaksanız isimde mutlaka “” işaretleri arasında yazmanız gerekmektedir.
Ardından AD içerisinde aşağıdaki gibi bir OU nun oluştuğunu göreceksiniz.
Microsoft Exchange Security Groups
İçerisinde ise aşağıdaki gibi gruplar vardır.
Compliance Management
Delegated Setup
Discovery Management
Exchange Servers
Exchange Trusted Subsystem
Exchange Windows Permissions
ExchangeLegacyInterop
Help Desk
Hygiene Management
Organization Management
Public Folder Management
Recipient Management
Records Management
Server Management
UM Management
View-Only Organization Management
Bu süreç ile beraber arka planda bir takım tanımlamalar yapılmaktadır. Eğer bu detayları merak ediyorsanız aşağıdaki linkten detay bilgi alabilirsiniz.
http://technet.microsoft.com/en-us/library/bb125224(v=exchg.150).aspx
Bir sonraki komutumuz ise
setup /PrepareDomain or setup /pd
Eğer siz bir önceki komutu, yani PrepareAD komutunu hali hazırda bu domain içerisinde çalıştırdıysanız ek olarak bu 3. Komutu çalıştırmaya gerek yoktur. Çünkü PrepareAD bu komutu da içermektedir. Ancak forest içerisinde ek domainler var ise bu durumda PrepareDomain komutunu çalıştırmanız gereklidir.
Burada da isterseniz bir domain veya tüm domainler için bu komutu kullanabilirsiniz
setup /PrepareDomain:<FQDN of domain you want to prepare>
Bu komutu çalıştırmak için Domain Admins grubu üyesi olmanız gerekmektedir.
setup /PrepareAllDomains or setup /pad
Bu komutu çalıştırmak için enterprise Admins grubu üyesi olmanız gerekmektedir.
Tüm bu yapılanların doğruluğunu kontrol etmek için aşağıdaki gibi bir takım noktaları kontrol edebilirsiniz.
msExchProductId
CN=<your organization>,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=<domain>
Exchange 2013 RTM=15.00.516.032
Exchange 2013 CU1=15.00.620.029
Bu bilgi aslında yeterlidir. Yani AD artık hazır ve yükleme yapabilirsiniz.
Ek olarak aşağıdaki bölümleri de kontrol edebilirsiniz.
“CN=ms-Exch-Schema-Version-Pt,CN=Schema,CN=Configuration,DC=domain,DC=local“
Altında
ms-Exch-Schema-Verision-Pt
Kaydını bulup özelliklerinden
rangeUpper
Özniteliğinin değerini kontrol ediyoruz.
Tüm liste aşağıdaki gibidir.
İsterseniz aşağıdaki komut ile de bu sonucu kontrol edebilirsiniz.
“dsquery * CN=ms-Exch-Schema-Version-Pt,cn=schema,cn=configuration,dc=domain,dc=local –scope base -attr rangeUpper“
Diğer kontroller.
Exchange 2013 RTM=15137
Exchange 2013 CU1=15254
objectVersion
CN=<your organization>,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=<domain>
Exchange 2013 RTM=15449
Exchange 2013 CU1=15614
objectVersion
Microsoft Exchange System Objects container under DC=<root domain is set to the correct value.
Exchange 2013 RTM ve Exchange 2013 CU1=13236
Evet, AD tarafındaki hazırlıkları yaptık ise şimdi sunucu üzerindeki hazırlıklara başlayabiliriz.
Windows Server 2012 Üzerinde Exchange Server 2013 CAS + MBX Kurulumu
İlk olarak gerekli Windows bileşenlerini yükleyelim.
Install-WindowsFeature AS-HTTP-Activation, Desktop-Experience, NET-Framework-45-Features, RPC-over-HTTP-proxy, RSAT-Clustering, RSAT-Clustering-CmdInterface, RSAT-Clustering-Mgmt, RSAT-Clustering-PowerShell, Web-Mgmt-Console, WAS-Process-Model, Web-Asp-Net45, Web-Basic-Auth, Web-Client-Auth, Web-Digest-Auth, Web-Dir-Browsing, Web-Dyn–Compression, Web-Http-Errors, Web-Http-Logging, Web-Http-Redirect, Web-Http-Tracing, Web-ISAPI-Ext, Web-ISAPI-Filter, Web-Lgcy–Mgmt-Console, Web-Metabase, Web-Mgmt-Console, Web-Mgmt-Service, Web-Net-Ext45, Web-Request–Monitor, Web-Server, Web-Stat-Compression, Web-Static-Content, Web-Windows-Auth, Web-WMI, Windows-Identity-Foundation
Ardından aşağıdaki ek yüklemeleri yapalım.
Microsoft Unified Communications Managed API 4.0, Core Runtime 64-bit
Microsoft Office 2010 Filter Pack 64 bit
Microsoft Office 2010 Filter Pack SP1 64 bit
Windows Server 2012 Üzerinde Exchange Server 2013 CAS Kurulumu
Yine ilk olarak gerekli olan Windows bileşenlerini yükleyelim.
Install-WindowsFeature AS-HTTP-Activation, Desktop-Experience, NET-Framework-45-Features, RPC-over-HTTP-proxy, RSAT-Clustering, RSAT-Clustering-CmdInterface, RSAT-Clustering-Mgmt, RSAT-Clustering-PowerShell, Web-Mgmt-Console, WAS-Process-Model, Web-Asp-Net45, Web-Basic-Auth, Web-Client-Auth, Web-Digest-Auth, Web-Dir-Browsing, Web-Dyn–Compression, Web-Http-Errors, Web-Http-Logging, Web-Http-Redirect, Web-Http-Tracing, Web-ISAPI-Ext, Web-ISAPI-Filter, Web-Lgcy–Mgmt-Console, Web-Metabase, Web-Mgmt-Console, Web-Mgmt-Service, Web-Net-Ext45, Web-Request–Monitor, Web-Server, Web-Stat-Compression, Web-Static-Content, Web-Windows-Auth, Web-WMI, Windows-Identity-Foundation
Ardından aşağıdaki ek yüklemeyi yapalım
Microsoft Unified Communications Managed API 4.0, Core Runtime 64-bit
Windows Server 2008 R2 Üzerinde Exchange Server 2013 CAS+MBX Kurulumu
Gerekli olan bileşenlerin kurulumu için aşağıdaki komutu kullanabilirsiniz.
Import-Module ServerManager
Add-WindowsFeature Desktop-Experience, NET-Framework, NET-HTTP-Activation, RPC-over-HTTP-proxy, RSAT-Clustering, RSAT-Web-Server, WAS-Process-Model, Web-Asp-Net, Web-Basic-Auth, Web-Client-Auth, Web-Digest-Auth, Web-Dir-Browsing, Web-Dyn–Compression, Web-Http-Errors, Web-Http-Logging, Web-Http-Redirect, Web-Http-Tracing, Web-ISAPI-Ext, Web-ISAPI-Filter, Web-Lgcy–Mgmt-Console, Web-Metabase, Web-Mgmt-Console, Web-Mgmt-Service, Web-Net-Ext, Web-Request–Monitor, Web-Server, Web-Stat-Compression, Web-Static-Content, Web-Windows-Auth, Web-WMI
Ardından ek bileşenleri yüklüyoruz.
- Microsoft .NET Framework 4.5
- Windows Management Framework 3.0
- Microsoft Unified Communications Managed API 4.0, Core Runtime 64-bit
- Microsoft Office 2010 Filter Pack 64 bit
- Microsoft Office 2010 Filter Pack SP1 64 bit
- Microsoft Knowledge Base article KB974405 (Windows Identity Foundation)
- Knowledge Base article KB2619234 (Enable the Association Cookie/GUID that is used by RPC over HTTP to also be used at the RPC layer in Windows 7 and in Windows Server 2008 R2)
- Knowledge Base article KB2533623 (Insecure library loading could allow remote code execution)
Windows Server 2008 R2 Üzerinde Exchange Server 2013 CAS Yükleme
Import-Module ServerManager
Add-WindowsFeature Desktop-Experience, NET-Framework, NET-HTTP-Activation, RPC-over-HTTP-proxy, RSAT-Clustering, RSAT-Web-Server, WAS-Process-Model, Web-Asp-Net, Web-Basic-Auth, Web-Client-Auth, Web-Digest-Auth, Web-Dir-Browsing, Web-Dyn–Compression, Web-Http-Errors, Web-Http-Logging, Web-Http-Redirect, Web-Http-Tracing, Web-ISAPI-Ext, Web-ISAPI-Filter, Web-Lgcy–Mgmt-Console, Web-Metabase, Web-Mgmt-Console, Web-Mgmt-Service, Web-Net-Ext, Web-Request–Monitor, Web-Server, Web-Stat-Compression, Web-Static-Content, Web-Windows-Auth, Web-WMI
Ardından aşağıdaki ek yüklemeleri yapıyoruz.
- Microsoft .NET Framework 4.5
- Windows Management Framework 3.0
- Microsoft Unified Communications Managed API 4.0, Core Runtime 64-bit
- Knowledge Base article KB974405 (Windows Identity Foundation)
- Knowledge Base article KB2619234 (Enable the Association Cookie/GUID that is used by RPC over HTTP to also be used at the RPC layer in Windows 7 and in Windows Server 2008 R2)
- Knowledge Base article KB2533623 (Insecure library loading could allow remote code execution)
3 – Eğer gerekli ise Disjoint Name Space için gerekli ayarları yapacağız.
Bende Disjoint name space yok.
4 – Exchange 2013 Kurulumunu Mevcut 2010 kurulu ortama yapıyoruz.
Exchange Server 2013, native mode Exchange organization dediğimiz geriye dönük ( 2003 hariç ) eski kurulu Exchange organizasyonlarına kurulabilir. Ancak Exchange Server 2013 ile oluşturulan bir organizasyona Exchange 2010 veya önceki sürümler eklenemez.
Öncelikle Yukarıdaki gibi AD ortamımızı hazırlıyorum.
Bu bölümde çalıştıracağım komutların hangi makine üzerinde ve hangi yetkiler ile çalıştırılacağı konusunda detaylı bilgiyi makalemin başında verdiğim için şu anda detay vermeden direkt olarak sürece geçiyorum.
Schema güncelleme işleminden önce sunucuya yönetim araçlarını kuruyorum.
Install-WindowsFeature RSAT-ADDS
Ardından Schema extend işlemi için /ps komutunu kullanıyorum ( PrepareSchema )
Setup /ps /IAcceptExchangeServerLicenseTerms
Ardından PrepareAD komutunu çalıştırıyorum.
Evet, bu da başarı ile tamamlandı. Eğer bu komutu çalıştırdığınız makinenin üye olduğu domain’ den başka bir domain var ise bu Forest içerisinde bu durumda bundan sonraki komut olan PrepareDomain komutunu çalıştırabilirsiniz, ancak PrepareAD komutunu çalıştırdığınız domain için ek olarak bu komutu çalıştırmaya gerek yoktur.
Ama isterseniz çalıştırabilirsiniz.
Artık organizasyon tarafında AD gereksinimlerini tamamlamış olduk.
Şimdi ise makine tarafındaki gereksinimlere başlayalım. Ben Server 2012 üzerine kurulum yapacağım için aşağıdaki komut setlerini kullanıyorum.
2008 R2 için makalemin başında komutları paylaşmıştım.
Install-WindowsFeature AS-HTTP-Activation, Desktop-Experience, NET-Framework-45-Features, RPC-over-HTTP-proxy, RSAT-Clustering, RSAT-Clustering-CmdInterface, RSAT-Clustering-Mgmt, RSAT-Clustering-PowerShell, Web-Mgmt-Console, WAS-Process-Model, Web-Asp-Net45, Web-Basic-Auth, Web-Client-Auth, Web-Digest-Auth, Web-Dir-Browsing, Web-Dyn–Compression, Web-Http-Errors, Web-Http-Logging, Web-Http-Redirect, Web-Http-Tracing, Web-ISAPI-Ext, Web-ISAPI-Filter, Web-Lgcy–Mgmt-Console, Web-Metabase, Web-Mgmt-Console, Web-Mgmt-Service, Web-Net-Ext45, Web-Request–Monitor, Web-Server, Web-Stat-Compression, Web-Static-Content, Web-Windows-Auth, Web-WMI, Windows-Identity-Foundation
Ardından aşağıdaki ek yüklemeleri yapalım.
Microsoft Unified Communications Managed API 4.0, Core Runtime 64-bit
Microsoft Office 2010 Filter Pack 64 bit
Microsoft Office 2010 Filter Pack SP1 64 bit
Bu yüklemelerden sonra Exchange Server 2013 kurulumuna başlıyoruz.
Eğer Elinizde CU1 yükleme dosyası var ise hiç RTM versiyonu ve üstüne CU1 yüklemesi yapmayın, direkt olarak CU1 yüklemesi Exchange kurulumunu içerdiği için onun ile devam edebilirsiniz. Bu daha hızlı ve sorunsuz bir kurulum sağlar. Ancak ben mevcut organizasyonunda RTM versiyon olana üyelerimiz için detaylı olarak hem kurulum hem de sonrasında CU1 yüklemesini anlatacağım.
Eğer internet bağlantınız var ise en güncel yamalar ile birlikte kurulum yapabiliyoruz. Ancak size tavsiyem her zaman için elinizdeki kurulum, sonrasında ise CU1 ve benzeri yüklemeleri yapmanızdır.
Genel bir bilgilendirme ekranı sonrası lisans sözleşmesini kabul ediyoruz.
Bir sonraki ekranda ise olası bir hata durumunda Microsoft’ a bu konuda bilgi göndermesi ile ilgili bir seçenek bulunmakta olup, ben sunucu ve donanım bilgilerimin paylaşılmasını istemediğim için bunu seçmiyorum.
Hemen ardından kurmak istediğimiz rolleri seçiyoruz.
Kurulum dizini.
Bildiğiniz gibi artık Forefront Protection for Exchange ürünü yok. Çünkü Exchange Server 2013 ile beraber bütünleşik olarak bir malware koruması gelmektedir. Kurulum ile beraber bunun açılmasını sağlayabilir veya kurulum sonrasında da bunu aktifleştirebilirsiniz.
Kontrolleri sorunsuz bir şekilde tamamladıktan sonra yükleme işlemine başlayabiliriz.
Kurulum başarı ile tamamlandı.
Şimdi ise kurulumun sorunsuz tamamlandığını kontrol edelim.
İlk olarak powershell ile aşağıdaki komutu çalıştırıyoruz.
Get-ExchangeServer
Gördüğünüz gibi ortamda iki adet Exchange Server vardır.
İsterseniz ADSIEdit ile de kontrol edebiliriz.
Yine kurulum loglarını kontrol edebiliriz.
Logları eğer vaktiniz var ise detaylı inceleyebilirsiniz.
Yine Windows server application ve system olay günlüklerini kontrol edebiliriz.
Servisleri kontrol edelim.
En son olarak yönetim konsoluna bağlanalım. ( Exchange Admin Center – EAC )
Evet, sorunsuz bir şekilde Exchange 2013 kurulumunu tamamladık.
Şimdi ise bir sonraki adım olan CU1 geçişine geldi.
Temel kurulum adımlarına sahip olan CU1 de Exchange 2013 kurulumu gibi güncel yükleme paketlerini kontrol edebiliyor.
Gerekli dosyalar kopyalanıyor.
Bu bölümde yükseltme ile ilgili doküman linkleri yardımı ile yükleme öncesinde ek bilgi alabilirsiniz.
Sözleşmeyi kabul ediyoruz.
Yükleme gereksinimleri kontrol ediliyor. Örneğin mmc konsolunun açık olması yüklemeye engel bir durumdur. Bunun gibi gerekli olan tüm şartların sağlanması gerekli.
Şartların sağlanmasının ardından yükleme işlemini başlatabiliriz.
Yükleme sırasında benim başıma aşağıdaki gibi bir hata çıktı.
Bu sorunu aşmak için Exchange Server 2013 makinesinin sertifikalarının tamamını sildim. ( MMC konsolu üzerinden makine sertifikalarını açıp var olan sertifikaları sildim)
Bende CA yüklü olduğu için ardından yine aynı consol üzerinden yeni bir sertifika isteği yaptım ve bir computer sertifikası aldım.
Ardından CU1 yüklemesini bir daha çalıştırarak sorusuz bir şekilde geçişi tamamlamış oldum.
5 – Exchange Server 2013 üzerinde Sertifika Ayarlarını tamamlıyoruz.
Şimdi Exchange Server 2013 için sertifika ve virtual directory işlemlerini yapmamız gerekiyor. Ancak bu işlemleri EAC üzerinden yapmak için aşağıdaki gibi bir link kullanmak zorundayız.
https://2013server/ecp?ExchClientVer=15
Bunun sebebi ise, siz eğer aşağıdaki gibi standart olarak sisteme giriş yapmak isterseniz, giriş yaptığınız kullanıcı posta kutusu 2010 sisteminde olduğu için 2010 ECP ekranı açılacaktır.
Konsolu açtıktan sonra, sol bölümde “servers” kısmına geliyoruz.
Servers bölümüne tıkladığımız zaman üst bölümdeki en sağ link “certificates” linki olup buna tıklıyoruz.
Yukarıda da gördüğümüz gibi bir adet sertifikamız mevcut. Buna çift tıklayarak detayları aşağıdaki gibi görebiliriz. ( not; ben exchange 2013 kurulumu ile beraber gelen sertifikaları makalemin geçmiş bölümlerinde silmiştim, bunun nedeni ile CU1 yüklemesi sırasında sertifika ile iligli bir hata almıştım. O nedenle sizin kurulumunuzda burada farklı sertifikalar görebilirsiniz. Ek olarak ben sertifikayı mmc konsolundan “computer” sertifika şablonundan aldım. Bu nedenle ismi boş çıkıyor )
Peki, gelelim yeni sertifika alma işlemlerine.
Yine bu bölümdeki “+” linkine tıklayarak yeni bir pencere açıyoruz. Bu pencere içerisinde yukarıdaki gibi temel bir soru var.
Eğer ortamınızda bir sertifika otoritesi var ise veya dış bir otoriteden sertifika almak istiyorsanız ilk seçeneği, yok makinenin kendi kendine imzaladığı bir sertifikayı almak istiyorsanız ikinci seçeneği seçebilirsiniz.
Ben internal CA den bir sertifika almak için ilk seçenek ile devam ediyorum.
Sertifikaya bir isim veriyorum.
Eğer hali hazırda satın alınmış bir wildcard yani yıldız sertifikanız var ise bu kutucuğu işaretleyin ve
*.cozumpark.com
Gibi hangi domain için alınmış ise domain ismini yazmanız yeterli olacaktır.
Bende yıldız sertifika olmadığı için bunu geçiyorum.
Hangi sunucu için sertifika istediğimizi seçiyoruz.
Bu bölümde ise bu sunucu üzerindeki “virtual directory” lere göre sertifika oluşturmak adına bir takım tanımlamalar yapmamız gerekmektedir. Bu şekilde de bırakıp ilerleyebilir ve bir sonraki bölümde elle isimleri ekleyebiliriz. Ancak bu isimler konusuna hakim değilseniz bu bölümde kullandığınız servisler için isimleri tanımlarsanız eğer sistem sertifika isteğine gerekli olan isimleri kendi ekleyecektir.
Örneğin OWA erişimi için internet adresi tanımlı değil, bunu ben tanımlayabilirim. Bu sayede sertifika isteğinde external owa adresi yer alacaktır.
Domain ismim cozumpark.local, dış dünyada kullandığım domain ismi cozumpark.com.
OWA adresim; mail.cozumpark.com
Buna benzer şekilde gerekli tanımlamaları yapıyorum.
Tamamladıktan sonra next diyerek ilerliyoruz.
Kullandığımız servisler ve bu servislere ulaşmak için gerekli olan adreslerin doğrultusunda sertifika içerisinde olması gereken isimler yukarıdaki gibidir. İsterseniz ek isimler ekleyebilir veya çıkarabilirsiniz.
Neden?
Örneğin Sizin 3 tane Exchange Server 2013 CAS sunucunuz olacak, bu durumda ilk sertifika isteğini yaparken 3 ismi de yazarsınız
CAS1.cozumpark.local
CAS2.cozumpark.local
CAS3.cozumpark.local
Ve tabiki diğer isimler, sertifikayı ister, aldıktan sonra sırası ile 3 sunucuya da birden yüklersiniz. Bu sayede tek seferde sertifika alma işlemini bitirmiş olursunuz.
Veya yine bazı ek servisler için CAS sunucu FQDN yerine, yani cas.cozumpark.local yerine sadece CAS ismini de eklemeniz gerekmektedir.
Sertifikada yer alacak şirket bilgileriniz.
Bu bölümde ise sertifika isteğini nereye kayıt edeceğimizi seçiyoruz. Ben bir dosya paylaştırdım bu iş için.
Hemen istek dosyasını note defteri ile açıp içeriğini kopyalıyoruz.
Ardından Sertifika almak için CA’ ın web ara yüzüne bağlanıyoruz.
“Request a certificate” linkine tıklıyoruz.
Advanced linki ile devam ediyoruz.
Submit a certificate linkine tıklıyoruz.
Sertifika istek dosyasının içeriğini yapıştırıyorum.
Sertifika şablonu olarak ise “Web Server” seçiyorum ve istekte bulunuyorum.
Ardından sertifikayı indiriyorum.
Ben aynı dizine kayıt ettim. Şimdi tekrar EAC’ a dönüyorum.
Sertifikanın üzerine tıklıyorum.
Hemen sağ bölümde “Complete” linki çıkıyor ve ona tıklıyorum.
Sertifikanın yolunu yazıyor ve işlemi tamamlıyorum.
Artık yeni aldığım sertifika da “Valid” durumunda.
Son olarak ise bu sertifikayı IIS için kullanılacak şekilde ayarlayalım. ( İsterseniz SMTP ve benzeri servisler içinde kullanabilirsiniz. )
Bunun için sertifika seçili iken üst menüdeki “kalem – edit” linkine tıklıyoruz. Veya sertifika üzerine çift tıklayabiliriz.
Servisler bölümünden “IIS” i seçiyorum ve onaylıyorum.
Şimdi bu yeni isim ile erişimi deniyorum, sertifika hatası almıyor olmam lazım.
6 – Exchange Virtual Directory Ayarlarını Düzenliyoruz.
Gelelim Virtual Directory’ lerin düzenlenmesine.
Burada ihtiyaç doğrultusunda bir takım ayarları değiştirebiliriz.
Örneğin OWA tarafında domain ismi istenmemesi ve external URL adresi gibi.
Öncelikle External URL adresi tanımlayalım.
Ek olarak kimlik doğrulama tarafında domain ayarını yapıyorum.
Bu değişikliklerden sonra IISRESET yapmayı unutmayın lütfen.
Veya aşağıdaki gibi toplu olarak bu işlemler için powershell kullanabilirsiniz.
Get-OutlookAnywhere | Set-OutlookAnywhere -ExternalHostname mail.cozumpark.com -InternalHostname mail.cozumpark.com -ExternalClientsRequireSsl $true -InternalClientsRequireSsl $true -DefaultAuthenticationMethod NTLM
Get-OwaVirtualDirectory | Set-OwaVirtualDirectory -ExternalUrl https://mail.cozumpark.com/owa -InternalUrl https://mail.cozumpark.com/owa
Get-EcpVirtualDirectory | Set-EcpVirtualDirectory -ExternalUrl https://mail.cozumpark.com/ecp -InternalUrl https://mail.cozumpark.com/ecp
Get-ActiveSyncVirtualDirectory | Set-ActiveSyncVirtualDirectory -ExternalUrl https://mail.cozumpark.com/Microsoft-Server-ActiveSync -InternalUrl https://mail.cozumpark.com/Microsoft-Server-ActiveSync
Get-WebServicesVirtualDirectory | Set-WebServicesVirtualDirectory -ExternalUrl https://mail.cozumpark.com/EWS/Exchange.asmx -InternalUrl https://mail.cozumpark.com/EWS/Exchange.asmx
Get-OabVirtualDirectory | Set-OabVirtualDirectory -ExternalUrl https://mail.cozumpark.com/OAB -InternalUrl https://mail.cozumpark.com/OAB
Get-ClientAccessServer | Set-ClientAccessServer -AutoDiscoverServiceInternalUri https://mail.cozumpark.com/Autodiscover/Autodiscover.xml
Not: lütfen sunucu ve domain isimlerini kendi yapınıza göre değiştirin.
Not: Ben internal URL olarakta External Adresi kullandım, ancak siz yapınıza göre en uygun adresi örneğin CAS sunucu isimlerini yazabilirsiniz.
Bu değişiklikler ile birlikte artık dış dış dünya üzerinden gelen istekleri Exchange Server 2013 karşılamaya hazırdır.
Mesai saatleri dışında 443 nolu isteği Exchange Server 2010 CAS sunucusu üzerinden Exchange Server 2013 CAS sunucusuna yönlendirebilirsiniz.
Bu yönlendirme sonrasında Exchange Server 2010 kullanıcıları yeni OWA ekranından giriş yapacak, ancak logon işleminden sonra şirket içerisine yönlendirilecektirler. Exchange 2013 ortamına taşıdıklarınız ise yeni nesil owa ile çalışmaya başlayacaklardır.
7 – Offline Address Book Ayarlarını Yapıyoruz.
Şimdi ise sıra Offline Address Book konusuna geldi.
Kurulum ile gelen OAB sayesinde şu anda ortamda iki adet OAB bulunmaktadır. Exchange Server 2013 ile beraber OAB yapısı değişti. Çalışma mantığı dışında ek olarak EAC üzerinden yönetme şansınızda yok. Yani sadece powershell ile OAB yi yönetebiliyoruz.
Öncelikle var olan OAB leri listeleyelim.
Get-OfflineAddressBook
Gördüğünüz gibi iki adet OAB bulunmaktadır.
Exchange Server 2010 üzerinde OAB generation server’ ı ara yüzden aşağıdaki gibi görebiliyorduk.
Ancak Exchange Server 2013 için aşağıdaki gibi bir powershell kullanıyor olmamız gerekmektedir.
Get-Mailbox –Arbitration | where {$_.PersistedCapabilities –like “*oab*”} | ft name,servername
Gördüğünüz gibi e2013 bu konudan sorumludur.
Eğer ortamda DAG var ise bu durumda bu işlem iki adımda gerçekleşir.
Get-Mailbox -Arbitration | where {$_.PersistedCapabilities -like “*oab*”} | ft name,database
Burada dikkat ederseniz server ismi yerine database ismini alıyoruz.
Ardından bu database’ in aktif koypası hangi sunucu üzerinde onu kontrol ediyoruz.
Get-MailboxDatabaseCopyStatus “Mailbox Database 1121329326”
Buradan da “E2013” isimli sonucu üzerinde mounted olduğunu görebiliyoruz. Yani sorumlu sunucu “E2013” isimli sunucudur.
Hali hazırda bu yeni OAB varsayılan OAB olarak atanır ki bunu E2010 konsolundan da görebiliriz.
Ancak tabiki buradan yönetim söz konusu değildir.
Bu konuda daha fazla bilgi için aşağıdaki makaleyi inceleyebilirsiniz.
Peki, OAB noktasında ne yapmalıyız.
Ortama yeni bir OAB eklemeniz mevcut yapıyı değiştirmez. Çünkü kullanıcı posta kutularının bulunduğu veri tabanı ayarlarında hangi OAB tanımlı ise ona erişmeye devam edeceklerdir.
Kullanıcılar move işlemi ile E2013 mailbox veri tabanlarına taşındıkça ise yeni OAB sunucularına erişim gösterecektir.
Peki, OAB tarafının sorunsuz bir şekilde çalıştığını gördükten sonra bir sonraki adıma geçebiliriz.
8 – Internet mail trafiğini Exchange 2010 dan 2013 e aktarıyoruz.
Bu adımda ise mail akışını Exchange Server 2013 üzerine aktaracağız.
Exchange Server 2013 üzerinde bildiğiniz gibi artık HUB transport rolü yoktur. Yani mimari artık 5 rolden aynı eskisi gibi tekrar 2 role düştü.
Eskiden
HUB
CAS
UM
EDGE
MBX
Varken artık sadece
CAS
MBX
Rolleri var, bu nedenle ortadan yok olan HUB yani SMTP trafiğini artık MBX yönetiyor.
Bu konudaki mimari değişiklikleri ve Exchange Server 2013 ile beraber gelen yeniliklerin tamamı için aşağıdaki makale ve videoyu izleyebilirsiniz.
Bu yeni mimaride aşağıdaki gibi 3 temel servis bulunmaktadır.
Front End Transport service – CAS üzerinde
Transport service – Mailbox üzerinde
Mailbox Transport service – Mailbox üzerinde
Front End Transport service
Tüm CAS sunucularının üzerinde çalışmaktadır. Temel görevi inbound ve outbound SMTP trafiğini yönlendirmektir. Mesaj içeriği noktasında herhangi bir filtreleme yapmıyor olmak ile beraber connection, domain, senders ve recipients gibi filtrelemeler yapabilmektedir. Bu servis sadece mailbox server üzerindeki Transport Service ile iletişim kurmaktadır ve hiç bir mesajı kendi üzerinde kuyruklamaz.
Transport service
Tüm mailbox sunucularının üzerinde çalışan ve bir önceki sürümde Hub trasnport sunucu rölüne karşılık gelen bir servistir. Organizasyondaki tüm mail akışını yönetmektedir (message categorization, message content inspection ). Ancak bir önceki versiyonda olduğu gibi direkt olarak mailbox veri tabanları ile iletişim kurmaz. Bu görevi Mailbox Trasnpost servis üstlenmektedir. Transport servis Mailbox Transport servis ile Front End Transport servis arasında mesaj iletimini gerçekleştirir.
Mailbox Transport service
Tüm mailbox sunucularında çalışan bu servis aslınta temel iki bileşenden oluşmaktadır, bunlar Mailbox Transport Submission servis ile Mailbox Transport Delivery servis’ dir. Mailbox Transport Delivery servisi, local mailbox server üzerindeki transport servisinden veya diğer bir mailbox server üzerindeki transport servisinden aldığı SMTP mesajlarını RPC üzerinden local mailbox veri tabanlarına ulaştırmaktadır.
Mailbox Transport Submission servisi ise, RPC ile local mailbox veri tabanlarına bağlanarak buradan aldığı mesajları local veya başka bir mailbox server’ ın transport servisine iletir.
Mailbox Transport serviside aynı Front End Transport servisi gibi üzerinde mesajları kuyruklamaz.
Şirket dışından gelen bir mesaj transport pipeline olarak isimlendirdiğimiz yukarıdaki mimariye ulaşır. Front End Transport servisi CAS üzerindeki receive connector sayesinde maili alır ve hemen mailbox server üzerindeki transport servisine yönlendirir.
Evet, mail akışı tarafındaki bu bilgilendirmenin ardından mail akışını Exchange Server 2013 üzerine yönlendirmeye başlayalım.
İlk olarak Exchange Server 2013 üzerinde bir mailbox veri tabanı ve ardından bunun içine birkaç tane yeni kullanıcı açalım.
Daha sonra bu kullanıcılar ile mevcut Exchange organizasyonunuzdaki kullanıcıların mail alıp almadıklarını kontrol edelim. Yani Exchange Server 2010 ile 2013 arasında mail akışında bir sorun olmaması gerekmektedir.
Hasan Uzuner Exchange Server 2013 üzerindeki bir kullanıcı Hakan Uzuner kullanıcısına yani Exchange Server 2010 üzerindeki bir kullanıcıya mail atıp alacak.
Hakan kullanıcısı sorunsuz bir şekilde maili aldı.
Eğer bu testler sorunsuz bir şekilde gerçekleşir ise bu durumda dış dünyadan gelen mail isteklerini Exchange 2013 CAS sunucusuna yönlendirebilirsiniz. Bunun için 25 ve 587 nolu portları Exchange Server 2010 HUB yerine Exchange 2013 CAS’ a yönlendirin.
Not; Dış dünyadan mail almaya hazırsınız ancak mail göndermek için yeni bir send connector tanımlaması yapmanız gerekmektedir.
Bir sonraki adımımız ise yine yukarıda paylaştığımız gibi Send Connector oluşturmak.
Mail flow bölümünden send connectors linkine tıklıyoruz ve buradan yeni bir end connector oluşturuyoruz.
Connector için bir isim veriyoruz, ardından aşağıdaki güvenlik şablonlarından birini seçiyoruz. Bu seçim aslında hazır birkaç güvenlik ayarının uygulanmasını sağlıyor, ancak siz isterseniz sonra bu ayarları değiştirebilirsiniz.
Ben internete mail atmak için oluşturduğumdan dolayı “Internet” şablonunu seçiyorum.
Mailleri kendi ip adresimizden mi yoksa bir smart host ile mi göndereceğimize karar veriyoruz. Eğer bir ISP üzerinden gönderiyorsanız Smart host tanımını buradan yapabilirsiniz.
Bu connector’ u hangi domainler için kullanacağımızı seçiyoruz. Tüm domainleri temsilen “*” giriyorum.
Bu connector ile hangi sunucuların mail atabileceğine karar veriyoruz.
Böylece send connector tanımını yapmış olduk.
9 – Posta kutularını Exchange Server 2013’ e taşıyoruz.
Evet, bir adımı daha tamamladık, şimdi sıra geldi eski posta kutularını yeni sisteme taşımaya.
Temel olarak Exchange Server 2013 üzerinde 3 temel posta kutusu taşıma mantığı vardır.
Local: Tek bir forest içerisinde posta kutusu taşıma
Cross-Forest: Farklı Exchange Forest ları arasında posta kutusu taşıma
Remote: On-Premises yani local Exchange Server ile Online arasında kullanıcı taşıma
Biz tabiki local taşıma yapacağız.
Bu taşıma için sınırları aşağıdaki yolu takip ederek görebilirsiniz.
<Exchange Installation Path>\Program Files\Microsoft\Exchange Server\V15\Bin\MSExchangeMailboxReplication.exe.config
Exchange Server tarafında posta kutularını taşımak için pek çok sebep vardır.
1 – Upgrade; Aynı bizde olduğu gibi eski bir sürümden yeni bir sürüme geçiş için.
2 – Realignment; Bir posta kutusunu bir mailbox veri tabanından limitleri daha yüksek bir mailbox veri tabanına taşıyarak kotasını değiştirmek için.
3 – Investigate an issue; Eğer bir posta kutusu üzerinde araştırma yapmak istiyorsanız bu posta kutusunu başka bir mail server üzerine taşıyabilirsiniz.
4 – Corrupted mailboxes; Bozulmuş posta kutularının düzenlenmesi için kullanılabilir.
5 – Physical location changes; Bir çalışanın şirketin farklı bir şubesine gitmesi sonucu posta kutusunu o site için hizmet veren mailbox sunucusuna taşıyabilirsiniz.
Bunun gibi örnekleri çoğaltmak mümkün. Bizim amacımız yükseltme işlemi için bir taşıma işlemi olacaktır.
Şimdi yukarıda kullandığımız posta kutularından yola çıkarak örneğin “hakan” kullanıcısını Exchange 2013 sistemine taşıyalım.
Taşımadan önce dikkat etmeniz gereken önemli bir konu kotalardır. Eğer mevcut kullanıcı posta kutusu boyutu hedef mailbox veri tabanı limitlerinden yüksek ise hata alacaksınız. Bu nedenle öncelikle taşıma işleminden önce Exchange Server 2013 üzerindeki mailbox database varsayılan limitlerini kontrol edin.
Eğer bu değerler mevcut şirket organizasyonunuz için yeterli değil ise bunları arttırdıktan sonra taşıma işlemine başlayabilirsiniz.
Eğer birden çok mailbox database var ise bu durumda tek bir poweshell komutu ile de bunu yapabilirsiniz.
Kota değişikliği sonrasında aşağıdaki gibi bir kullanıcı için deneme yapabiliriz.
Serkan isimli kullanıcı posta kutusu şu anda Exchange Server 2010 sunucu üzerinde “DB1” isimli posta kutusu veri tabanındadır. Bunu taşımak için EAC üzerinde kullanıcıyı seçip sağ menüden en alttaki “To another database” linkine tıklıyorum.
Taşıma işlemi için bir isim tanımlıyorum. Hemen alt bölümde ise;
1 – Kullanıcı posta kutusu ve varsa arşiv posta kutusunu taşımak için bu seçeneği kullanıyoruz.
2 – Kullanıcının sadece posta kutusunu taşımak istiyoruz, ancak arşiv posta kutusunu taşımak istemiyorsak bu bölümü kullanıyoruz.
3 – Kullanıcının sadece arşiv posta kutusunu taşımak için bu bölümü kullanıyoruz.
Hemen altında posta kutusu ve arşiv posta kutusu için hedef bir mailbox database seçiyoruz. Ben Exchange Server 2013 üzerinde ki E2013DB1 isimli veri tabanını seçtim.
En alt bölümde ise taşınacak olan posta kutusu içerisinde kaç tane bozuk öğe bulunur ise taşıma işlemi kesilmeden devam edecektir. Örneğin buraya 30 yazarsanız 30 öğeye kadar bozukluklar görmezden gelip 31. Öğeye denk geldiğinizde taşıma iptal edilecektir.
Burada maksimum 50 yazabiliyoruz, eğer sorunlu bir posta kutusunu taşıyorsanız ve daha fazla bozuk öğe var ise bu durumda powershell kullanıyoruz.
New-MoveRequest -Identity ‘[email protected]’ –TargetDatabase “E2013DB1” –BadItemLimit 10000 –AcceptLargeDataLoss
Taşıma işlemi bittikten sonra “Administrator” kullanıcısına konu ile ilgili bir bilgi maili gönderilecektir.
Ayrıca sürecin otomatik olarak başlamasınıda işaretledim, istersem bu işlemleri tanımlar daha sonra başlatabilirim.
En alt bölümdeki kutucukta ise, yine başlayan taşıma işlemi bittikten sonra bunun onaylanması gerekmektedir, bununda otomatik olarak gerçekleşmesini istedim.
Detay görmek istiyorsanız bu soruya evet diyerek taşıma ekranın otomatik açılmasını sağlayabilirsiniz.
Hemen bunun sonrasında aşağıdaki gibi alert bölümünde bir uyarı gelecektir.
Peki bu taşıma işleminin detayını görmek için ne yapabiliriz?
Bunun için yukarudak taşıma ekranında “SerkanTasima” bölümüne tıkladıktan sonra sağ bölümde detay sayfasını göreceğiz.
Bu linke tıklayalım.
Bu bölümde eşitlenen öğe sayısı, görmezden gelinen öğe sayısını görebiliyoruz. Yine isterseniz sağ menüden bu işlem için “Download the report for this user” diyerek detay rapor alabilirsiniz.
Gördüğünüz gibi adım adım taşıma işlemini takip edebiliyorsunuz.
İsterseniz bunu powershell komutu ile de başlatabilir ve benzer şekilde takip edebilirsiniz.
Taşıma komutu
New-MoveRequest -Identity ‘[email protected]’ –TargetDatabase “E2013DB1” –BadItemLimit 10000 –AcceptLargeDataLoss
Gördüğünüz gibi işlemi ilk olarak kuyruğa aldı.
Bu arada komut setindeki BadItemLimit ve Accept bölümleri şart değildir, komutun sade hali aşağıdaki gibidir
New-MoveRequest -Identity ‘[email protected]’ –TargetDatabase “E2013DB1”
İzlemek için
Get-MoveRequestStatistics -Identity [email protected]
Bu sayede iki kullanıcıyı da taşımış olduk. En son administrator kullanıcısı var onuda taşıyalım.
Son durum aşağıdaki gibidir.
Tüm kullanıcıları Exchange 2013 ortamına taşıdık. Şimdi ilk olarak outlook üzerinden adres defterlerinin çalıştığını kontrol edelim.
Outlook programını açtıktan sonra ctrl tuşuna basılı iken mouse ile outlook ikonuna sağ tıklayınız.
Buradan connections status bölümüne tıklayınız.
Gördüğünüz gibi tüm bağlantılar artık E2013 CAS sunucusu üzerinden gerçekleşmektedir. Ancak dikkatinizi çekti ise eğer tek bir bağlantı Exchange 2013 CAS üzerinden Exchange 2010 Mailbox sunucusuna bağlanıyor. Bunun sebebi Public Folder’ dır.
Bu sayede kullanıcı taşıma işlemini tamamlamış olduk.
Eğer toplu taşıma yapmak istiyorsanız bunun için EAC üzerinde “recipients – migration” linkine tıklayınız.
Move to a different database linkine tıklıyoruz.
İstediğimiz kullanıcıları buradan seçebileceğimiz gibi CSV formatında hazırlanmış bir dosyada kullanabiliriz.
Bu dosya içeriği ise aşağıdaki şekilde olmalıdır.
3 Tane kullanıcı seçiyorum.
Bu bölümden sonra ise yukarıda gördüğünüz gibi süreç benzer şekilde başlamaktadır.
Takip etmek için ise aşağıdaki gibi mailbox database bazında izleyebilirsiniz.
Get-MoveRequestStatistics –MoveRequestQueue “E2013DB1”
CSV dosyası ile taşıma işlemini ara yüz yerine powershell ile yapmak isterseniz aşağıdaki komutu kullanabilirsiniz.
New-MigrationBatch -Local -Name LocalMove1 –CSVData ([System.IO.File]::ReadAllBytes(“C:\Users\Administrator\Desktop\LocalMove1.csv”)) –TargetDatabases MBXDB2 –TimeZone “Pacific Standard Time”
Oluşturmuş olduğumuz bu taşıma işini başlatmak için
Start-MigrationBatch -Identity LocalMove1
İzlemek için
Get-MigrationUserStatistics -Identity BatchName –Status | Format-List
Yine komut setlerini kullanmak istiyorsanız aşağıdaki örneklerden yararlanabilirsiniz.
New-MoveRequest -Identity ‘[email protected]’ –PrimaryOnly –TargetDatabase “E2013DB1”
Sadece kullanıcı posta kutusunu taşımak için yukarıdaki komutu kullanabilirsiniz.
Kontrol etmek için
Get-MigrationUserStatistics -Identity BatchName –Status | Format-List
Sadece arşiv posta kutusunu taşımak için ise aşağıdaki komutu kullanabilirsiniz.
New-MoveRequest -Identity ‘[email protected]’ –ArchiveOnly –ArchiveTargetDatabase “E2013DBARCH1”
Takip etmek için
Get-MigrationUserStatistics -Identity BatchName –Status | Format-List
Kullanıcının hem arşiv hem de posta kutusunu birlikte taşımak için
New-MoveRequest -Identity ‘[email protected]’ –TargetDatabase E2013DB1 –ArchiveTargetDatabase –E2013DBARCH1
Takip etmek için
Get-MigrationUserStatistics -Identity BatchName –Status | Format-List
10 – Public Folder Taşıma İşlemini Gerçekleştiriyoruz.
Bu aşamada mevcut sistemimiz üzerindeki Public Folder’ mimarisini yeni sunucumuz üzerine taşıyacağız.
Ancak Public folder tarafında mimari yenilikler yapıldığı için bu taşıma işlemi 2003 – 2007 veya 2010 dan biraz farklı olmaktadır.
Eski sürüm olarak sadece aşağıdaki sürümler desteklenmektedir.
Exchange Server 2010 SP3
Exchange Server 2007 SP3 RU10
Bu taşıma işlemi için “PublicFolderMigrationRequest” komut setini kullanacağız. Taşıma işleminden sorumlu olan servis ise “Microsoft Exchange Mailbox Replication” servisidir.
Buna ek olarak hazır aşağıdaki komut setlerini kullanacağız.
Export-PublicFolderStatistics.ps1 – Bu komut seti klasör isimleri ile klasör boyutlarını eşleştiren bir dosya oluşturur.
Export-PublicFolderStatistics.psd1 – Bu yukarıdaki komut seti tarafından kullanılan bir destek dosyası olduğu için aynı dizinde bulunmalıdır.
PublicFolderToMailboxMapGenerator.ps1 – Bu komut seti public folder ile mailbox eşleşmesini sağlayan bir dosya oluşturur.
PublicFolderToMailboxMapGenerator.strings.psd1 – Bu da benzer şekilde bir yukarıdaki komut seti için kullanılan destek dosyasıdır. Aynı dizinde bulunmalıdır.
Bu komutları aşağıdaki linkten indirebilirsiniz.
http://www.microsoft.com/en-us/download/details.aspx?id=38407
Geçiş işlemine bağlayalım.
İlk olarak mevcut durum bilgilerini bir kayıt etmek ile başlıyoruz.
Bu komutları Exchange Server 2010 üzerinde koşturuyoruz.
Bu komut seti ile kaynak dosya mimarisini kayıt ediyoruz.(Not: PFMigration klasörünü oluşturmanız gerekmektedir)
Get-PublicFolder –Recurse | Export-CliXML C:\PFMigration\Legacy_PFStructure.xml
Bu komut ile ise Public Folder istatistikleriniz alıyoruz. ( öğelerin sayısı, boyutu, sahibi ve benzeri bilgiler)
Get-PublicFolderStatistics | Export-CliXML C:\PFMigration\Legacy_PFStatistics.xml
Bu komut seti ile ise izin bilgileri ( permission ) kaydediyoruz.
Get-PublicFolder –Recurse | Get-PublicFolderClientPermission | Select-Object Identity,User –ExpandProperty AccessRights | Export-CliXML C:\PFMigration\Legacy_PFPerms.xml
Peki temel durum hakkındaki bilgileri kayıt ettik ise şimdi bir sonraki aşamaya geçelim.
Eğer sahip olduğunuz Public Folder yapısında “\” işaretini isim olarak içeren bir public folder var ise bunu mutlaka değiştirmek gerekli. Muhtemel yoktur ancak olup olmadığını kontrol etmek için aşağıdaki komutu kullanabilirsiniz.
Get-PublicFolderStatistics –ResultSize Unlimited | Where {$_.Name –like “*\*”} | Format-List Name, Identity
Bende böyle bir public folder yok. Olanlar aşağıdaki gibi zaten.
Exchange Server 2007 için ise komut aşağıdaki gibidir
Get-PublicFolderDatabase | ForEach {Get-PublicFolderStatistics -Server $_.Server | Where {$_.Name –like “*\*”}}
Eğer sizde bu komutların sonucunda eğer herhangi bir public folder çıkarsa bu public folder ismini aşağıdaki komut seti ile mutlaka değiştirmeniz gerekmektedir.
Set-PublicFolder -Identity <public folder identity> -Name <new public folder name>
Bir sonraki aşamaya geçiyoruz.
Şimdi mevcut bir taşıma işi var mı onu kontrol ediyoruz.
Get-OrganizationConfig | Format-List PublicFoldersLockedforMigration, PublicFolderMigrationComplete
Eğer bunlar True olarak çıkarsa aşağıdaki komut ile “false” olarak değiştiriyoruz.
Set-OrganizationConfig –PublicFoldersLockedforMigration:$false –PublicFolderMigrationComplete:$false
Bu komut sonrası değişikliğin Exchange tarafından fark edilmesi için biraz zaman geçmesi gerekmektedir.
Şimdi ise taşıma kısmının Exchange Server 2013 bölümüne bakalım.
Exchange Server 2013 kısmında herhangi bir publc folder migration isteği olmamalıdır.
Exchange Server 2013 üzerinde,
Get-PublicFolderMigrationRequest
Eğer var ise aşağıdaki komut ile bunu temizleyebiliriz.
Get-PublicFolderMigrationRequest | Remove-PublicFolderMigrationRequest –Confirm:$false
Benzer şekilde Exchange 2013 üzerinde herhangi bir Public Folder veya Poblic Folder Mailbox olmamalı.
Get-Mailbox -PublicFolder
Get-PublicFolder
Public Folder mailbox olmadığı için zaten public folder olamaz.
Eğer herhangi bir sonuç döner ise aşağıdaki komut setini kullanıyoruz.
Get-MailPublicFolder | where $_.EntryId -ne $null | Disable-MailPublicFolder –Confirm:$false
Get-PublicFolder –GetChildren \ | Remove-PublicFolder –Recurse –Confirm:$false
Get-Mailbox –PublicFolder |Remove-Mailbox –PublicFolder –Confirm:$false
Bu komutlar mevcut public folder ve public folder mailbox ları silecektir.
Gelelim indirdiğimiz komutları kullanmaya.
Exchange Server 2010 üzerinde ilk olarak aşağıdaki komut seti ile bir çıktı alıyoruz.
.\Export-PublicFolderStatistics.ps1 <Folder to size map path> <FQDN of source server>
Ben aşağıdaki şekilde bu komutu çalıştırıyorum.
.\Export-PublicFolderStatistics.ps1 c:\PFMigration\folder-to-size.csv e2010.cozumpark.local
Şimdi bir sonraki komutu çalıştırıyoruz:
.\PublicFolderToMailboxMapGenerator.ps1 <Maximum mailbox size in bytes> <Folder to size map path> <Folder to mailbox map path>
<Maximum mailbox size in bytes> – Maksimum posta kutusu boyutu
<Folder to size map path> – Bir önceki komut ile hazırlamış olduğumuz filder size map csv dosyasının yolu.
<Folder to mailbox map path> – Yeni oluşturacağımız csv dosyası için bir yol.
.\PublicFolderToMailboxMapGenerator.ps1 20000000 c:\PFMigration\folder-to-size.csv c:\PFMigration\folder-to-mailbox.csv
Şimdi ise sıra Exchange 2013 tarafında çalışmaya geldi. İlk olarak yeni bir public folder mailbox açıyoruz.
New-Mailbox –PublicFolder <Name> –HoldForMigration:$true
Buradaki PublicFolder ismi mutlaka yukarıdaki map dosyasındaki mailbox ismi ile aynı olmalıdır. Yani Mailbox1
New-Mailbox –PublicFolder Mailbox1 –HoldForMigration:$true
Burada “HoldForMigration” parametresi sayesinde bu komut başarı ile çalışmaktadır. Aksi halde Exchange 2010 yapısındaki public folder varken bu parametre olmadan bir public folder mailbox açamıyoruz.
Eğer sizin map dosyanızda daha fazla mailbox var ise örneğin 16 tane mailbox olması durumunda sizinde 16 tane public folder mailbox açmanız gerekmektedir. Böyle bir durum karşısında aşağıdaki komut setini kullanabilirsiniz.
$numberOfMailboxes = 16;
for($index =1 ; $index -le $numberOfMailboxes ; $index++)
{
$PFMailboxName = “Mailbox”+$index; if($index –eq 1) {New-Mailbox –PublicFolder $PFMailboxName –HoldForMigration:$true -IsExcludedFromServingHiearchy:$true;}else{NewMailbox-PublicFolder $PFMailboxName –IsExcludedFromServingHierarchy:$true}
}
Bu işlemden sonra ise public folder migration işlemini başlatabiliriz.
New-PublicFolderMigrationRequest –SourceDatabase (Get-PublicFolderDatabase -Server <Source server name>) –CSVData (Get-Content <Folder to mailbox map path> –Encoding Byte)
Benim komutum
New-PublicFolderMigrationRequest –SourceDatabase (Get-PublicFolderDatabase -Server e2010.cozumpark.local) –CSVData (Get-Content c:\folder-to-mailbox.csv –Encoding Byte)
Şu anda gördüğünüz gibi bu iş kuyruklanmıştır.
Süreci takip etmek için
Get-PublicFolderMigrationRequest | Get-PublicFolderMigrationRequestStatistics –IncludeReport | Format-List
Bu sayede detaylı rapor alabiliyorum.
Burada kontrol edeceğimiz yer “status” bölümüdür.
Peki, bu süreç ne kadar zaman alır? Aslında bu tamamen sizin mevcut public folder yapınızdaki klasör boyutları ile ilgilidir. Ortalama ise saatte 2 ila 3 GB lık bir veri kopyalaması gerçekleşmektedir. Buna göre referans alabilirsiniz.
Eğer yukarıda olduğu gibi durum kısmında “Queued veya InProgress” yerine “AutoSuspended” görüyorsanız artık bir sonraki adıma geçme zamanının geldiğini anlıyoruz.
Burada da önemli bir nokta vardır. Eğer siz bu süreci çok yakından takip etmediniz ve tam olarak bu sürecin ne zaman AutoSuspended olduğunu bilmeden bir sonraki adıma geçerseniz kesinti süresini arttırırsınız. Bu nedenle size tavsiyem, bu süreci başlatın, ardından bir sonraki adım olan (Set-OrganizationConfig –PublicFoldersLockedForMigration:$true) komut setine geçmeden aşağıdaki komutu bir kez koşturun.
Resume-PublicFolderMigrationRequest \PublicFolderMigration
Bu sayede varsa son güncellemelerde alınacaktır. Bunu mesai sonrası yapmanız daha mantıklı olacaktır.
Peki, yukarıdaki komutu da çalıştırdık ancak değişen bir şey yok. Artık bir sonraki adıma geçebiliriz.
Bu noktaya kadar istemci makineler public folder erişimine sahiptir, ancak aşağıdaki kodu çalıştırdığımız anda artık erişim imkânları olmayacaktır. Bu nedenle aşağıdaki kodu artık yukarıdaki izleme işleminde sona geldiğimiz anda çalıştırmak gereklidir. ( Autosuspended)
Yani public replikasyonu sonuna geldiğinde bir akşam aşağıdaki komutu çalıştırıyoruz ve eski sunucu üzerinde artık public folder için yeni verilerin yazılmasını engelliyoruz. Hatta mail enable bir public folde’ a mail atıldığında bile ulaşmayacaktır. Ancak bu mail kuyrukta bekleyeceği için süreç tamamlandıktan sonra yerine ulaşacaktır.
Örneğin aşağıdaki komutu çalıştırdıktan bir süre sonra Outlook veya OWA üzerinden public folder erişimleri engellenecektir.
Bu komutu Exchange Server 2010 üzerinde çalıştırıyoruz.
Set-OrganizationConfig –PublicFoldersLockedForMigration:$true
Eğer organizasyon içerisinde birden çok public folder var ise bu komutun tüm sync işlemi için bir süre beklememiz gerekmektedir. Tabiki bu replikasyon da yapınıza göre birkaç saat sürebilir.
Daha sonra ise aşağıdaki komutu çalıştırıyoruz. (Exchange 2013 üzerinde)
Set-PublicFolderMigrationRequest -Identity \PublicFolderMigration –PreventCompletion:$false
Resume-PublicFolderMigrationRequest -Identity \PublicFolderMigration
Sonucu aşağıdaki gibi EAC üzerinden görebiliyoruz.
Hemen Outlook tarafından kontrol edelim.
Baktığımız zaman artık bağlantılarda public folder için Exchange 2010 bağlantısı görmüyoruz.
Aşağıdaki komut ile tüm kullanıcılar için kilitlediğimiz public folderları tekrar açıyoruz.(Exchange 2013 üzerinde)
Get-Mailbox –PublicFolder | Set-Mailbox –PublicFolder –IsExcludedFromServingHierarchy $false
Son olarak ise Exchange Server 2010 üzerinde aşağıdaki komutu çalıştırarak taşıma işleminin bittiğini bildiriyoruz.
Set-OrganizationConfig –PublicFolderMigrationComplete:$true
Peki taşıma işlemi bitti ama acaba doğru mu taşındı noktasında aklınızda bir soru işareti var ise aşağıdaki komut setleri yardımı ile doğrulayabilirsiniz.
Get-PublicFolder –Recurse | Export-CliXML
C:\PFMigration\New_PFStructure.xml
Bu komut folder mimarisini gösteriyor ki benim eski mimarim ile aynı.
Get-PublicFolderStatistics | Export-CliXML
C:\PFMigration\New_PFStatistics.xml
Bu komut ise dosyaların içerisindeki öğelerin sayılarını alabiliyoruz. Bunlarda da bir eksiklik yok.
Get-PublicFolder –Recurse | Get-PublicFolderClientPermission | Select-Object Identity,User –ExpandProperty AccessRights | Export-CliXML
C:\PFMigration\New_PFPerms.xml
Bu komut ile de izinleri listeliyoruz.
Evet, sağlamayı da yaptık isek artık eski public folder mailbox database ini silebiliriz.
Eğer herhangi bir sebep ile sorun yaşarsanız aşağıdaki komut setleri ile sistemi tekrar eski haline getirebilirsiniz.
Exchange Server 2010 Üzerinde
Set-OrganizationConfig –PublicFoldersLockedForMigration:$False
Exchange Server 2013 Üzerinde
Get-Mailbox –PublicFolder | Where{$_.IsRootPublicFolderMailbox –eq $false} | Remove-Mailbox –PublicFolder -Force –Confirm:$false
Get-Mailbox –PublicFolder | Remove-Mailbox –PublicFolder -Force –Confirm:$false
Public Folder Mailbox Database’ i silmek için öncelikle içerisindeki Public Folder ları silmemiz gerekmektedir.
EMC üzerinden “Toolbox” bölümüne ve oradan da Public Folder yönetim ekranına geliyoruz.
“Default Public Folders” altındaki Public folderları kaldırıyoruz.
Daha sonra ise Public Folder Mailbox Database’ ini silebiliriz.
PF DB silindi ancak edb dosyasını ve log dosyalarını elle silmemiz gerekmektedir.
Bu klasörü silebiliriz.
11 – Exchange Server 2013 için gerekli olan kurulum sonrası adımları yapıyoruz.
Bu adımda aslında temel bir takım ayarları yapmamız gerekiyor ancak ben bunların bir kısmını yaptığım ve bir kısmıda diğer makalelerde detaylandırıldığı için sadece geçiş sonrası kontrol listesi olarak paylaşıyorum
Create a Send connector – Bu makale içerisinde paylaştım.
Add additional accepted domains – ÇözümPark Üzerindeki Makalelerde Detaylandırılmıştır.
Configure the default email address Policy – ÇözümPark Üzerindeki Makalelerde Detaylandırılmıştır.
Configure external URLs – Bu makale içerisinde paylaştım.
Configure internal URLs – Bu makale içerisinde paylaştım.
Configure an SSL certificate – Bu makale içerisinde paylaştım.
11 – Exchange Server 2010’ ın kaldırılması.
Bu aşamaya kadar sistem sorunsuz bir şekilde çalışıyor ise eğer, artık Exchange Server 2010’ u ortamdan kaldırabiliriz.
Ancak öncelikle eski sistem üzerinde hiç posta kutusu olmaması gerekmektedir. Aksi halde zaten mailbox veri tabanlarını kaldıramayız.
Yine Public folder içinde benzer durum söz konusu olmak ile beraber ben hali hazırda bu makalemin public folder geçiş bölümünde kaldırma kısmını tamamlamıştım. Yani bu aşamada sadece mailbox database bulunmaktadır.
Var olan arşiv ve Arbitration mailboxları aşağıdaki komutlar ile görebiliriz.
Get-Mailbox –Archive
Get-Mailbox –Arbitration
Database isimlerini tam almak için aşağıdaki gibi komutu çalıştırabiliriz.
Get-Mailbox -Archive | fl name,database
Get-Mailbox –Arbitration | fl name,database,servername
Mevcut Arbitration posta kutularını Exchange Server 2013 sistemine taşıyoruz. Bunun için aşağıdaki komutu Exchange Server 2013 üzerinde çalıştırıyoruz.
Get-Mailbox -Database “Mailbox-Database” –Arbitration | New-MoveRequest –TargetDatabase “Mailbox Database 1545243106“
Mailbox-Database = Bu bölüme yukarıdaki Exchange 2010 üzerindeki Arbitration posta kutularını tutan mailbox veri tabanının ismidir. (Mailbox Database 0065449345)
Mailbox Database 1545243106 = Exchange Server 2013 üzerinde Arbitration posta kutularını tutan mailbox veri tabanı ismi. İsterseniz E2013 üzerindeki başka bir veri tabanını da yazabilirsiniz.
Get-Mailbox -Database ” Mailbox Database 0065449345” –Arbitration | New-MoveRequest –TargetDatabase “Mailbox Database 1545243106”
Get-MoveRequest komutu ile de kontrol edebiliriz. Şu anda “Microsoft Exchange Approval Assistant” hala taşınıyor.
Şu anda ise tüm taşıma işlemi bitti.
Şimdi ise sırası ile DB leri dismount edip siliyoruz, sonra ise 2010 üzerindeki OAB’ u siliyoruz.
Not; Exchange 2013 tarafında başlattığımız move işlemlerini öncelikle siliniz.
Discovery Search Mailbox’ ı silebilirsiniz.
Veri tabanlarını Dismount ediyorum.
İlk veri tabanını sildim, logları ve edb dosyasını elle silmem gerekli.
Benzer şekilde DB1 isimli veri tabanını da siliyorum.
Şimdi ise OAB yi siliyorum ( 2010 üzerindeki )
Son olarak Exchange 2013 üzerinden veya 2010 üzerinden eski Send Connector’ u kaldırmayı unutmayın.
Ardından Exchange Server’ ı program ekle kaldır dan kaldırabiliriz.
Ardından Exchange Server 2010’ u kaldırıyorum.
Tüm rollerin yanındaki kutucukları kaldırdım.
Evet, eski sistemi kaldırmış oluyoruz.
Exchange 2013 üzerinden eski sisteme ait herhangi bir bilgi olmadığını kontrol edelim.
Benzer şekilde ADSI edit üzerinde de herhangi bir kalıntının kalmadığını görüyoruz.
Uzun bir makale oldu ancak konunun tam anlamı ile anlatılması noktasında eksiksiz olduğunu düşünüyorum. Umuyorum ki sizlerde aynı görüştesinizdir.
Bir sonraki makalemde görüşmek üzere.
Bu makalenin hazırlanmasında bana destek olan Microsoft PFE Nawar Al-Janabi’ ye çok teşekkür ediyorum.