PowerShell'i kullanarak posta öğelerinin bir kopyasını arayın ve kaydedin | Bölüm 2#5


Mevcut makalede, belirli bir Exchange posta kutusunda arama yapmak için Search-Mailbox PowerShell cmdlet'inin nasıl kullanılacağını inceleyeceğiz + arama sonuçlarını bir "hedef posta kutusuna" (Hedef Posta Kutusu) kopyalayacağız.

Exchange Online PowerShell'e bağlanın

Güncel makalede belirtilen PowerShell komutlarını çalıştırabilmek için Exchange Online PowerShell'e bağlanmanız gerekecektir.

Windows PowerShell'i yönetici olarak başlatın ve Connect-ExchangeOnline cmdlet'ini çalıştırın.

Connect-ExchangeOnline

Senaryo açıklaması

Hedefler

Ulaşmaya çalıştığımız hedefler şunlardır:

  1. Belirli bir Exchange posta kutusunda (Bob Posta Kutusu) arama yapın. Arama, Arama Sorgusunu yanıtlayan belirli posta öğelerini bulmamıza yardımcı olacak belirli bir Arama Sorgusu (arama kriterleri) tanımlanarak uygulanır.
  2. Arama Sonuçları (posta öğeleri) bir Hedef Posta Kutusu'na kopyalanacak ve özel bir klasöre (Hedef Klasör) kaydedilecektir.
  3. Ayrıca, Arama Sonuçları'nda görünen her posta öğesi hakkında ayrıntılı bir rapor (Günlük) oluşturmak istiyoruz (Günlük/Rapor dosyası Hedef Klasör 'e kaydedilecektir) )

Kaynak posta kutusu + Hedef posta kutusu (ve Hedef Klasör)

  • Kaynak Posta Kutusu (aramayı gerçekleştirdiğimiz posta kutusu) Bob'un posta kutusudur
  • Arama sonucunu (posta öğelerini) depolamak için kullandığımız Hedef Posta Kutusu Adele'in'idir.
  • Hedef Klasör adı şu şekilde olacaktır: - Arama Sonuçları - Bob

Posta kutusu arama kapsamı

Varsayılan olarak Search-Mailbox cmdlet'i, aşağıdaki "Posta Kutusu alanlarını" içeren "Kaynak Posta Kutusu" içinde bir arama gerçekleştirir:

Birincil posta kutusu

  1. Search-Mailbox cmdlet'i, Birincil Posta Kutusundaki tüm klasörler ve alt klasörlerle ilgili bir arama gerçekleştirir.
  2. Kurtarma posta klasörü - varsayılan olarak Posta Kutusu Arama cmdlet'i, Kurtarma posta klasöründe (Çöp Kutusu) saklanan posta öğelerini de arayacaktır.

Posta kutusunu arşivle

Kaynak Posta Kutusunun Arşiv posta kutusu olması durumunda,

  1. Search-Mailbox cmdlet'i, Arşiv posta kutusundaki tüm klasörler ve alt klasörlerle ilgili bir arama gerçekleştirir.
  2. Kurtarma posta klasörü - varsayılan olarak Search-Mailbox cmdlet'i, posta kutusu arşivi Kurtarma posta klasöründe (Çöp Kutusu) saklanan posta öğelerini de arayacaktır.

Aşağıdaki ekran görüntüsünde, Kaynak Posta Kutusu'nin Bob'e ait olduğu ve Hedef posta kutusunun Adele'in olduğu bir senaryo örneğini görebiliriz. posta kutusu.

Search-Mailbox cmdlet'i Yeni bir klasör (Hedef Klasör) oluşturur ve tüm Arama Sonuçlarını (posta öğelerini kopyalayın) bu klasörde (Hedef klasör) saklar.

Arama sonuçları klasörü hiyerarşisi iki ayrı "boşluk" içerir:

  1. Posta kutusunu arşivle (ekran görüntüsünde A)
  2. Birincil posta kutusu (ekran görüntüsünde B)

“Posta kutusu alanlarının” (Arşiv ve Birincil) her biri, Kurtarma posta klasöründen “getirilen” Arama Sonuçlarını saklayan - Kurtarılabilir Öğeler adında özel bir klasör içerir. Geçici olarak silinen + Kalıcı olarak silinen posta öğelerini içeren çöp kutusu (şemada 2 sayısı).

