Office 365 Mailbox Search İşlemleri
Exchange Online içerisinde bulunan tüm posta kutularında veya belirlediğimiz bir posta kutusu üzerinde istenilen bir maili konusuna, gövdesine ve ekine göre aratıp başka bir posta kutusu içerisine aktarma veya aratılan maili silme işlemlerini gerçekleştireceğiz. Bunun için ilk olarak Exchange Online üzerinde diğer posta kutularının içerisine girip mail aratmak için kendimize “Mailbox Import Export” yetkisi atmamız gerekecek.
Exchange Admin Center’ı açtıktan sonra “Permissions” seçeneğine gelip, hemen sağ tarafta açılan menü içeriğinden “Admin Roles” kısmında ki “Dicovery Management” grubunu düzenle diyoruz.
Resim 01
Grup özellikleri açıldıktan sonra “Roles” başlığı altında ki “+” butonuna basıyoruz.
Resim 02
“Mailbox Import Export” rolünü ekliyoruz.
Resim 03
Mailbox Import Export rolünü atama işlemini tamamladık. Şimdi bu rolün yetkilerini kullanacak olan kullanıcı veya kullanıcıları “Members” başlığının altında bulunan “+” butonuna tıklayarak ekliyoruz.
Resim 04
Resim 05
Mailbox Import Export yetkisine sahip olan kullanıcılarımızı da belirledik. Kullanıcı için atamış olduğumuz yetkiler yaklaşık 30 dakika içerisinde etkin olacaktır.
Artık powershell ile kullanıcı posta kutularına erişip gerekli olan işlemleri gerçekleştireceğiz.
Bunun için ilk olarak powershell ile Exchange Online’a bağlanmamız gerekiyor. Aşağıdaki komutlar ile Exchange Online’a bağlantımızı sağlıyoruz.
Import-Module MSOnline
$O365Cred = Get-Credential
$O365Session = New-PSSession –ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell -Credential $O365Cred -Authentication Basic -AllowRedirection
Import-PSSession $O365Session
Connect-MsolService –Credential $O365Cred
Bir posta kutusunda konuya göre arama yapıp, aranan maili başka bir posta kutusuna göndermek için aşağıdaki komutları çalıştırıyoruz.
$User = Read-Host -prompt “Arama yapacağınız kullanıcının mail adresini giriniz!”
$Subject = Read-Host -prompt “Mailin konusunu giriniz!”
$Mailbox = Read-Host -prompt “Mailin kopyalanacağı diğer mail adresini giriniz!”
$MailboxFolder = Read-Host -prompt “Mailin kopyalanacağı klasör adını giriniz!”
Search-Mailbox -Identity “$User“ -SearchQuery “Subject:’$Subject‘” -TargetMailbox “$Mailbox“ -TargetFolder “$MailboxFolder“ -LogLevel Full
Bir posta kutusunda gövdeye göre arama yapıp, aranan maili başka bir posta kutusuna göndermek için aşağıdaki komutları çalıştırıyoruz.
$User = Read-Host -prompt “Arama yapacağınız kullanıcının mail adresini giriniz!”
$Body = Read-Host -prompt “Mailin içeriğini giriniz!”
$Mailbox = Read-Host -prompt “Mailin kopyalanacağı diğer mail adresini giriniz!”
$MailboxFolder = Read-Host -prompt “Mailin kopyalanacağı klasör adını giriniz!”
Search-Mailbox -Identity “$User“ -SearchQuery “Body:’$Body‘” -TargetMailbox “$Mailbox“ -TargetFolder “$MailboxFolder“ -LogLevel Full –Verbose
Bir posta kutusunda eke göre arama yapıp, aranan maili başka bir posta kutusuna göndermek için aşağıdaki komutları çalıştırıyoruz.
$User = Read-Host -prompt “Arama yapacağınız kullanıcının mail adresini giriniz!”
$Attachment = Read-Host -prompt “Ekin adını giriniz!”
$Mailbox = Read-Host -prompt “Mailin kopyalanacağı diğer mail adresini giriniz!”
$MailboxFolder = Read-Host -prompt “Mailin kopyalanacağı klasör adını giriniz!”
Search-Mailbox -Identity “$User“ -SearchQuery “Attachment:’$Attachment‘” -TargetMailbox “$Mailbox“ -TargetFolder “$MailboxFolder“ -LogLevel Full –Verbose
Tüm posta kutularında konuya göre arama yapıp, aranan maili başka bir posta kutusuna göndermek için aşağıdaki komutları çalıştırıyoruz.
$Users = Get-Mailbox -Resultsize Unlimited
$Subject= Read-Host -prompt “Mailin konusunu giriniz!”
$Mailbox = Read-Host -prompt “Mailin kopyalanacağı diğer mail adresini giriniz!”
$MailboxFolder = Read-Host -prompt “Mailin kopyalanacağı klasör adını giriniz!”
foreach ($User in $Users)
{
Search-Mailbox -Identity “$User.PrimarySmtpAddress” -SearchQuery “Subject:’$Subject‘” -TargetMailbox “$Mailbox“ -TargetFolder “$MailboxFolder“ -LogLevel Full -Verbose
}
Tüm posta kutularında gövdeye göre arama yapıp, aranan maili başka bir posta kutusuna göndermek için aşağıdaki komutları çalıştırıyoruz.
$Users = Get-Mailbox -Resultsize Unlimited
$Body = Read-Host -prompt “Mailin içeriğini giriniz!”
$Mailbox = Read-Host -prompt “Mailin kopyalanacağı diğer mail adresini giriniz!”
$MailboxFolder = Read-Host -prompt “Mailin kopyalanacağı klasör adını giriniz!”
foreach ($User in $Users)
{
Search-Mailbox -Identity “$User.PrimarySmtpAddress” -SearchQuery “Body:’$Body‘” -TargetMailbox “$Mailbox“ -TargetFolder “$MailboxFolder“ -LogLevel Full -Verbose
}
Tüm posta kutularında eke göre arama yapıp, aranan maili başka bir posta kutusuna göndermek için aşağıdaki komutları çalıştırıyoruz.
$Users = Get-Mailbox -Resultsize Unlimited
$Attachment = Read-Host -prompt “Ekin adını giriniz!”
$Mailbox = Read-Host -prompt “Mailin kopyalanacağı diğer mail adresini giriniz!”
$MailboxFolder = Read-Host -prompt “Mailin kopyalanacağı klasör adını giriniz!”
foreach ($User in $Users)
{
Search-Mailbox -Identity “$User.PrimarySmtpAddress” -SearchQuery “Attachment:’$Attachment‘” -TargetMailbox “$Mailbox“ -TargetFolder “$MailboxFolder“ -LogLevel Full -Verbose
}
Bir posta kutusunda konuya göre arama yapıp, aranan maili silmek için aşağıdaki komutları çalıştırıyoruz.
$User = Read-Host -prompt “Arama yapacağınız kullanıcının mail adresini giriniz!”
$Subject = Read-Host -prompt “Mailin konusunu giriniz!”
Search-Mailbox -Identity $User -SearchQuery “Subject:’$Subject‘” –DeleteContent
Bir posta kutusunda gövdeye göre arama yapıp, aranan maili silmek için aşağıdaki komutları çalıştırıyoruz.
$User = Read-Host -prompt “Arama yapacağınız kullanıcının mail adresini giriniz!”
$Body = Read-Host -prompt “Mailin içeriğini giriniz!”
Search-Mailbox -Identity $User -SearchQuery “Body:’$Body‘” -DeleteContent
Bir posta kutusunda eke göre arama yapıp, aranan maili silmek için aşağıdaki komutları çalıştırıyoruz.
$User = Read-Host -prompt “Arama yapacağınız kullanıcının mail adresini giriniz!”
$Attachment = Read-Host -prompt “Ekin adını giriniz!”
Search-Mailbox -Identity $User -SearchQuery “Attachment:’$Attachment‘” –DeleteContent
Tüm posta kutularında konuya göre arama yapıp, aranan maili silmek için aşağıdaki komutları çalıştırıyoruz.
$Users = Get-Mailbox -Resultsize Unlimited
$Subject = Read-Host -prompt “Mailin konusunu giriniz!”
foreach ($User in $Users)
{
Search-Mailbox -Identity “$User.PrimarySmtpAddress” -SearchQuery “Subject:’$Subject‘” -DeleteContent
}
Tüm posta kutularında gövdeye göre arama yapıp, aranan maili silmek için aşağıdaki komutları çalıştırıyoruz.
$Users = Get-Mailbox -Resultsize Unlimited
$Body = Read-Host -prompt “Mailin içeriğini giriniz!”
foreach ($User in $Users)
{
Search-Mailbox -Identity “$User.PrimarySmtpAddress” -SearchQuery “Body:’$Body‘” -DeleteContent
}
Tüm posta kutularında eke göre arama yapıp, aranan maili silmek için aşağıdaki komutları çalıştırıyoruz.
$Users = Get-Mailbox -Resultsize Unlimited
$Attachment = Read-Host -prompt “Ekin adını giriniz!”
foreach ($User in $Users)
{
Search-Mailbox -Identity “$User.PrimarySmtpAddress” -SearchQuery “Attachment:’$Attachment‘” -DeleteContent
}
Bu makalemizde Office 365 üzerinde PowerShell kullanarak mailbox’lar içerisinde arama ve silme işlemlerinin nasıl yapılacağını göstermiş olduk. Umarım faydalı bir makale olmuştur. Bir sonraki makalemizde görüşmek üzere
Eline sağlık Ümit.