Исключительные результаты запроса 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 ответ1

1

Я в замешательстве и не знаю, что делать.

Windows Server 2012 R2 поддерживает только Active Directory Federation Services 3.0 , не поддерживает Active Directory Federation Services 2.0

Источник

Get-AdfsSystemInformation является частью проекта ADFS Management Tools с открытым исходным кодом и содержит небольшую программную ошибку. Get-AdfsSystemInformation вызывает Get-AdfsVersionEx, который использует $ OSVersion, чтобы определить, будет ли он возвращать 2 или 3 в зависимости от обнаруженной версии операционной системы. Поскольку Get-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;
        }

Какие-либо предложения?

Вы можете исправить код самостоятельно или сообщить о проблеме в Microsoft через связанный проект GitHub. В моем исследовании кажется, что AD FS на Windows Server 2012 R2 - это просто AD FS Windows Server 2012 R2 не ADFS 3.0. Аналогично, AD FS в Windows Server 2016 - это 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, но поддерживают только свою конкретную версию. Миграция на следующую версию возможна и хорошо документирована (включает миграцию ОС на соответствующую ОС), но в противном случае невозможна.

Я думаю, что вы говорите, что версия AD FS неправильно сообщается Get-AdfsSystemInformation, которую вы правильно указали, является частью диагностического инструмента с открытым исходным кодом, доступного здесь. Но Get-AdfsVersionEx возвращает 2.0, что поддерживает оценку инструмента.

Я действительно говорю это. Причина, по которой модуль не работает, заключается в том, что [Environment]::OSVersion.Version возвращает одинаковое значение как для Windows Server 2012 и для Windows Server 2012 R2 .

Свойство OSVersion сообщает об одном и том же номере версии (6.2.0.0) для Windows 8 и Windows 8.1 и об одном и том же номере основной и вспомогательной версии для Windows 10.

Источник: Окружающая среда.OSVersion Property

Этот документ противоречит этому: MS Docs. OSName следует указывать как Windows Server 2012. Поэтому OSName, как сообщается, имеет значение false, а версия 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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .