Merhaba, Exchange Server‘da birden fazla posta hesabından belirli bir tarih öncesine ait e-postaları silmek gerekebilir. Bu işlem için -DeleteContent
parametresi ile gerçekleştirilebilir.
Aşağıda, belirttiğiniz bir tarihten önce alınan e-postaları silmek için bir PowerShell script’i paylaşıyorum. Bu script, bir CSV dosyasından kullanıcı bilgilerini içe aktarır ve her kullanıcı için belirtilen tarih öncesinde alınan e-postaları siler.
Daha önce Exchange Server’da Search-Mailbox, New-ComplianceSearch ve -DeleteContent Parametrelerinden bahsetmiştik, ilgili makaleye aşağıdan erişebilirsiniz.
Exchange Server Bulk Delete Content Scripti
Aşağıda oluşturmuş olduğum Script ile Import etmiş olduğunuz CSV dosyası içerisinde MBx’larda “Received” bölümünde belirtmiş olduğunuz tarih öncesi mail itemslerini silebilirsiniz.
cengizyilmaz1/Import-DeleteContent (github.com)
#Cengiz YILMAZ
#Microsoft MVP
#www.cengizyilmaz.net
#23.01.2023
Add-PSSnapin Microsoft.Exchange.Management.PowerShell.SnapIn
$importFile = "C:Kitap1.csv"
$users = Import-Csv -Path $importFile | Select-Object -ExpandProperty EmailAddress
foreach ($user in $users) {
$search = Search-Mailbox -Identity $user -SearchQuery "Received<8/1/2022" -DeleteContent -Force
}
Bu script, kullanıcıların posta kutularında 1 Ağustos 2022 tarihinden önce alınmış olan e-postaları siler. Bu işlemi yapmadan önce, silinecek verilerin yedeğinin alınmış olması önemlidir. Silme işlemi geri alınamaz ve verilerin kaybolması kalıcı olabilir.