卸载 Windows PowerShell 2.0 后的事件 ID 258“无法确定已安装的文件”

应用对象
Exchange Server 2016 Enterprise Edition Exchange Server 2016 Standard Edition

症状

在 Microsoft Exchange Server 2016 环境中,卸载 Windows PowerShell 版本 2.0 并改为安装更高版本的 PowerShell 后,无法成功打开 Exchange 命令行管理程序,并收到以下错误消息:

注意

New-PSSession:[ServerName] 处理来自远程服务器 ServerName 的数据失败,并显示
以下错误消息:[ClientAccessServer=ServerName,BackEndServer=ServerName,RequestId=RequestId,TimeStamp=DateTime]
[AuthZRequestId=AuthZRequestId][FailureCategory=AuthZ-SetupVersionInformationCorruptException]
无法从注册表项确定已安装的文件版本
“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine”。 有关详细信息,请在线查看
about_Remote_Troubleshooting帮助主题。
At line:1 char:1(在第 1 行第 1 个字符处)
+ New-PSSession -ConnectionURI “$connectionUri” -ConfigurationName Micr ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : OpenError: (System.Manageme....RemoteRunspace:RemoteRunspace) [New-PSSession]、PSRemotin
gTransportException
+ FullyQualifiedErrorId:IncorrectProtocolVersion,PSSessionOpenFailed

还会记录以下事件日志条目:

注意

日志名称:应用程序
源:MSExchange RBAC
日期: DateTime
事件 ID:258
任务类别:RBAC
级别:错误
关键字:经典
用户:不适用
计算机: ComputerName
说明:
(进程 8820,PID w3wp.exe) “RemotePS 公共 API Func GetApplicationPrivateData 引发异常Microsoft.Exchange.Diagnostics.SetupVersionInformationCorruptException:无法从注册表项”HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine“确定已安装的文件版本。

原因

出现此问题的原因是更高版本的 PowerShell 的注册表路径已更改。

解决方法

卸载 Windows PowerShell 2.0 后,可以重新添加HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine注册表项。 最快的方法是从 Microsoft TechNet 库中获取注册表文件: https://gallery.technet.microsoft.com/Exchange-2016-CU1-7c843cb0

解决方法

若要解决此问题,请安装适用于 Exchange Server 2016 的累积更新 9适用于 Exchange Server 2016 的更高版本累积更新

状态

Microsoft 已确认在 "适用于" 部分中所列的 Microsoft 产品中存在问题。

参考资料

了解 Microsoft 用于描述软件更新的术语