Arama yapmak için Arama Posta Kutusunu kullanma | PowerShell komut sözdizimi

Belirtildiği gibi, Search-Mailbox cmdlet'i çok güçlü bir PowerShell cmdlet'idir ve "getirmemize" (bulma ve kopyalama) yardımcı olacak birçok Arama Sorgusu filtresi türünü kullanabilmektedir. ) çok özel posta öğeleri.

Aşağıdaki bölümde kullanabileceğimiz çeşitli Arama Sorgusu'na ilişkin birkaç örneği inceleyeceğiz.

Posta öğelerini arayın ve kopyalayın | TÜM posta öğeleri

Bu örnekte Search-Mailbox cmdlet'ini herhangi bir "filtre" veya Arama sorgusu filtresi olmadan kullanıyoruz.

Bu senaryoda amacımız Kaynak Posta Kutusunda bulunan tüm posta öğelerini Hedef Posta Kutusuna kopyalamaktır. Arama sonuçları Birincil Posta Kutusu, Arşiv Posta Kutusu (varsa) ve Kurtarma posta klasöründeki (Çöp Kutusu) tüm posta öğelerini içerecektir.

Ara + Bir kopyasını kaydet TÜM posta öğeleri | Arama Sorgusu - Filtre YOK (Arama Sorgusu yok)

PowerShell komut sözdizimi:

Search-Mailbox <Source Mailbox> -TargetMailbox <Destination mailbox>-TargetFolder <Folder> -LogLevel Full

PowerShell komut örneği:

Search-Mailbox Bob -TargetMailbox Adele -TargetFolder "Search Results - Bob" -LogLevel Full

Posta öğelerini arayın ve kopyalayın | Arama sorgusu Filtresi - belirli Posta öğesi türü

Bu senaryoda, Kaynak Posta Kutusundan yalnızca belirli türdeki posta öğelerini bulmak (aramak) ve kopyalamak istiyoruz.

Ara + Posta öğelerinin bir kopyasını kaydet | Arama Sorgusu filtresi - Takvim öğeleri

Belirli türdeki posta öğelerini arayın - Takvim öğeleri.

PowerShell komut sözdizimi:

Search-Mailbox <Source Mailbox> -SearchQuery "Kind:meetings" -TargetMailbox <Destination mailbox> -TargetFolder <Folder> -LogLevel Full

PowerShell komut örneği:

Search-Mailbox "Bob" -SearchQuery "Kind:meetings" -TargetMailbox Adele -TargetFolder "Search Results - Bob" -LogLevel Full

Ara + Posta öğelerinin bir kopyasını kaydet | Arama Sorgusu - İletişim öğeleri

Belirli türdeki posta öğelerini arayın - Kişiler öğeleri.

PowerShell komut sözdizimi:

Search-Mailbox <Source Mailbox> -SearchQuery "Kind:contacts" -TargetMailbox <Destination mailbox> -TargetFolder <Folder> -LogLevel Full

PowerShell komut örneği:

Search-Mailbox "Bob" -SearchQuery "Kind:contacts" -TargetMailbox Adele -TargetFolder "Search Results - Bob" -LogLevel Full

Not: Varsayılan olarak, belirtilmediği takdirde Search-Mailbox cmdlet'i tüm mesaj türü türlerini arayacaktır.

"Tür" arama filtresi seçeneğini kullanırken geçerli değerler aşağıdakilerden biri veya birkaçı olabilir:

  • E-posta
  • Toplantılar
  • Görevler
  • Notlar
  • Dokümanlar
  • Günlükler
  • Kişiler
  • BEN

Posta öğelerini arayın ve kopyalayın | Arama sorgusu Filtresi - Metin Dizesi

Bu bölümde, belirli bir metin dizesi içeren posta öğelerini arayan Arama Sorgusu'nu kullanıyoruz.

Genel not - tırnak işaretlerini kullandığımız için, arama yalnızca metin dizesinde tanımladığımız tüm kelimelerin göründüğü sonuçları getirecektir.

Örneğin, örneğimizde şu metin dizesini arıyoruz: "New York'ta bir toplantı." “New York ” veya “toplantı ” kelimelerini içeren posta öğeleri Arama Sonuçlarında görünmez.

