行业资讯
📅 2026/8/22 14:11:42
为什么Remote PowerShell正在被淘汰:理解Exchange V3模块的REST API连接迁移(office-docs-powershell)
为什么Remote PowerShell正在被淘汰理解Exchange V3模块的REST API连接迁移office-docs-powershell【免费下载链接】office-docs-powershellPowerShell Reference for Office Products - Short URL: aka.ms/office-powershell项目地址: https://gitcode.com/gh_mirrors/of/office-docs-powershell本文基于官方文档库 office-docs-powershellOffice PowerShell Reference帮助你彻底理解Remote PowerShell 连接方式正在被淘汰的原因以及 Exchange Online PowerShell 如何通过Exchange Online PowerShell V3 模块EXO V3 模块迁移到REST API 连接。无论你是 Exchange 管理员还是运维脚本开发者这条迁移路线都直接决定你的脚本还能不能跑、连接还安不安全。只需 5 分钟带你完成从原理到实操的完整理解。为什么 Remote PowerShell 正在被淘汰过去连接 Exchange Online PowerShell标准姿势是通过 WinRM 建立一条远程 PowerShell 会话。这套老方案有三个绕不开的短板短板具体表现 安全性差依赖客户端 WinRM 开启 Basic 认证头来传输 OAuth 令牌属于最弱的连接方式 性能低每次连接都要在客户端搭建 PowerShell runspace运行空间开销大、启动慢⚡ 可靠性弱网络抖动、大查询耗时长时容易失败没有内置重试机制正因如此微软先后发布了弃用公告Exchange Online PowerShell 的 Remote PowerShellRPS协议于 2022 年 12 月宣布结束支持Security Compliance PowerShell 的 RPS 协议于 2023 年 5 月跟进公告。换句话说Basic 认证远程 PowerShell连接已经成为历史官方文档中相关章节也只保留作历史参考。REST API 连接安全、可靠、性能的三维升级EXO V3 模块3.0.0 及更高版本带来了根本性改变所有 cmdlet 都改由 REST API 直接驱动不再建立远程 PowerShell 会话。官方对三种连接方式的对比如下维度Remote PowerShell cmdletsGet-EXO* cmdletsREST API cmdlets安全性最弱高高性能低高中可靠性最弱高高功能完整度全部参数和输出属性部分参数和属性全部参数和属性对普通用户来说最省心的一点是REST API 的 cmdlet 名称和参数与原来完全一致你旧脚本里的Get-Mailbox、Set-TransportRule等命令基本无需改动换个模块版本就能继续用。快速上手3 步完成 Exchange V3 模块迁移第 1 步安装或更新模块从 PowerShell Gallery 安装最新版本的 ExchangeOnlineManagement 模块即可Windows 上 REST API 连接还需要 PowerShellGet 与 PackageManagement 模块Install-Module -Name ExchangeOnlineManagement第 2 步使用现代身份验证连接Connect-ExchangeOnline -UserPrincipalName admincontoso.com弹出登录窗口输入密码启用 MFA 的账户完成多因素验证即可完成连接全程不需要再折腾 WinRM 配置。第 3 步确认连接类型REST API 连接不会出现在传统的Get-PSSession里应改用模块自带的Get-ConnectionInformationcmdlet 查看Get-ConnectionInformation看到返回的连接信息对象就说明你已经跑在 REST API 通道上了。完整的连接细节可参考官方文档 connect-to-exchange-online-powershell.md。迁移后必知的 4 个坑1. Invoke-Command 不再工作很多老脚本习惯用Invoke-Command -Session $Session -ScriptBlock {...}指定远程会话执行命令它在 REST API 连接中完全不可用。好消息是多数场景可以简化为直接运行 cmdlet官方文档按场景给出了完整的替代写法见 invoke-command-workarounds-rest-api.md。2. 多连接管理换一套命令同一窗口开多个连接时以前靠Get-PSSession区分现在改用Connect-ExchangeOnline的Prefix参数如-Prefix C1、-Prefix C2再配合Get-ConnectionInformation筛选即可分别操作不同连接。3. 批量操作注意 15 分钟超时REST API 命令有 15 分钟超时限制。例如一次性向万人邮件组更新成员可能超时建议拆成Update-DistributionGroupMember处理前 5000 个、再用循环逐个Add-DistributionGroupMember补齐剩余成员。4. 善用 Get-EXO* 加速命令模块内置 9 个Get-EXO*专属 cmdlet如 Get-EXOMailbox、Get-EXORecipient配合PropertySets属性集按需取数在批量拉取成千上万条数据时速度优势明显详见 cmdlet-property-sets.md 与 filters-v2.md。免密码自动化App-only 认证与托管标识REST API 连接还解锁了一个老方案做不到的能力——无值守脚本安全运行。过去后台任务只能把账号密码存本地风险极高现在有两种推荐做法App-only 认证证书认证在 Microsoft Entra 中注册应用、上传证书并分配目录角色脚本即可用证书令牌静默连接全程无需人工登录。Azure 托管标识脚本跑在 Azure 自动化账户或 VM 上时直接Connect-ExchangeOnline -ManagedIdentity -Organization yourdomain.onmicrosoft.com连证书都不用管理。注册应用的操作界面如下Exchange Online PowerShell REST API 迁移中的 App-only 认证配置证书上传成功后界面会显示绿色对勾确认Exchange V3 模块证书认证配置完成最后一步把应用分配到对应的管理员角色认证通过后 cmdlet 权限即按 RBAC 生效Remote PowerShell 到 REST API 迁移后的角色分配若在 Azure 自动化中使用托管标识可先记下自动化账户的资源 ID供后续配置授权参考Azure 托管标识连接 Exchange PowerShell 的入口完整的配置步骤分别见 app-only-auth-powershell-v2.md 和 connect-exo-powershell-managed-identity.md。延伸阅读去哪看完整官方文档本文所有结论均出自本仓库的官方文档核心文件路径如下V3 模块总览与 REST API 连接详解exchange-online-powershell-v2.md版本更新日志各版本新增能力一览whats-new-in-the-exo-module.md连接操作指南connect-to-exchange-online-powershell.md连接与认证 cmdlet 参考Connect-ExchangeOnline.md、Get-ConnectionInformation.md如需查阅全部文档源码可以克隆本仓库git clone https://gitcode.com/gh_mirrors/of/office-docs-powershell概念性文档集中在 exchange/docs-conceptual/ 目录各 cmdlet 的参数级参考文档在 exchange/exchange-ps/exchange/ 目录迁移遇到问题时按图索骥即可。【免费下载链接】office-docs-powershellPowerShell Reference for Office Products - Short URL: aka.ms/office-powershell项目地址: https://gitcode.com/gh_mirrors/of/office-docs-powershell创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考