Category Archives: Exchange

Exchange 2010 Queue üzerindeki Mailleri Export etmek

Bu makalede Exchange Serve 2010 sunucu üzerindeki kuyrukta kalan mesajların nasıl export edilip diğer sunucudan tekrar resubmitted edilmesini anlatacağım

Mesajları export etmek için Export-Messega cmdlet kullanacağız. Eml uzantılı export edilmiş mailleri eğer resubmit etmek isterseniz aşağıdaki path’e koyulmıs gerekmektedir.

C:\Program Files\Microsoft\Exchange Server\V14\TransportRoles\Replay

 

Aşağıdaki script aslında bu tip işler için birebir.

#Kuyruktaki mesajlar suspend edilir. 
get-queue ExchangeServer\863 | Get-Message | Suspend-Message 
#Kuyruktaki mesajlar alınır
$array = @(Get-Message -Queue “ExchangeServer\863” -ResultSize unlimited) 
#Kuyruktaki mesajlar export edilir. 
$array | ForEach-Object {$i++;Export-Message $_.Identity | AssembleMessage -Path (“D:\MailKuyruk\”+ $i +”.eml”)}

Benim Queue ID’im 863 olduğu için bu rakamı kullandım Sizlerde Get-Queue diyerek ID’nizi bulabilirsiniz.

Enis Göktay

Exchange 2010 DAG için HeartBeat Ayarları

Bildiğiniz gibi Exchange Server 2010 SP1’den sonra sanallaştırma tarafında özellikle Mailbox rolüne sahip sunucular ve live migration için destek vermektedir.

Exchange Blog’larında da iletildiği gibi,

  • Unified Messaging server role sanallaştırma platformu üzerinde desteklendiği,
  • DAG yapısına sahip mailbox sunucularında da live migration destek verdiği görülmektedir. Read More …

Failed to create mailbox/mount database Exchange 2010

Mailbox veya Database create ederken ki özellikle FIM vs programlarda Application loglarda MSExchange Management Application-5000 logları görülüyorsa aşağıdaki işlemler yapmanızda fayda bulunmaktadır. Read More …

ACTIVESYNC – MAIL ATTACHMENT File Download Problem…

Bazen Active Sync ile mail attachment’ı download ederken özellikle 10Mb üstü dosyalarda problem yaşanabilir.

Aşağıda belirttiğim gibi CAS sunucuların web config dosyalarında ilgili değişiklikleri yaparsanız durum düzelmiş olacaktır.

Web config dosyasının yedeğinin alınması çalışma öncesinde çok önemlidir.

%ExchangeInstallPath%ClientAccess\exchweb\sync\web.config

Dosyası edit edilerek aşağıdaki parametreler aratılıp istenildiği kadar (örnek 20Mb olacak şekilde gibi..) set edilip IISRESET yapılrsa işlem gerçekleştirilmiş olacaktır

MaxDocumentDataSize 

MaxRequestLength 

Outlook 2013 SP1 ile Email hesabı silerken DİKKAT..!

Bu, Office 2013 SP1 ile gelen önemli bir update’tir. Aslında, Outlook’tan email hesabı silindiği zaman ilişkili PST veya OST otomatik olarak silinmektedir..

Daha öncesinde ise data dosyası kullanıcının profile’ninde bulunmaktaydı.

Dikkat edilmesinde fayda bulunmaktadır.

 

Exchange Server 2010 SMTP Transport Log Analiz – LOGPARSER

Bildiğiniz üzer built-in olarak SMTP log analizi yoktur. Bu analizi LogParser isimli bir tool ile query yazarak yapabilmekteyiz. Aşağıda belirttiğim bazı örneklerle bu işlemi yapabilmekteyiz.

Örnek 1;

SMTP 550 Event olan sonuçları getirmek için;

logparser “select [#Fields: date-time] as date-time, REVERSEDNS(EXTRACT_PREFIX(remote-endpoint,0,’:’)) as RemoteSendingHost,data from RECV*.log Where data like’550%'” -i:csv -nSkipLines:4 -o:datagrid

Örnek 2;

SMTP 220, 221 veya 250 eventleri ile başlamayan sonuçları göstermektedir.

logparser “select [#Fields: date-time] as date-time, REVERSEDNS(EXTRACT_PREFIX(remote-endpoint,0,’:’)) as RemoteSendingHost,data from RECV*.log Where data NOT like ‘250%’ AND data NOT like ‘220%’ AND Data NOT Like ‘221%’ AND event = ‘>'” -i:csv -nSkipLines:4 -o:datagrid

Örnek 3;

@yahoo.com’dan 08/16/2014 veya 08/17/2014 tarihlerinde alınan mesajlar

logparser “select [#Fields: date-time] as date-time, REVERSEDNS(EXTRACT_PREFIX(remote-endpoint,0,’:’)) as RemoteSendingHost,data from RECV20140816*.log,RECV20140817*.log Where data Like ‘250%yahoo.com%’ AND event = ‘>'” -i:csv -nSkipLines:4 -o:datagrid

Örnek 4;

Mart ayında alınan tüm mesajlar

logparser “select REVERS`EDNS(EXTRACT_PREFIX(remote-endpoint,0,’:’)) as RemoteSendingHost,data from RECV201303*.log Where data like ‘MAIL FROM%'” -i:csv -nSkipLines:4

Exchange Server 2010 Powershell ile Tracking Log Searching

Aşağıdaki komut yardımıyla Tracking loglardan mail search edebilmekteyiz.

Get-Exchangeserver | where {$_.isHubTransportServer -eq $true -or $_.isMailboxServer -eq $true} | Get-MessageTrackingLog -Recipients “enisgoktay@hotmail.com“,”egoktay@hotmail.com” -start “7/10/2014 12:00 AM” | ? {$_.Source -eq “SMTP” -and $_.EventId -eq “RECEIVE“} | Select-Object Timestamp, Clienthostname, sender, @{Name=”Recipients”; Expression={$_.recipients}}, Recipientcount, MessageSubject | export-csv -NoTypeInformation .\Messages.csv -Encoding Unicode

  • Yukarıdaki komut ile ilk olarak message tracking loglarını alabilmekteyiz. CAS ve EDGE serverler exclude edilmektedir.
  • Select-Object ile belirtilen başlıklar altında listelenebilir.
  • @{} expression ile tüm kullanıcıları tek bir text alan içinde birleştirmektedir.

 

Aşağıdaki komut aracılığyla da specisifc bir kullanıcı, zaman ve mesaj detaylarını alabiliriz.

Get-Exchangeserver | where {$_.isHubTransportServer -eq $true -or $_.isMailboxServer -eq $true} | Get-Messagetrackinglog -sender enisgoktay@hotmail.com -MessageSubject “Mesaj Baslik” -Start “09/27/2014 00:00 AM” -End “09/27/2014 11:00 AM” | Select-Object Timestamp,Clienthostname,eventid,source,sender,@{Name=”Recipients”;Expression={$_.recipients}},Recipientcount,serverhostname,SourceContext

  • Yukarıda komutta belirtilen saatte belirtilen mesaj başlığında gönderenin belli olduğu sonuçlar alınabilir.

 

Aşağıdaki komut yardımıyla belirli zaman içinde belirli domaine gönderilen maillerin listesi alınabilir.

Get-Messagetrackinglog -Start “09/21/2014 12:00 AM” -End “09/23/2014 8:00 PM” -ResultSize Unlimited | where {$_.Recipients -like ‘*@cdolar.com’ -and $_.Sender -like ‘*@hotmail.com’} | Select-Object Timestamp, Clienthostname, eventid, source, sender, Recipients, MessageSubject, serverhostname

Exchange Server 2010 Public Folders

Exchange Server 2010’da Public Folder’lar optional birer özelliktir. Kişilerin ortak olarak kullandığı klasörler olarak ta nitelendirebiliriz. Public Folderları DAG üyesi sunucularda ancak replika ile çoğaltabiliriz. Aşağıdaki komutlar yardımıyla bazı işlemleri gerçekleştirilebilir.

Replika Listesi:

Get-PublicFolder -recurse |fl name,replicas

 

System Folder için;

Get-PublicFolder -recurse \non_ipm_subtree |fl name, replicas

 

Spefisik bir klasörün replikası için:

Get-PublicFolder -Recurse | Where-Object {$_.Replicas -notcontains ‘Public Folders CST’} | fl name,replicas

  • ‘Public Folders CST’ database” replika için setlenmemiş,

 

0’dan fazla Item için,

Get-PublicFolder -Identity ‘\’ -Recurse | Get-PublicFolderStatistics | Where-Object {$_.ItemCount -gt 0} | fl name, ItemCount

 

Hiç Item bulunmadığı zaman;

Get-PublicFolder -Identity ‘\’ -Recurse | Get-PublicFolderStatistics | Where-Object {$_.ItemCount -eq 0} | ft name, ItemCount

DAG Active Database Mount Etmek

DAG üyesi sunucularımızda veritabanları bazı sebeplerle diğer dag üyesi sunucularda aktif etmek gerekebilir.Kısaca nasıl aktif edebileceğimizi ve seçeneklerin bize ne sorduğunu görebilmek için bu makaleyi hazırladım.

A-) EMC üzerinden;

  1. Organization Management\Mailbox\Database Management gidilir
  2. Sağ tuş ile Move Active Database denilir.
  3. Browse ile birden çok member sunucumuz varsa hangi sunucuya göndereceğimizi seçeriz.
  4. Bu esnada bir alttaki seçenekte 4(Dört) tane database mount dial seçeneği çıkmaktadır. Default olarak NONE gelmektedir. Açıklamaları aşağıdaki gibidir.
    1. BestAvailability(default) ; Eğer copy queue length ≤12 olunca dataabase mount olur. Loglar replike olur ve database mount olur
    2. GoodAvailability; Eğer copy queue lenght ≤6 olursa database mount olur. Loglar replike olur ve database mount olur
    3. Lossless; Database, copy queue lenght “0” olduğunda mount olur. Tüm logların replike olduğu görüldükten sonra database mount olur.
    4. BestEffort;Copy queue lenght’e bakılmaksızın Database mount olur.
    5. None: Default’tur.

B-) Move-ActiveMailboxDatabase DB –ActivateOn Server <MOVEEDILECEKSUNUCU> -MountDialOverride : <DIALOPTIONS>

Exchange Server 2010 Powershell ile Message Delivery Queue

Message Queue görebilmek için;

  1. EMS üzerinden queue görülebilmektedir. Aşağıdaki komut yardımıyla Shadow hariç kaç item olduğu görülebilmektedir.
    1. Get-TransportServer | Get-Queue | Where-Object {$_.MessageCount -gt 0 -and $_.Identity -notlike “*\Shadow\*”} | fl Identity, MessageCount, NextHopDomain, Status, LastError
  2. EDGE transport server varsa exclude edilerek görülebilir.
    1. Get-Transportserver | where-object {$_.name -notlike ‘*edge*’} | Get-Queue | Where-Object {$_.DeliveryType -ne ‘ShadowRedundancy’} | ft Identity, MessageCount, NextHopDomain, Status, LastError -wrap
  3. Toplam kaç ITEM olduğunu aşağıdaki komut yardımıyla görebiliriz.
    1. Get-TransportServer | Get-Queue | measure-object MessageCount -max | ft

Aşağıdaki makale yardımıylada Transport Queue Deep Dive olarak okunmasını önermekteyim.

https://www.simple-talk.com/sysadmin/exchange/a-deep-dive-into-transport-queues—part-1/