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

[玩转系统] 新 Exchange Online V2 Cmdlet 简介

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

新 Exchange Online V2 Cmdlet 简介


[玩转系统] 新 Exchange Online V2 Cmdlet 简介

事实证明,Exchange Online V2 模块中的一组新 cmdlet 对于那些将邮箱移动到 Exchange Online 或一般管理 Exchange Online 的工程师来说是一种福音,同时又有些弊端。

它们是一个福音,因为九个新的 cmdlet 比它们的前身更强大、更快。它们也是一个祸根,因为它们需要重新编码脚本以及学习这些 cmdlet 中现在存在的新方法(PropertySetsProperties)。

总体而言,微软一直在寻求与 Exchange Online 之前的 PowerShell 模块的使用、速度和兼容性之间的平衡。

为了使用新的 Exchange Online V2 模块,我们需要确保满足某些先决条件。让我们先深入探讨一下。

先决条件

Exchange Online V2 Cmdlet 有四个先决条件,在安装新模块之前需要满足这些先决条件。您的跳线盒或常规工作站可能已经满足这些先决条件。但是,如果不是,则可能需要安装这些先决条件。它们都不是不寻常的,但都为使用新 PowerShell 模块的管理员提供了更好的 PowerShell 体验。四个先决条件如下:

  • NuGet - 版本 2.8.5 或更高版本
  • PsGallery - 值得信赖的 PS 存储库
  • 包管理 - 需要 v.x
  • PowerShell Get - 应该是 v.x 或更高版本

让我们分解每个组件的安装。

NuGet 只是 Exchange Online V2 PowerShell 模块所依赖的包管理器。它允许微软共享代码并允许管理员下载新模块。如果我们的工作站上缺少此包管理器,我们将看到如图 1 所示的内容:

[玩转系统] 新 Exchange Online V2 Cmdlet 简介

图 1:此消息显示系统上未安装 NuGet

基本安装看起来像这样:

如果我们想验证是否需要安装 NuGet,我们还可以验证安装的版本或者是否安装了任何版本,如下所示:

现在,如果 NuGet 丢失,那么我们运行上面的安装代码,但是如果安装了 NuGet,我们可以使用以前的 cmdlet 强制安装正确的最低版本。

有关 NuGet 的更多信息。

注意,内部版本号一直到 2.12.1,但我们只需要 2.8.3 或更高版本。

PSGallery - 可信存储库

PowerShell 库是存储可供下载的脚本、模块和 DSC 资源的存储库。 Microsoft 托管一个名为 PSGallery 的存储库,其中包含为支持其产品的管理员提供的 PowerShell 资源。

对于 Microsoft Exchange Online PowerShell V2 模块,我们需要访问此存储库才能下载该模块。默认情况下,该存储库可能不可信,因此我们需要确保它是可信的。首先,让我们验证它是否受到我们工作站的信任:

(Get-PSRepository -Name "PSGallery").InstallationPolicy
Set-PSRepository -Name "PSGallery" -InstallationPolicy Trusted
(Get-PSRepository -Name "PSGallery").InstallationPolicy

提示:始终验证更改以防止将来出现任何错误,尤其是对于相关进程。

PackageManagement

除了拥有正确版本的 NuGet 之外,我们还需要确保PackageManagement 也是正确的版本。 PackageManagement 包为 Windows 操作系统提供了统一的包管理系统。因此,它将与我们之前升级的 NuGet 结合使用。另请注意,NuGet 是第一个,PackageManagement 接下来是,因为这是我们需要遵循的升级顺序。

对于PackageManagement,我们需要确保至少有 1.4.5 版本。让我们用 PowerShell 来检查一下:

Get-Package PackageManagement -MinimumVersion 1.4.5

如果PackageManagement未安装,我们将收到如下错误:

[玩转系统] 新 Exchange Online V2 Cmdlet 简介

图 2:错误消息指出 PackageManagement 未安装

为了正确安装PackageManagement,我们可能需要做一些练习。这是因为存在可能导致升级过程出现问题的依赖项。但是,如果一切顺利,这是我们需要安装PackageManagement的唯一一行:

Install-Module PackageManagement -Force -SkipPublisherCheck

[玩转系统] 新 Exchange Online V2 Cmdlet 简介

图 3:由于 PackageManagement 已安装,我们可以通过 PowerShell 对其进行验证

请注意,此包的“源”是我们之前允许的 PowerShell Gallery。

PowerShell 获取

除了之前的包管理软件之外,我们还有一个模块,允许管理员发现、安装和更新 PowerShell 模块、DSC 资源、脚本等。这是安装 EXO V2 模块的最后一个先决条件。

我们如何安装它?首先,我们安装了吗?我们只需要版本 2 或更高版本,因此我们将检查是否安装了主要版本为 2 的模块:

[玩转系统] 新 Exchange Online V2 Cmdlet 简介

图 4:输出表明已安装 cmdlet 的主要版本为“1”

现在,让我们将其升级到至少 2.0:

Install-module PowerShellGet -MinimumVersion 2.0.0.0 -Force -Confirm:$False -SkipPublisherCheck

[玩转系统] 新 Exchange Online V2 Cmdlet 简介

图 5:输出仍然表明主要版本为“1”

等待。什么?现在应该是两个了。发生了什么?我们的机器上的软件包现在更新了吗?

Get-Package PowerShellGet

[玩转系统] 新 Exchange Online V2 Cmdlet 简介

图 6:Get-Package 的输出显示当前版本为 2.2.5

好的。那么,我们有正确的版本,为什么我们的检查中显示 1?这是因为加载的模块是旧的模块。嗯,这是一个简单的解决方法:

[玩转系统] 新 Exchange Online V2 Cmdlet 简介

图 7:删除并再次导入 PowerShellGet 后,我们的提示显示正确的版本

现在我们看到 PowerShellGet 2.x 已加载并可供我们使用。现在开始下载模块:

下载 EXO V2 模块

安装完四个先决条件后,我们现在可以使用与 PowerShell 的任何其他模块相同的方法下载新模块:

Install-Module ExchangeOnlineManagement
Get-InstalledModule ExchangeOnlineManagement

[玩转系统] 新 Exchange Online V2 Cmdlet 简介

图 8:“Get-InstalledModule”的输出显示新的 EXO V2 模块已安装

注意:当您阅读本文时,您的版本可能会有所不同,因为 2.0.4 是撰写本文时的当前版本。然而,在过去一年左右的时间里,这个版本已经改变了多次,如版本历史截图所示:

[玩转系统] 新 Exchange Online V2 Cmdlet 简介

图 9:PowerShell 库中 ExchangeOnlineManagement 的版本历史记录

Exchange Online V2 Cmdlet

现在我们已经满足了先决条件并安装了新模块,这给我们带来了什么?首先我们连线看看微软说的有哪些变化:

Connect-ExchangeOnline

[玩转系统] 新 Exchange Online V2 Cmdlet 简介

图 10:Connect-ExchangeOnline 提供了模块中新旧 cmdlet 的总结

该模块提供了 9 个 cmdlet 的替代品,但也继续提供我们多年来使用的原始 Exchange Online 模块中的其他 700 多个原始 cmdlet。

当我们查看加载的模块时,我们会在列表顶部看到新模块,但我们还会看到最后一个模块中列出的原始 cmdlet(图 11)。

[玩转系统] 新 Exchange Online V2 Cmdlet 简介

图 11:Get-Module 为我们提供了可用模块及其包含的 cmdlet 的概述

免费的 PowerShell 脚本

Microsoft Exchange Online 的 ActionPack

[玩转系统] 新 Exchange Online V2 Cmdlet 简介

GitHub 上免费>

为什么使用 Exchange Online V2 cmdlet?

  1. 减少数据:传统的 PowerShell cmdlet 返回所有数据,即使未显示所有数据。 EXO V2 cmdlet 仅返回数据的子集,这可能会要求管理员确定他们需要什么。
  2. 属性集:PowerShell cmdlet 可以返回的分组数据集。
  3. 速度:与前面的两个示例相结合,它们为九个新 cmdlet 提供了一些额外的速度和可靠性。

