PowerShell 查询的摘录结果:
PS C:\Windows\system32> Get-AdfsSystemInformation
OSVersion : 6.2.9200.0
OSName : Microsoft Windows Server 2012 R2 Standard
MachineType : VMware Virtual Platform
AdfsVersion : 2.0
我读过几处地方,AD FS 3.0 符合此声明:“文件“C:\Windows\ADFS\FSConfig.exe”不存在(但文件夹“C:\Windows\ADFS”存在)”。对于我的服务器来说,这是正确的。
PS C:\Windows\system32> [environment]::OSVersion.Version
Major Minor Build Revision
----- ----- ----- --------
6 2 9200 0
查找您的参考资料,Ramhound,上述命令并没有区分 2012 和 2012 R2,尽管一些 Microsoft 文档是这么说的。
PS C:\Windows\system32> (Get-WmiObject -class Win32_OperatingSystem).Caption
Microsoft Windows Server 2012 R2 Standard
答案1
我很困惑,不知道该怎么办。
Windows Server 2012 R2 仅支持Active Directory Federation Services 3.0
,不支持,Active Directory Federation Services 2.0
获取 AdfsSystemInformation是开源的一部分ADFS 管理工具项目,并且它有一个小的编程错误。 获取 AdfsSystemInformation调用获取 AdfsVersionEx它使用 $OSVersion 来确定是否根据检测到的操作系统版本返回 2 或 3。由于获取 AdfsVersionEx用于[Environment]::OSVersion.Version
确定操作系统的版本,而不是正确的方法,它返回一个不正确的值6.2.9200.0。
这意味着由于以下代码,代码返回的值为 2 而不是 3。
If ($OSVersion.Major -eq 6)
{
# Windows 2012 R2
If ($OSVersion.Minor -ge 3)
{
return $adfs3;
}
有什么建议么?
您可以自行修复代码,也可以报告问题通过关联的 GitHub 项目向 Microsoft 提供。根据我的研究,Windows Server 2012 R2 上的 AD FS 似乎根本不是AD FS Windows Server 2012 R2
ADFS 3.0。同样,Windows Server 2016 上的 AD FS 也是ADFS Windows Server 2016
。
我还注意到整个Get-AdfsVersionEx
函数存在缺陷,因为根据我的研究,当前版本的 ADFS 实际上不是 3.0。因此,返回 Windows 10/Server 2016 的值实际上目前是不正确的。返回值Windows Server 2012
也将是不正确的。
Windows Server 2012
、Windows Server 2012 R2
和Windows Server 2016
都运行在不同版本的 Active Directory 联合身份验证服务上,但仅支持其特定版本。迁移到下一个版本是可能的,并且有据可查(涉及将操作系统迁移到相关操作系统),但除此之外是不可能的。
我认为您说的是 Get-AdfsSystemInformation 错误地报告了 AD FS 版本,您正确地透露了它是开源诊断工具的一部分,可在此处获得。但是,Get-AdfsVersionEx 返回 2.0,这支持该工具的评估。
我确实这么说过。模块无法正常工作的原因是,对和[Environment]::OSVersion.Version
都返回相同的值。Windows Server 2012
Windows Server 2012 R2
OSVersion 属性报告 Windows 8 和 Windows 8.1 的相同版本号 (6.2.0.0),以及 Windows 10 的相同主版本号和次版本号。
本文档与 MS Docs 相矛盾。OSName 应报告为 Windows Server 2012。因此,报告的 OSName 是错误的,而 ADFS 版本是正确的。
我根据您提供的信息给出了整个答案。您提供的信息表明构建是6.2.9200.0而不是正确的值。
PS C:\Windows\system32> [environment]::OSVersion.Version Major Minor Build Revision ----- ----- ----- -------- 6 2 9200 0
即使您运行的是 Windows Server 2012 R2,报告的版本也会导致模块报告错误的版本Active Directory Federation Services
。 顺便说一下,你的服务器运行的是Active Directory Federation Services
3.0