当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 使用 PowerShell 搜索 + 保存邮件项目的副本 |第 2 部分#5

作者:精品下载站 日期:2024-12-14 09:07:02 浏览:16 分类:玩电脑

使用 PowerShell 搜索 + 保存邮件项目的副本 |第 2 部分#5


在本文中,我们将回顾如何使用 Search-Mailbox PowerShell cmdlet 对特定 Exchange 邮箱执行搜索 + 将搜索结果复制到“目标邮箱”(目标邮箱)。

连接到 Exchange Online PowerShell

为了能够运行本文中指定的 PowerShell 命令,您需要连接到 Exchange Online PowerShell。

以管理员身份启动 Windows PowerShell 并运行 cmdlet Connect-ExchangeOnline

Connect-ExchangeOnline

场景描述

目标

我们寻求实现的目标是:

  1. 在特定 Exchange 邮箱(BobMailbox)中执行搜索。搜索是通过定义特定的搜索查询(搜索条件)来实现的,这将帮助我们找到回答搜索查询的特定邮件项目
  2. 搜索结果(邮件项目)将被复制到目标邮箱并保存在专用文件夹(目标文件夹)中
  3. 此外,我们想要创建一个关于搜索结果中出现的每个邮件项目的详细报告(日志)(日志/报告文件将保存在目标文件夹中) >)

源邮箱+目标邮箱(和目标文件夹)

  • 源邮箱(我们执行搜索的邮箱)是Bob的邮箱
  • 我们用于存储搜索结果(邮件项)的目标邮箱Adele的
  • 目标文件夹名称将为 - 搜索结果 - Bob

[玩转系统] 使用 PowerShell 搜索 + 保存邮件项目的副本 |第 2 部分#5

邮箱搜索范围

默认情况下,Search-Mailbox cmdlet 在“源邮箱”中执行搜索,其中包括以下“邮箱空间”:

主邮箱

  1. 搜索邮箱 cmdlet 将执行与主邮箱中的所有文件夹和子文件夹相关的搜索。
  2. 恢复邮件文件夹 - 默认情况下,Search-Mailbox cmdlet 还将搜索存储在恢复邮件文件夹(转储程序)中的邮件项目。

存档邮箱

如果源邮箱有存档邮箱,

  1. 搜索邮箱 cmdlet 将执行与存档邮箱中的所有文件夹和子文件夹相关的搜索。
  2. 恢复邮件文件夹 - 默认情况下,Search-Mailbox cmdlet 还将搜索存储在邮箱存档恢复邮件文件夹(垃圾箱)中的邮件项目。

在下面的屏幕截图中,我们可以看到一个场景示例,其中源邮箱属于Bob,,目标邮箱是 - Adele's邮箱。

Search-Mailbox cmdlet 创建一个新文件夹(目标文件夹)并将所有搜索结果(复制邮件项目)存储在此文件夹(目标文件夹)中。

搜索结果文件夹层次结构包括两个独立的“空格”:

  1. 存档邮箱(截图中的A)
  2. 主邮箱(屏幕截图中的 B)

每个“邮箱空间”(存档和主邮箱空间)都包含一个名为 - 可恢复项目 的专用文件夹,用于存储从恢复邮件文件夹“获取”的搜索结果 -垃圾箱(图中的数字2),包括软删除+硬删除的邮件项目。

[玩转系统] 使用 PowerShell 搜索 + 保存邮件项目的副本 |第 2 部分#5

使用搜索邮箱执行搜索 | PowerShell 命令语法

如前所述,Search-Mailbox cmdlet 是一个非常强大的 PowerShell cmdlet,它可以使用多种类型的搜索查询过滤器,帮助我们“获取”(查找并复制)非常具体的邮件项目。

在下一节中,我们将回顾几个我们可以使用的各种搜索查询的示例。

搜索和复制邮件|所有邮件

在此示例中,我们使用 Search-Mailbox cmdlet,不带任何“过滤器”或搜索查询过滤器。

在这种情况下,我们的目标是将源邮箱中存在的所有邮件项目复制到目标邮箱。搜索结果将包括主邮箱、存档邮箱(如果存在)和恢复邮件文件夹(垃圾箱)中的所有邮件项目。

搜索 + 保存副本 所有邮件 |搜索查询 - 无过滤器(无搜索查询)

PowerShell命令语法:

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

PowerShell 命令示例:

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

搜索和复制邮件|搜索查询过滤器 - 邮件项目的特定类型

在这种情况下,我们希望从源邮箱中查找(搜索)并仅复制特定类型的邮件项目。