Yalnızca tırnak işaretleri içinde görünen tüm metin ifadelerini içeren posta öğeleri, Arama Sorgusunu yanıtlayan "geçerli posta öğeleri" olarak kabul edilecektir (tam ifadeler veya anahtar kelimeler öğelerin konuları).

Ara + Posta öğelerinin bir kopyasını kaydet | Arama Sorgusu - SUBJECT postasında Metin Dizesi içeren posta öğeleri

Bir E-posta İletisinde Konu satırında görünen belirli bir METİN dizesine sahip posta öğelerini arayın.

PowerShell komut sözdizimi:

Search-Mailbox <Source Mailbox> -SearchQuery Subject:"<Text String>" -TargetMailbox <Destination mailbox> -TargetFolder <Folder> -LogLevel Full

PowerShell komut örneği:

Search-Mailbox "Bob" -SearchQuery Subject:"A meeting in New York" -TargetMailbox Adele -TargetFolder "Search Results - Bob" -LogLevel Full

Ara + Posta öğelerinin bir kopyasını kaydet | Arama Sorgusu - Posta BODY'sinde Metin Dizesi içeren posta öğeleri

E-posta Gövde'de görünen belirli bir METİN dizesine sahip posta öğelerini arayın.

PowerShell komut sözdizimi:

Search-Mailbox <Source Mailbox> -SearchQuery body:"<Text String>" -TargetMailbox <Destination mailbox> -TargetFolder <Folder> -LogLevel Full

PowerShell komut örneği:

Search-Mailbox "Bob" -SearchQuery Subject:"A meeting in New York" -TargetMailbox Adele -TargetFolder "Search Results - Bob" -LogLevel Full

Ara + Posta öğelerinin bir kopyasını kaydet | Arama Sorgusu - Posta BODY'sinde veya Posta Konusunda Metin Dizesi bulunan posta öğeleri

Bir E-posta İletisinde Konu satırında veya görünen belirli bir METİN dizesine sahip posta öğelerini arayın. Posta Konusu.

PowerShell komut sözdizimi:

Search-Mailbox <Source Mailbox> -SearchQuery "<Text String>" -TargetMailbox <Destination mailbox> -TargetFolder <Folder> -LogLevel Full

Powershell komut örneği:

Search-Mailbox "Bob" -SearchQuery "A meeting in New York" -TargetMailbox Adele -TargetFolder "Search Results - Bob" -LogLevel Full

İki tür arama kriteri içeren bir arama gerçekleştirmek için kullanabileceğimiz ek PowerShell komut sözdizimi şöyledir:

PowerShell komut örneği:

Search-Mailbox "Bob" -SearchQuery {Subject:"A meeting in New York" OR body:"A meeting in New York"} -TargetMailbox Adele -TargetFolder "Search Results - Bob" -LogLevel Full

Posta öğelerini arayın ve kopyalayın | Arama sorgusu Filtresi - belirli Tarih veya Tarih Aralığı

“Tarih ve Tarih Formatı” konusu hakkında genel bilgiler.

Posta Kutusu Arama sorgusunda kullandığımız tarih biçiminin konusu biraz yanıltıcıdır çünkü tarih biçimi Windows İşletim Sistemi Tarih biçiminden, Exchange Online Posta Kutusu Tarih biçiminden vb. etkilenir.

Durum 1 - çoğu zaman Arama Sorgusunda kullanmanız gereken tarih biçimi, Windows İşletim Sistemi Tarih biçiminizdir.

Durum 2 - Arama-Posta Kutusu sorgularında tarih biçimi kullanıldığında, Exchange sunucusunun Bölgesel ayarlarına uygun bir biçimde olması gerekir.

- “KQL ayrıştırıcısı bir istisna attı” gibi bir hata almanız durumunda, “ay numarası” biçimi yerine “ay adı”nı kullanın.

Örneğin, Tarih biçimini (21.07.2017) kullanmak yerine şu biçimi kullanın: 02/Temmuz/2017.

Ara + Posta öğelerinin bir kopyasını kaydet | Arama Sorgusu - Belirli bir tarihte GÖNDERİLEN E-postalar

