PowerShell连接SharePoint站点报远程主机强制关闭连接错误求助
你遇到的连接报错本质是本地客户端与SharePoint服务端TLS握手失败被服务端主动断开连接。近期微软确实收紧了SharePoint Online的传输加密规则,已全面禁止TLS 1.0、TLS 1.1协议连接,同时下线了一批安全性较低的加密套件,旧配置的客户端会被直接拦截。
具体解决步骤如下:
补全全架构.NET框架注册表配置
你之前修改的仅为64位.NET框架的配置项,若使用32位PowerShell运行脚本,需额外添加32位路径的配置,完整注册表配置如下:[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727] "SystemDefaultTlsVersions"=dword:00000001 "SchUseStrongCrypto"=dword:00000001 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319] "SystemDefaultTlsVersions"=dword:00000001 "SchUseStrongCrypto"=dword:00000001 [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v2.0.50727] "SystemDefaultTlsVersions"=dword:00000001 "SchUseStrongCrypto"=dword:00000001 [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319] "SystemDefaultTlsVersions"=dword:00000001 "SchUseStrongCrypto"=dword:00000001注意:修改注册表后需重启整台服务器生效
脚本运行前强制指定PowerShell会话TLS版本
部分场景下系统全局配置不会同步到当前PowerShell会话,可在执行SharePoint连接命令前先运行如下代码,强制启用TLS 1.2及以上协议:# 同时兼容TLS 1.2和TLS 1.3,PowerShell 5.1仅支持到TLS 1.2 [Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::SecurityProtocol -bor [Net.SecurityProtocolType]::Tls12 -bor [Net.SecurityProtocolType]::Tls13更新SharePoint相关PowerShell模块到最新版本
低于16.0.23812.12000版本的SharePoint Online管理模块、低于1.12.0版本的PnP PowerShell模块均存在硬编码旧加密协议的问题,即便修改系统配置也无法生效,可执行如下命令更新到最新版:# 更新SPO管理模块 Install-Module -Name Microsoft.Online.SharePoint.PowerShell -Force -AllowClobber # 更新PnP PowerShell模块 Install-Module -Name PnP.PowerShell -Force -AllowClobber调整系统TLS加密套件优先级
你之前启用的TLS_DHE_DSS_WITH_AES_256_CBC_SHA属于弱加密套件,已被SharePoint服务端禁用,建议优先启用微软官方推荐的现代加密套件,且将优先级调高:# 启用高优先级安全加密套件 Enable-TlsCipherSuite -Name "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384" -Position 0 Enable-TlsCipherSuite -Name "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256" -Position 1修改后重启服务器生效。
内容的提问来源于stack exchange,提问作者G_S
相关产品推荐
相关产品推荐