选择这些 cmdlet 的原因有两个:最有可能被使用,但也最有可能由于返回的数据量和 Exchange Online 服务器上的负载而变慢或失败。

经营变更

使用这些 cmdlet 时,需要注意的是,我们确实需要了解新参数的语法和正确用法,以便在 Exchange Online 中获取正确的数据。

属性集示例:

旧方法

Get-Mailbox | Where {$_.IsResource -eq 'True'} | Ft Name, Alias, PrimarySMTPAddress, *quota

新的 EXO V2 方法

使用新的 cmdlet,我们需要依赖如下任一 PropertySet:

Get-EXOMailbox -PropertySets Minimum, Resource, Quota | Where {$_.IsResource -eq 'True'} | ft

属性示例:

Get-EXOMailbox -Properties Name,Alias,PrimarySMTPAddress, IsResource, IssueWarningQuota,ProhibitSendQuota, ProhibitSendReceiveQuota | Where {$_.IsResource -eq 'True'} | ft

虽然这提供了相同的结果,但它已经变得相当笨拙。因此,在 Properties 和 PropertySet 之间进行选择应基于需要显示的属性数量。

我们如何判断哪些参数/属性可用于属性集? Get-Help 或 Microsoft Docs 的在线帮助中没有记录它。我们以前面示例中的 Get-EXOMailbox 为例。我们可以看到 cmdlet 的 Get-Help 中列出的所有属性集的列表:

如果我们查找所有配额属性,我们会看到有一个配额属性。使用它可以揭示帐户的许多属性:

Get-EXOMailbox Ted -PropertySets Quota

[玩转系统] 新 Exchange Online V2 Cmdlet 简介

图 12:使用“配额”属性可显示某个帐户的更多详细信息

请注意,有些属性与配额无关,而是邮箱的标识符 - UserPrincipalName、PrimarySMTPAddress 和 Identity。至少报告的属性是什么?让我们回顾一下下面的示例,默认值(未指定 PropertySets)为“Minimum”:

Get-EXOMailbox Ted

[玩转系统] 新 Exchange Online V2 Cmdlet 简介

图 13:未过滤的属性列表

EXO V2 cmdlet 的真实体验

从这些 cmdlet 公开发布以来,我注意到以下几点:

  • 更少的超时 - 在包含 7,000 个邮箱的数据集上,新的 EXO V2 cmdlet 能够查询所有邮箱、查看每个文件夹并在文件夹中查找大量项目 (100k+),而不会超时。对于较旧的 cmdlet,这可能会失败。
  • 速度 - EXO v2 cmdlet 的运行速度确实要快得多。我们使用 Get-MailboxGet-EXOMailbox 执行查询:

    • 获取邮箱 [完整运行,结果不受限制,7,600+ 个邮箱]:

      [玩转系统] 新 Exchange Online V2 Cmdlet 简介

      图 14:使用 Get-Mailbox 的执行时间

    • Get-EXOMailbox [完整运行,结果不受限制,7,600 多个邮箱]:
      请注意,EXO V2 cmdlet 的速度大约是常规 cmdlet 的两倍。您的体验会根据您的环境而有所不同,但一般来说它应该更快且响应更快。

      [玩转系统] 新 Exchange Online V2 Cmdlet 简介

      图 15:使用 Get-EXOMailbox 的执行时间

结论

虽然 ExchangeOnlineManagement PowerShell cmdlet 的准备工作可能看起来有点令人生畏,但此处的脚本将有助于缓解任何安装问题。安装后,您现在可以访问一组强大的 PowerShell cmdlet。虽然作为一名狂热的 PowerShell 用户,作者认为这些 cmdlet 在使用过程中仍然存在一些障碍,但在可靠性和性能方面,它们在某些方面确实更好。此外,微软正在不断投资升级管理员 PowerShell 性能,我们肯定会在未来一两年看到其中的一些进展。

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

取消回复欢迎 发表评论:

关灯