搜索 + 保存邮件副本 |搜索查询过滤器 - 日历项目

搜索特定类型的邮件项目 - 日历 项目。

PowerShell命令语法:

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

PowerShell 命令示例:

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

搜索 + 保存邮件副本 |搜索查询 - 联系项目

搜索特定类型的邮件项目 - 联系人 项目。

PowerShell命令语法:

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

PowerShell 命令示例:

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

注意: 默认情况下,如果未指定,Search-Mailbox cmdlet 将查找所有类型的邮件类型。

使用选项“kind”搜索过滤器时,有效值可以是以下一项或多项:

  • 电子邮件
  • 会议
  • 任务
  • 笔记
  • 文档
  • 期刊
  • 联系方式
  • 我是

搜索和复制邮件|搜索查询过滤器 - 文本字符串

在本节中,我们使用搜索查询来查找包含特定文本字符串的邮件项目。

一般注意事项 - 因为我们使用引号,所以搜索将仅获取出现我们定义的文本字符串中所有单词的结果。

例如,在我们的示例中,我们查找文本字符串:“纽约的会议。”包含“纽约”或“会议”字样的邮件不会出现在搜索结果中。

只有包含出现在引号内的所有文本短语的邮件项目才会被视为回答搜索查询的“有效邮件项目”(其中的确切短语或关键字)项目的主题)。

搜索 + 保存邮件副本 |搜索查询 - 邮件主题中带有文本字符串的邮件项目

搜索包含出现在电子邮件主题行中的特定文本字符串的邮件项目。

PowerShell命令语法:

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

PowerShell 命令示例:

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

搜索 + 保存邮件副本 |搜索查询 - 邮件正文中带有文本字符串的邮件项目

搜索电子邮件 正文 中出现的具有特定 TEXT 字符串的邮件项目。

PowerShell命令语法:

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

PowerShell 命令示例:

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

搜索 + 保存邮件副本 |搜索查询 - 邮件正文或邮件主题中带有文本字符串的邮件项目

搜索电子邮件中出现的具有特定文本字符串的邮件项目 主题行邮件主题

PowerShell命令语法:

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

Powershell命令示例:

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

我们可以用来执行包含两种类型的搜索条件的搜索的其他 PowerShell 命令语法是:

PowerShell 命令示例:

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

搜索和复制邮件|搜索查询过滤器 - 特定日期或日期范围

有关“日期和日期格式”主题的一般信息。

我们在搜索邮箱查询中使用的日期格式有点棘手,因为日期格式受 Windows 操作系统日期格式、Exchange Online 邮箱日期格式等的影响。

情况 1 - 大多数时候,您需要在搜索查询中使用的日期格式是 Windows 操作系统日期格式。

情况 2 - 在搜索邮箱中使用日期格式时,查询的格式需要符合 Exchange 服务器的区域设置。

如果您收到诸如“KQL 解析器抛出异常”之类的错误,请使用“月份名称”而不是“月份编号”的格式。

例如,不要使用日期格式 - 07/21/2017,而是使用以下格式 - 02/July/2017。

搜索 + 保存邮件副本 |搜索查询 - 在特定日期发送的电子邮件

搜索特定日期发送的邮件项目。

PowerShell命令语法:

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

PowerShell 命令示例:

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

搜索 + 保存邮件副本 |搜索查询 - 在特定日期范围内发送的电子邮件

搜索在特定日期范围发送的邮件项目。

PowerShell命令语法:

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

PowerShell 命令示例:

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

搜索 + 保存邮件副本 |搜索查询 - 在特定日期范围内收到的电子邮件

搜索在特定日期范围收到的邮件项目。

PowerShell命令语法:

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

PowerShell 命令示例:

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

搜索 + 保存邮件副本 |搜索查询 - 在特定日期发送的电子邮件 + 在特定日期接收的电子邮件

搜索在 发送接收 的邮件项目text-decoration: underline;">具体日期范围。

PowerShell命令语法:

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

PowerShell 命令示例:

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

搜索和复制邮件|搜索查询过滤器 - 发件人或收件人

在本节中,我们要搜索从特定发件人发送或到达特定收件人的邮件项目。

搜索 + 保存邮件副本 |过滤范围 - 由特定发件人发送的电子邮件

搜索从特定发送的特定发件人(发件人邮件字段)的邮件项目)。

PowerShell命令语法:

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

PowerShell 命令示例:

Search-Mailbox "Bob" -SearchQuery from:"[email protected]" -TargetMailbox Adele -TargetFolder "Search Results - Bob" -LogLevel Full