Belirli bir Tarihte Gönderilmiş olan posta öğelerini arayın.

PowerShell komut sözdizimi:

Search-Mailbox <Source Mailbox> -SearchQuery sent:mm/dd/yyyy -TargetMailbox <Destination mailbox> -TargetFolder <Folder> -LogLevel Full

PowerShell komut örneği:

Search-Mailbox "Bob" -SearchQuery sent:21/07/2017 -TargetMailbox Adele -TargetFolder "Search Results - Bob" -LogLevel Full

Ara + Posta öğelerinin bir kopyasını kaydet | Arama Sorgusu - Belirli bir Tarih Aralığında GÖNDERİLEN E-postalar

Belirli bir Tarih Aralığında Gönderilmiş olan posta öğelerini arayın.

PowerShell komut sözdizimi:

Search-Mailbox <Source Mailbox> -SearchQuery {sent:mm/dd/yyyy..mm/dd/yyyy} -TargetMailbox <Target mailbox> -TargetFolder <Target Folder> -LogLevel Full

PowerShell komut örneği:

Search-Mailbox "Bob" -SearchQuery {sent:21/06/2017..07/21/2017} -TargetMailbox Adele -TargetFolder "Search Results - Bob" -LogLevel Full

Ara + Posta öğelerinin bir kopyasını kaydet | Arama Sorgusu - Belirli bir Tarih Aralığında ALINAN E-postalar

Belirli bir Tarih aralığında Alınan posta öğelerini arayın.

PowerShell komut sözdizimi:

Search-Mailbox <Source Mailbox> -SearchQuery {Received:mm/dd/yyyy..mm/dd/yyyy} -TargetMailbox <Target mailbox> -TargetFolder <Target Folder> -LogLevel Full

PowerShell komut örneği:

Search-Mailbox "Bob" -SearchQuery {Received:21/06/2017..21/07/2017} -TargetMailbox Adele -TargetFolder "Search Results - Bob" -LogLevel Full

Ara + Posta öğelerinin bir kopyasını kaydet | Arama Sorgusu - Belirli bir Tarihte GÖNDERİLEN E-postalar + belirli bir Tarihte ALINAN E-postalar

Gönderilen veya Alınan posta öğelerini belirli bir Tarih aralığı.

PowerShell komut sözdizimi:

Search-Mailbox <Source Mailbox> -SearchQuery {sent:mm/dd/yyyy OR Received: mm/dd/yyyy} -TargetMailbox <Destination mailbox> -TargetFolder <Folder> -LogLevel Full

PowerShell komut örneği:

Search-Mailbox "Bob" -SearchQuery {sent:30/07/2017 OR Received:30/07/2017}-TargetMailbox Adele -TargetFolder "Search Results - Bob" -LogLevel Full

Posta öğelerini arayın ve kopyalayın | Arama sorgusu Filtresi - gönderene veya Alıcıya göre

Bu bölümde belirli bir göndericiden gönderilen veya belirli bir alıcıya ulaşan posta öğelerini aramak istiyoruz.

Ara + Posta öğelerinin bir kopyasını kaydet | Filtre kapsamı - Belirli bir GÖNDEREN tarafından gönderilen e-posta

Belirli bir Gönderenden (FROM posta alanı) Gönderilen posta öğelerini arayın ).

PowerShell komut sözdizimi:

Search-Mailbox <Source Mailbox> -SearchQuery from:"<E-mail address>" -TargetMailbox <Target mailbox> -TargetFolder <Target Folder> -LogLevel Full

PowerShell komut örneği:

Search-Mailbox "Bob" -SearchQuery from:"John@o365info.com" -TargetMailbox Adele -TargetFolder "Search Results - Bob" -LogLevel Full

Ara + Posta öğelerinin bir kopyasını kaydet | Filtre kapsamı - Belirli bir ALICIYA gönderilen e-postalar

Belirli bir Alıcıdan Alınan posta öğelerini arayın (belirli bir alıcıya gönderildi) alıcı - TO posta alanı).

PowerShell komut sözdizimi:

Search-Mailbox <Source Mailbox> -SearchQuery to:"<E-mail address>" -TargetMailbox <Target mailbox> -TargetFolder <Target Folder> -LogLevel Full

