将 PowerShell 连接到 Office 365:逐步教程

连接到 Office 365 使用 PowerShell 有时可能会很麻烦。您必须不断记住不同的命令 模块。让我们改变这种情况。

在这篇文章中,您将学习如何连接 PowerShell 到 Office 365。您将通过使用 Azure AD PowerShell for Graph 模块和 Azure Active Directory 模块 for Windows PowerShell 来实现这一点。

《Microsoft 365备份入门指南》电子书通过概述 Microsoft 365 中的开箱即用安全功能来解决数据安全挑战。 获取电子书

先决条件

要运行本教程中的任何示例,请确保您事先具备以下条件:

您可以从 Microsoft 网站下载 PowerShell 7。

使用 PowerShell 连接到 Office 365。

Office 365 包括广泛的服务,包括但不限于:

  • Azure Active Directory。
  • Exchange Online。
  • Microsoft Teams。

Office 365 服务都可以通过一个称为 https://portal.microsoft.com 的通用登录网站访问。此门户网站可让您访问域设置、租户配置、计费和管理用户设置。但如果您需要访问 Office 365 服务(如 Exchange Online 或 Microsoft Teams),则需要在门户中单击服务名称,然后会带您进入服务管理中心,如 Exchange 管理中心等。

每个服务都有自己的管理中心门户和 PowerShell 模块。因此,如果您需要连接到 Exchange Online 来管理用户,则需要下载 Exchange Online PowerShell 模块。如果要管理 Teams 上的用户,则需要下载 Teams 模块,还需要 Azure Active Directory PowerShell 模块。

下载并安装 Office 365 PowerShell 模块

一个简单的方法是使用 PowerShell 自身来查找、下载和安装 PowerShell 模块。让我们尝试获取 Exchange Online PowerShell 模块。首先打开 PowerShell,并键入以下 PowerShell 命令行,以查找与 Exchange Online 相关的可用模块。

Find-Module Exchangeonline*
Fiding PowerShell Module

您可以使用通配符来搜索所有相关的 PowerShell 模块。

使用Find-Module有助于在PowerShell库中搜索模块,您可能会找到多个PowerShell模块。我们正在寻找的是ExchangeOnlineManagement。要下载和安装模块,请使用install-module cmdlet

如果没有错误返回,那么您可以开始使用该模块了。下一步是开始使用该模块

自PowerShell 3以来,PowerShell可以在您首次运行与已安装模块相关的任何命令时自动导入该模块。

下载模块的相同方法适用于任何其他模块,您只需要知道模块名称并下载即可。

连接PowerShell到Office 365服务

每个Office 365都有其自己的PowerShell模块,这使得跨服务管理有点具有挑战性。通常,任何Office 365模块都有类似的cmdlet Connect-*ServiceName*

  • 连接到Exchange Online,您可以使用cmdletConnect-ExchangeOnline,该cmdlet位于ExchangeOnlineManagement模块中
  • 连接到Microsoft Teams,请使用以下cmdlet Connect-MicrosoftTeams,该cmdlet位于MicrosoftTeams模块中
  • 要使用Azure AD PowerShell for Graph连接到Azure AD,请使用Connect-AzureAD,该cmdlet位于AzureAD模块中
  • 连接到Sharepoint Online,请使用Connect-PnPOnline,该cmdlet位于Microsoft.Online.SharePoint.PowerShell模块中。
  • 连接到Azure AD的Windows PowerShell模块,使用Connect-MsolService,该命令在MSOnline模块中可用

PowerShell Core不支持Azure AD的Windows PowerShell模块和带有Msol在其名称中的cmdlet。

为什么有两个Azure AD模块?

在使用PowerShell操作Office 365时,您可能需要使用两个不同的模块。您将使用Azure Active Directory PowerShell for Graph,模块名称为AzureAD,以及Azure Active Directory Module for Windows PowerShell,模块名称为MSOnline

AzureADMSOnline都允许您使用PowerShell操作Office 365服务,那么为什么会有两个?AzureADMSOnline的继任者,据我所知,它将在某个时候取代MSOnline。所有新功能都在AzureAD模块中,但与MSOnline模块仍然存在一些重叠。

您会发现在MSOnline模块中仍然存在管理用户、组和许可证管理等任务。

如果您需要通过多重身份验证连接到Exchange Online,Microsoft提供了一份很好的指南,标题为Connect to Exchange Online PowerShell Using Multi-Factor Authentication

使用PowerShell连接到多个Office 365服务

Office 365 PowerShell模块看起来像是一个很大的列表,对吧?!但是通过使用以下PowerShell代码,您可以在同一个控制台连接到所有服务,然后在同一个控制台中执行所有任务。

$CloudCred=Get-Credential
$TenantName="Test for test.onmicrosoft.com"
Connect-AzureAD -Credential $CloudCred
Connect-PnPOnline -Url https://$TenantName.sharepoint.com -Credentials $CloudCred
Connect-ExchangeOnline -Credential $CloudCred
Connect-MicrosoftTeams -Credential $CloudCred

当连接到Sharepoint时,您可能会遇到以下错误

Connect-PnPOnline:AADSTS65001: 用户或管理员尚未同意使用ID为‘31359c7f-bd7e-8888-86db-fdb8c937548e’,名称为‘PnP Management Shell’的应用程序。为此用户和资源发送交互式授权请求。跟踪ID:b9913a0b-b47d-4ffe-bdc7-70ed81143000

要解决此问题,请运行Register-PnPManagementShellAccess cmdlet,输入用户名和密码,然后确保选中“代表您的组织同意

Consent on behalf of your organization

始终确保您的模块是最新的,因为新功能和兼容性会经常添加,现在大多数Office 365 PowerShell模块都支持多重身份验证。

《Microsoft 365备份入门指南》电子书通过概述Microsoft 365中的开箱即用安全功能来解决数据安全挑战。获取电子书

摘要

Office 365拥有许多服务,但幸运的是,您可以使用PowerShell管理所有服务。一旦您安装了两个模块并使用Connect命令连接,您就可以开始使用PowerShell管理Office 365了!

Source:
https://adamtheautomator.com/how-to-connect-powershell-to-office-365/