首页 > 解决方案 > 是否可以强制 PowerShell cmdlet 在远程会话中使用 TLS 1.2 运行?

问题描述

我有一个 PowerShell 脚本,通过远程会话将用户从 Skype for Business 移动到团队到 SfB 服务器。它的简短版本是:

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
$SkypeSession = New-PSSession -ConnectionUri $SkypeURI -Credential $MyCredential 
Import-PsSession $SkypeSession -AllowClobber
$url="https://adminau1.online.lync.com/HostedMigration/hostedmigrationService.svc"
Move-CsUser -Identity $UPN -Target sipfed.online.lync.com -MoveToTeams -HostedMigrationOverrideUrl $url -BypassAudioConferencingCheck -Confirm:$False -Credential $MyCredential

这已经运行了很长时间,但就在最近几天,Move-CsUser 开始失败并出现错误:

托管迁移服务 ( https://adminau1.online.lync.com/HostedMigration/HostedMigrationService.svc/OAuth_Bearer ) 未从对 WWW-Authenticate 标头的请求中返回预期的状态代码。

我找不到有关此错误的大量信息,尽管表明它可能与 Microsoft 在 Office 365 中弃用 TLS 1.0 和 1.1 有关。我在脚本中添加了强制 TLS 1.2 的行以尝试解决该问题,但我不要认为该设置会传递到远程会话,所以它没有任何区别。

所以我的问题是,有没有办法强制远程 PowerShell 会话中的命令使用 TLS 1.2 运行?环境中有很多不同的 SfB 服务器,很难设置脚本直接在每个服务器上运行。

标签: powershelltls1.2

解决方案


推荐阅读