搜索 + 保存邮件副本 |过滤范围 - 发送给特定收件人的电子邮件

搜索从特定接收来自特定收件人的邮件项目(发送到特定收件人 - 收件人邮件字段)。

PowerShell命令语法:

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

PowerShell 命令示例:

Search-Mailbox "Bob" -SearchQuery to:"[email protected]" -TargetMailbox Adele -TargetFolder "Search Results - Bob" -LogLevel Full

搜索和复制邮件|搜索查询过滤器 - 电子邮件附件

在本节中,我们要搜索带有附件的邮件项目。

搜索 + 保存邮件副本 |过滤范围 - 包含特定附件文件名的电子邮件

搜索包含带有特定文件扩展名的附件的邮件项目。

PowerShell命令语法:

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

PowerShell 命令示例:

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

搜索 + 保存邮件副本 |过滤范围 - 特定附件类型(后缀)

搜索附件带有特定文件名后缀的邮件项目。

PowerShell命令语法:

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

PowerShell 命令示例:

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

搜索 + 保存邮件副本 |过滤范围 - 带附件的电子邮件

搜索带有附件的邮件项目。

PowerShell命令语法:

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

PowerShell 命令示例:

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

搜索和复制邮件|搜索查询过滤器 - 附加搜索查询

搜索邮件项目,其尺寸比特定尺寸“更大”(更大)。

搜索 + 保存邮件副本 |过滤范围 - 电子邮件项目大小大于 X MB

PowerShell命令语法:

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

PowerShell 命令示例:

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

搜索邮箱|邮箱搜索范围|恢复邮件文件夹(垃圾箱)和存档邮箱

在下面的部分中,我想简要回顾一下“邮箱搜索范围”的主题。

如前所述,Search-Mailbox cmdlet 默认情况下将在以下所有邮箱位置执行搜索:

  1. 主邮箱
  2. 主邮箱 - 恢复邮件文件夹(垃圾箱)
  3. 存档邮箱
  4. 存档邮箱 - 恢复邮件文件夹(垃圾箱)

Search-Mailbox cmdlet 使我们能够定义特定的邮箱搜索范围或从搜索结果中排除特定的邮箱范围。

邮箱范围 恢复邮件文件夹(垃圾箱)

Search-Mailbox cmdlet 最显着的优点之一是,它为 Exchange 管理员提供了查看(搜索)恢复邮件文件夹(转储程序)的内容并“获取”邮件的功能。存储在恢复邮件文件夹中的软删除+硬删除邮件项目的副本。

默认情况下,搜索邮箱 cmdlet 将在主邮箱和恢复邮件文件夹(转储程序)中执行搜索。

例如,如果我们没有定义特定的邮箱范围过滤器,搜索任务将包括主邮箱空间+恢复邮件文件夹(垃圾箱)。

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

排除恢复邮件文件夹(垃圾箱)搜索

如果我们想从搜索中排除恢复邮件文件夹(Dumpster),我们可以使用参数SearchDumpster并将开关设置为$False,例如-SearchDumpster:$False

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

仅搜索垃圾箱

如果我们只想在恢复邮件文件夹(Dumpster)中执行搜索,我们可以使用参数-SearchDumpsterOnly,它指定仅搜索指定邮箱的可恢复项目文件夹。

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

归档邮箱范围

默认情况下,如果特定 Exchange 邮箱有存档,则始终搜索该存档。

要从搜索中排除存档,请使用 DoNotIncludeArchive 参数。

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

编写高级/组合搜索过滤器。

我想简要提及的另一部分是定义结合两个或多个“过滤器”或搜索条件的更高级或更复杂的搜索查询的主题。

要定义两个或多个过滤器,我们可以使用逻辑运算符,例如“OR”、“AND”等。

在下图中,我们可以看到一些用于定义更高级搜索查询的语法示例。

[玩转系统] 使用 PowerShell 搜索 + 保存邮件项目的副本 |第 2 部分#5

实施例1

查找符合以下搜索条件的所有邮件项目:

另外带有附件+的电子邮件项目,邮件主题为“Test”。

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

实施例2

查找满足以下搜索条件的所有邮件项目:

电子邮件消息邮件项目或日历邮件项目或联系人

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

实施例3

查找满足以下搜索条件的所有邮件项目:

主题为“Test”的邮件+从[email protected]发送+在特定日期30/07/2017发送。

Search-Mailbox <Source Mailbox> -SearchQuery {Subject:"Test" AND From:"[email protected]" AND Sent:"30/07/2017"} -TargetMailbox <Target mailbox> -TargetFolder <Target Folder>

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