PowerShell komut örneği:

Search-Mailbox "Bob" -SearchQuery to:"Alice@outlook.com" -TargetMailbox Adele -TargetFolder "Search Results - Bob" -LogLevel Full

Posta öğelerini arayın ve kopyalayın | Arama sorgusu Filtresi - E-posta Ekleri

Bu bölümde eki olan posta öğelerini aramak istiyoruz.

Ara + Posta öğelerinin bir kopyasını kaydet | Filtre kapsamı - Belirli bir ek dosya adı içeren e-postalar

Belirli bir Dosya uzantısına sahip eki olan posta öğelerini arayın.

PowerShell komut sözdizimi:

Search-Mailbox <Source Mailbox> -SearchQuery attachment:"<Attachment file name>" -TargetMailbox <Target mailbox> -TargetFolder <Target Folder> -LogLevel Full

PowerShell komut örneği:

Search-Mailbox "Bob" -SearchQuery attachment:"Customer.pdf" -TargetMailbox Adele -TargetFolder "Search Results - Bob" -LogLevel Full

Ara + Posta öğelerinin bir kopyasını kaydet | Filtre kapsamı - özel ek türü (son ek)

Belirli bir dosya adı sonekine sahip bir eki olan posta öğelerini arayın.

PowerShell komut sözdizimi:

Search-Mailbox <Source Mailbox> -SearchQuery {Attachment -like "*.<suffix>"} -TargetMailbox <Target mailbox> -TargetFolder <Target Folder> -LogLevel Full

PowerShell komut örneği:

Search-Mailbox "Bob" -SearchQuery {Attachment -like "*.PDF"} -TargetMailbox Adele -TargetFolder "Search Results - Bob" -LogLevel Full

Ara + Posta öğelerinin bir kopyasını kaydet | Filtre kapsamı - Ekli E-postalar

Eki olan posta öğelerini arayın.

PowerShell komut sözdizimi:

Search-Mailbox <Source Mailbox> -SearchQuery {HasAttachment -eq $true} -TargetMailbox <Target mailbox> -TargetFolder <Target Folder> -LogLevel Full

PowerShell komut örneği:

Search-Mailbox "Bob" -SearchQuery -SearchQuery {HasAttachment -eq $true} -TargetMailbox Adele -TargetFolder "Search Results - Bob" -LogLevel Full

Posta öğelerini arayın ve kopyalayın | Arama sorgusu Filtresi - Ek arama sorguları

Boyutları belirli bir boyuttan “daha büyük” (daha büyük) olan posta öğelerini arayın.

Ara + Posta öğelerinin bir kopyasını kaydet | Filtre kapsamı - E-posta öğelerinin boyutu X MB'tan büyük

PowerShell komut sözdizimi:

Search-Mailbox <Source Mailbox> -SearchQuery {Size -gt <size in KB or MB>} -TargetMailbox <Target mailbox> -TargetFolder <Target Folder> -LogLevel Full

PowerShell komut örneği:

Search-Mailbox "Bob" -SearchQuery -SearchQuery {Size -gt 5MB} -TargetMailbox Adele -TargetFolder "Search Results - Bob" -LogLevel Full

Arama-Posta Kutusu | Posta Kutusu Arama kapsamı| Kurtarma posta klasörü (Çöp Kutusu) ve Arşiv Posta Kutusu

Bir sonraki bölümde “Posta Kutularının arama kapsamı” konusuna kısaca değinmek istiyorum.

Belirtildiği gibi, Search-Mailbox cmdlet'i varsayılan olarak aşağıdaki posta kutusu konumlarının tümünde arama gerçekleştirir:

  1. Birincil posta kutusu
  2. Birincil posta kutusu - Kurtarma posta klasörü (Çöp Kutusu)
  3. Posta kutusunu arşivle
  4. Arşiv posta kutusu - Kurtarma posta klasörü (Çöp Kutusu)

Search-Mailbox cmdlet'i, belirli bir posta kutusu arama kapsamını tanımlamamıza veya belirli bir posta kutusu kapsamını arama sonuçlarından hariç tutmamıza olanak tanır.

Posta kutusu kapsamı Kurtarma posta klasörü (Çöp Kutusu)

