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

[玩转系统] PowerShell、Office 365、语法|PowerShell 的力量|第 2/3 部分 .com

作者:精品下载站 日期:2024-12-14 08:40:44 浏览:15 分类:玩电脑

PowerShell、Office 365、语法|PowerShell 的力量|第 2/3 部分 .com


在本文中,我们将回顾如何使用著名的 PowerShell“Get”命令来“获取”(Get) 对象并显示有关对象的信息。

此外,我们将了解如何“塑造”或优化从 PowerShell“Get”命令获得的输出以满足我们的特定需求。

PowerShell 的强大功能 |系列文章

PowerShell 的力量文章系列,包括以下三篇文章:

  • PowerShell 的强大功能 |第 1/3 部分
  • PowerShell 的强大功能 |第 2/3 部分
  • PowerShell 的强大功能 |第 3/3 部分

介绍 PowerShell“获取”命令

“Get”命令输出基于预定义的输出格式(屏幕上显示的信息)。例如,当使用 get 命令显示有关 Mailbox 的信息时,信息将以表格格式显示,并带有预定义的“表头”(属性)。

出于演示目的,我们将使用最基本的 PowerShell cmdlet:

Get-Mailbox

示例 1 - 显示有关特定对象实例的信息

要获取有关特定邮箱的信息,我们需要提供邮箱标识。
PowerShell 命令的语法为:

Get-Mailbox <identity>

您可以在屏幕截图中看到结果(输出)以表格格式显示,并具有预定义的“表头”(对象属性),例如邮箱名称和别名、托管邮箱的服务器名称和邮箱大小。

[玩转系统] PowerShell、Office 365、语法|PowerShell 的力量|第 2/3 部分 .com

示例 2 - 显示有关对象类的信息

当我们使用 Get-Mailbox 命令而不指定邮箱标识时,“Get”命令默认是获取/获取所有邮箱类对象。 (PowerShell“理解”我们需要有关“属于”特定类的所有对象的信息)。

要显示所有现有邮箱的列表,我们使用以下命令:

Get-Mailbox

在屏幕截图中,您可以看到 Get-Mailbox 命令的输出显示所有现有邮箱的列表。

[玩转系统] PowerShell、Office 365、语法|PowerShell 的力量|第 2/3 部分 .com

注意:我们可以控制显示的邮箱数量。如果我们有很多邮箱,“获取邮箱”命令将不会显示所有邮箱。要“强制”PowerShell 显示所有邮箱的“完整列表”,我们可以添加参数:ResultSize unlimited

PowerShell命令语法:

Get-Mailbox -ResultSize unlimited

获取 cmdlet - 格式化输出结果

当我们使用“Get”命令显示有关对象的信息时,有两种可用的格式选项:

  1. 表格格式
  2. 列表格式

(“Get”命令的默认显示格式为:表格格式)。

1.表格格式

“表格格式”(也称为表格格式)使我们能够以“易于阅读”的格式显示信息。
基于“表格列”(对象属性)和显示“的对象值”的表格格式在“表标题”下。

表格式的主要缺点是 PowerShell 控制台宽度。屏幕上可以显示的数据“量”受到 PowerShell 控制台宽度的限制。 PowerShell 使我们能够通过选择屏幕上显示的表头(对象属性)以及使用“格式参数”来控制表格式的“设计”,“格式参数”使我们能够控制诸如自动换行、行宽等参数和更多。

正如前面提到的,当我们使用“Get”命令时,默认的显示格式是表格格式。当我们需要自定义“Get”命令的输出时,我们需要“添加”Pipe选项来“通知”PowerShell,所需的格式是什么以及我们想要使用的所需属性或设计参数是什么。

我们用于使用表格格式的 cmdlet 是 Format-Table,或者我们可以使用缩写版本:FT

例如:当我们想要以表格格式显示信息时,我们可以使用以下语法:

Get-Mailbox |Format-Table

另一种选择是使用缩短版本:FT

Get-Mailbox |FT

在屏幕截图中,我们可以看到用户邮箱列表。请注意,“表标题”是由“Get”命令默认显示选项“预先配置”的。

[玩转系统] PowerShell、Office 365、语法|PowerShell 的力量|第 2/3 部分 .com

让我们看看如果我们使用 Get-Mailbox 命令而不使用 |Format-Table 选项会发生什么。

您可以看到输出是相同的,因为如上所述,“Get”命令的默认格式是 Format-Table。

[玩转系统] PowerShell、Office 365、语法|PowerShell 的力量|第 2/3 部分 .com

2. 列表格式

使用“列表格式”的主要优点是我们可以显示有关对象的所有可用信息(属性)。列表格式不受 PowerShell 控制台的“宽度限制”“影响”,因为有关对象的信息(属性和值)在对象名称下显示为“列表”。

这种格式有时可能被认为是“缺点”,因为在显示许多对象时,列表格式的信息与表格格式相比“不太容易阅读”。

PowerShell命令语法:

Get-Mailbox |Format-List

另一种选择是使用缩短版本:FL

Get-Mailbox |FL

如果您查看屏幕截图,您可以看到,当我们使用“Format-List”选项时,我们会获得许多附加数据字段(属性),而当我们使用表格格式时,这些字段是无法使用的。

[玩转系统] PowerShell、Office 365、语法|PowerShell 的力量|第 2/3 部分 .com

格式化“Get”命令的输出

在本节中,我们将学习如何“优化”“Get”命令显示的输出。
我们面临的挑战是:

  1. 如何显示与我们需求相关的信息(属性) 正如您所记得的,表格格式显示的信息非常有限,而列表格式显示的信息“太多”,不那么容易阅读。
  2. 如何克服PowerShell控制台屏幕宽度的限制(PowerShell控制台有一个特定的宽度,限制了可以显示的数据量)。

让我们开始回顾一下可用于调解此限制的不同解决方案。

使用“属性”选项

“属性”选项使我们能够选择与我们的需求相关的属性。
例如,我们想要显示有关邮箱的信息。我们感兴趣的信息包括以下属性:用户别名、用户显示名称和用户电子邮件地址。

为了能够“覆盖”“Get”命令显示的默认属性,我们可以使用“property”选项并指定我们想要显示的“属性名称”。

PowerShell 语法为:

Get-Mailbox |Format-Table -Property Alias, Displayname,EmailAddresses

我们可以使用缩短版本而不指定“property”选项。当我们使用“Format-Table”或“Format-List”选项,并添加属性名称时,PowerShell“足够聪明”,能够理解这些是应该显示的属性。

PowerShell 命令的简化版本如下所示:

Get-Mailbox |FT Alias,Displayname,EmailAddresses

注意:在接下来的示例中,我们将使用缩短版本

一般说明:

  • 属性名称——属性名称应写为“一个字”,不带空格。
  • 分隔属性名称——当我们写多个属性名称时,我们应该在每个属性名称后面添加“逗号”字符。我们可以在属性名称之间使用“空格”字符,只要我们使用“逗号”字符来分隔每个属性名称即可。

在下面的屏幕截图中,我们可以看到 Get-Mailbox 命令的输出,其中显示了我们选择的属性:

[玩转系统] PowerShell、Office 365、语法|PowerShell 的力量|第 2/3 部分 .com

请注意,虽然我们设法显示所需的属性,但仍然存在 PowerShell 控制台“宽度”的问题。

当显示包含“长值”的属性时,一个可选的解决方案是使用列表格式选项。

例如,让我们使用相同的命令并使用 Format-List 选项:

Get-Mailbox |FL Alias,Displayname,EmailAddresses

[玩转系统] PowerShell、Office 365、语法|PowerShell 的力量|第 2/3 部分 .com

使用“换行”选项

我们用于“处理”“长值”(例如电子邮件地址)的另一个选项是“换行”选项。当我们使用“wrap”选项时,电子邮件地址等包含达到PowerShell控制台“宽度”限制的“长值”的属性将被“移动”到下一行,因此我们将能够看到“完整”
例如:为了缓解“PowerShell 控制台宽度限制”,我们可以使用“Wrap”选项。

PowerShell命令语法:

Get-Mailbox |FT Alias,Displayname,EmailAddresses -Wrap

在屏幕截图中,您可以看到使用“Wrap”选项时的结果。当字符“到达PowerShell控制台右“边界”的末尾”时,其余的“值字符串”(电子邮件地址)将显示在新行上。

[玩转系统] PowerShell、Office 365、语法|PowerShell 的力量|第 2/3 部分 .com

使用“组”选项

“分组”选项,顾名思义,使我们能够对显示的结果进行分组。
例如:当我们使用标准的“获取邮箱”命令时,显示的结果将包括所有邮箱类型的列表,例如作为用户邮箱、房间邮箱、共享邮箱等。

使用“组”选项时,我们需要指定用作“分组”的“源”的属性。

例如:为了显示有关按邮箱类型分组的邮箱的信息,我们将使用属性“RecipientTypeDetails”。

PowerShell命令语法:

Get-Mailbox |Group RecipientTypeDetails

在屏幕截图中,您可以看到“组”选项使我们能够“清晰地查看”我们拥有的邮箱类型以及每种邮箱类型的数量。

[玩转系统] PowerShell、Office 365、语法|PowerShell 的力量|第 2/3 部分 .com

使用“排序”选项

“排序”选项使我们能够通过与特定表头(属性)相关的方式对输出进行排序。
例如:当我们想要通过“别名”属性对 Get-Mailbox 命令的输出进行排序时。

PowerShell命令语法:

Get-Mailbox |Sort-Object Alias

我们可以使用排序命令的简化版本:

Get-Mailbox | Sort Alias

值的“排序”可以通过使用升序或降序来实现。 Sort-Object cmdlet 没有“升序开关”,因为“排序”选项的默认值是升序。

如果我们想使用降序选项,我们可以使用以下语法:

Get-Mailbox |Sort Alias Descending

[玩转系统] PowerShell、Office 365、语法|PowerShell 的力量|第 2/3 部分 .com

使用“自动调整大小”选项

当我们选择使用表格格式显示信息时,“AutoSize”选项是相关的。众所周知,当使用表格格式时,“Get”命令的输出使用预定义的“设计参数”,例如表格行宽。

例如:当使用 Get-Mailbox 命令时,您可以在屏幕截图中看到,具有“长名称”的邮箱(例如“DiscoverySearchmailbox”)未完全显示:

[玩转系统] PowerShell、Office 365、语法|PowerShell 的力量|第 2/3 部分 .com

为了克服这个限制,我们可以使用以下选项: -AutoSize
当使用 AutoSize 选项时,PowerShell 将自定义表格行宽以适合“最长名称”的值。

PowerShell命令语法:

Get-Mailbox |FT -AutoSize

请注意,现在我们可以看到“DiscoverySearchmailbox”的“全名”,但是,由于 PowerShell 控制台宽度限制,其他默认属性已从显示中“删除”,因为 PowerShell 控制台不是足够宽以显示其余属性,例如服务器名称等。

[玩转系统] PowerShell、Office 365、语法|PowerShell 的力量|第 2/3 部分 .com

显示参数组合

我们可以使用显示参数的组合来优化显示的输出。
在下面的示例中,我们使用“显示参数”的组合:Sort、Format-Table 和 Groupby。

注意:我们将使用“Groupby”参数,而不是使用“group”参数。 “Groupby”选项使我们能够以不同的格式显示信息。

PowerShell命令语法:

Get-Mailbox |Sort RecipientTypeDetails |FT Name,Alias
-Groupby RecipientTypeDetails
  • 第一部分将“获取”有关整个现有邮箱的信息。
  • 第二部分将使用“RecipientTypeDetails”属性对结果(有关邮箱的信息)进行排序。
  • 第三部分将使用表格格式格式化输出,并显示“Alias”和“name”属性,“Groupby”选项将显示“sections”中的信息。

每个“部分”都包含有关“属于”特定邮箱类型(例如用户邮箱、共享邮箱等)的邮箱的信息。

[玩转系统] PowerShell、Office 365、语法|PowerShell 的力量|第 2/3 部分 .com

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

取消回复欢迎 发表评论:

关灯