Search-Mailbox cmdlet'lerinin en göze çarpan avantajlarından biri, Exchange yöneticisine Kurtarma posta klasörünün (Çöp Kutusu) içeriğini görüntüleme (arama) ve bir e-postayı "getirme" olanağı sağlamasıdır. Kurtarma posta klasöründe saklanan Geçici Silinen + Kalıcı Silinen posta öğelerinin kopyası.

Varsayılan olarak, Posta Kutusu Arama cmdlet'leri Birincil posta kutusu + Kurtarma posta klasöründeki (Çöp Kutusu) bir arama gerçekleştirir.

Örneğin, belirli bir posta kutusu kapsam filtresi tanımlamamamız durumunda, arama görevi Birincil posta kutusu alanı + Kurtarma posta klasörünü (Çöp Kutusu) içerecektir.

Search-Mailbox <Source Mailbox> -TargetMailbox <Target mailbox> -TargetFolder <Target Folder> -LogLevel Full

Kurtarma posta klasörü (çöp kutusu) aramasını hariç tutun

Kurtarma posta klasörünü (Dumpster) aramanın dışında bırakmak istediğimizde, SearchDumpster parametresini kullanabilir ve anahtarı $False olarak ayarlayabiliriz, örneğin <-SearchDumpster:$False.

Search-Mailbox <Source Mailbox> -TargetMailbox <Target mailbox> -TargetFolder <Target Folder> -SearchDumpster:$false -LogLevel Full

Yalnızca Çöp Kutusunda Ara

Yalnızca Kurtarma posta klasöründe (Çöp Kutusu) arama yapmak istiyorsak, yalnızca belirtilen posta kutusunun Kurtarılabilir Öğeler klasörünün aranacağını belirten -SearchDumpsterOnly parametresini kullanabiliriz.

Search-Mailbox <Source Mailbox> -TargetMailbox <Target mailbox> -TargetFolder <Target Folder> -SearchDumpsterOnly -LogLevel Full

Posta kutusu kapsamını arşivle

Varsayılan olarak, belirli bir Exchange posta kutusunun bir arşivi olması durumunda, arşiv her zaman aranır.

Arşivi aramanın dışında bırakmak için DoNotIncludeArchive parametresini kullanın.

Search-Mailbox <Source Mailbox> -TargetMailbox <Target mailbox> -TargetFolder <Target Folder> -DoNotIncludeArchive -LogLevel Full

Gelişmiş/birleşik arama filtreleri yazma.

Kısaca değinmek istediğim ek bir bölüm, iki veya daha fazla “filtre” veya arama koşulunu birleştiren daha gelişmiş veya daha karmaşık bir arama sorgusunun tanımlanması konusudur.

İki veya daha fazla filtre tanımlamak için - “VEYA”, “VE” ve daha fazlası gibi mantıksal operatörler kullanabiliriz.

Aşağıdaki şemada, daha gelişmiş bir Arama Sorgusu tanımlamak için kullandığımız sözdiziminin bazı örneklerini görebiliriz.

örnek 1

Aşağıdaki arama kriterlerine yanıt veren tüm posta öğelerini arayın:

Eki olan e-posta öğeleri + ayrıca posta konusu “Test” olur.

Search-Mailbox <Source Mailbox> -SearchQuery {HasAttachment -eq $true and subject:Test} -TargetMailbox <Target mailbox> -TargetFolder <Target Folder>

Örnek 2

Aşağıdaki arama kriterlerine yanıt veren tüm posta öğelerini arayın:

E-posta mesajı posta öğeleri veya takvim posta öğeleri veya İletişim.

Search-Mailbox <Source Mailbox> -SearchQuery {kind:email OR kind:meetings} -TargetMailbox <Target mailbox> -TargetFolder <Target Folder>

Örnek 3

Aşağıdaki arama kriterlerine yanıt veren tüm posta öğelerini arayın:

Konusu Test olan + john@o365info.com adresinden gönderilen + belirli bir tarihte 30/07/2017 gönderilen posta öğeleri.

Search-Mailbox <Source Mailbox> -SearchQuery {Subject:"Test" AND From:"john@o365info.com" AND Sent:"30/07/2017"} -TargetMailbox <Target mailbox> -TargetFolder <Target Folder>

İlgili makaleler