Ввод-PSSession на localhost не выполняется

Вопрос или проблема

Я пытаюсь выполнить следующую команду Powershell:

Enter-PSSession -ComputerName localhost

Сервер работает на Windows Server 2008 R2 SP1 64-разрядной версии. Сервер находится в домене. Я вошел в систему под учетной записью администратора домена. Сессия powershell была запущена от имени администратора.

Я получаю следующее сообщение об ошибке от самого powershell:

PS C:\Users\Daniel> Enter-PSSession -Computername localhost
Enter-PSSession : Не удалось подключиться к удаленному серверу localhost по следующему сообщению об ошибке: Клиент не может
подключиться к назначению, указанному в запросе. Убедитесь, что служба на назначении работает и принимает запросы. Обратитесь к журналам и документации для службы WS-Management, работающей на назначении, чаще всего IIS или WinRM. Если назначение — это служба WinRM, выполните следующую команду на назначении, чтобы
проанализировать и настроить службу WinRM: "winrm quickconfig". Для получения дополнительной информации смотрите раздел
about_Remote_Troubleshooting.
В строке:1 символ:1
+ Enter-PSSession -Computername localhost
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (localhost:String) [Enter-PSSession], PSRemotingTransportException
    + FullyQualifiedErrorId : CreateRemoteRunspaceFailed

PS C:\Users\Daniel>

Используя Просмотр событий, мне удалось найти следующие две ошибки в журналах Приложений и служб > Microsoft > Windows > Windows Remote Management > Оперативный

Общее:
    Клиент не может подключиться к назначению, указанному в запросе. Убедитесь, что служба на назначении работает и принимает запросы. Обратитесь к журналам и документации для службы WS-Management, работающей на назначении, чаще всего IIS или WinRM. Если назначение — это служба WinRM, выполните следующую команду на назначении, чтобы проанализировать и настроить службу WinRM: "winrm quickconfig".
Детали:
    <Событие xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
        <Система>
            <Поставщик Имя="Microsoft-Windows-WinRM" Guid="{A7975C8F-AC13-49F1-87DA-5A984A4AB417}" /> 
            <IDСобытия>161</IDСобытия> 
            <Версия>0</Версия> 
            <Уровень>2</Уровень> 
            <Задача>7</Задача> 
            <Опкод>0</Опкод> 
            <Ключевые слова>0x400000000000000a</Ключевые слова> 
            <ВремяСоздания СистемноеВремя="2016-08-17T23:10:40.766446000Z" /> 
            <IDЗаписиСобытия>56814</IDЗаписиСобытия> 
            <Корреляция IDДеятельности="{0190DC40-F800-0000-3291-5DB0DAF8D101}" /> 
            <Исполнение IDПроцесса="7888" IDПотока="7912" /> 
            <Канал>Microsoft-Windows-WinRM/Оперативный</Канал> 
            <Компьютер>FNZAS2.flow.net.nz</Компьютер> 
            <Безопасность IDПользователя="S-1-5-21-2875926586-1071052228-4104636349-1151" /> 
        </Система>
        <ДанныеСобытия>
            <Данные Имя="authFailureMessage">Клиент не может подключиться к назначению, указанному в запросе. Убедитесь, что служба на назначении работает и принимает запросы. Обратитесь к журналам и документации для службы WS-Management, работающей на назначении, чаще всего IIS или WinRM. Если назначение — это служба WinRM, выполните следующую команду на назначении, чтобы проанализировать и настроить службу WinRM: "winrm quickconfig".</Данные> 
        </ДанныеСобытия>
    </Событие>   

Общее:
    Операция WSMan CreateShell завершилась неудачей, код ошибки 2150858770
Детали:
    <Событие xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
        <Система>
            <Поставщик Имя="Microsoft-Windows-WinRM" Guid="{A7975C8F-AC13-49F1-87DA-5A984A4AB417}" /> 
            <IDСобытия>142</IDСобытия> 
            <Версия>0</Версия> 
            <Уровень>2</Уровень> 
            <Задача>10</Задача> 
            <Опкод>2</Опкод> 
            <Ключевые слова>0x4000000000000002</Ключевые слова> 
            <ВремяСоздания СистемноеВремя="2016-08-17T23:10:40.766446000Z" /> 
            <IDЗаписиСобытия>56816</IDЗаписиСобытия> 
            <Корреляция IDДеятельности="{0190DC40-F800-0000-2F91-5DB0DAF8D101}" /> 
            <Исполнение IDПроцесса="7888" IDПотока="7912" /> 
            <Канал>Microsoft-Windows-WinRM/Оперативный</Канал> 
            <Компьютер>FNZAS2.flow.net.nz</Компьютер> 
            <Безопасность IDПользователя="S-1-5-21-2875926586-1071052228-4104636349-1151" /> 
        </Система>
        <ДанныеСобытия>
            <Данные Имя="operationName">CreateShell</Данные> 
            <Данные Имя="errorCode">2150858770</Данные> 
        </ДанныеСобытия>
    </Событие>

Я пробовал довольно много способов, чтобы проверить все. Вот еще несколько длинных выводов powershell, чтобы показать часть моего рабочего процесса на данный момент.

PS C:\Users\Daniel> $PSVersionTable.PSVersion

Основная  Минорная  Сборка  Ревизия
-----  -----  -----  --------
4      0      -1     -1


PS C:\Users\Daniel> winrm quickconfig
Служба WinRM уже запущена на этом компьютере.
WinRM уже настроен для удаленного управления на этом компьютере.

PS C:\Users\Daniel> Enable-PSRemoting
Быстрая конфигурация WinRM
Выполняется команда "Set-WSManQuickConfig", чтобы включить удаленное управление этим компьютером с использованием
службы Windows Remote Management (WinRM).
 Это включает в себя:
    1. Запуск или перезапуск (если уже запущен) службы WinRM
    2. Установка типа запуска службы WinRM в автоматический
    3. Создание слушателя для принятия запросов на любом IP-адресе
    4. Включение исключений правил брандмауэра Windows для входящих WS-Management трафика (только для http).

Хотите продолжить?
[Y] Да  [A] Да для всего  [N] Нет  [L] Нет для всего  [S] Приостановить  [?] Помощь (по умолчанию "Y"): A
WinRM уже настроен для получения запросов на этом компьютере.
WinRM уже настроен для удаленного управления на этом компьютере.

Подтвердить
Вы уверены, что хотите выполнить это действие?
Выполнение операции "Set-PSSessionConfiguration" на цели "Имя: microsoft.powershell SDDL:
O:NSG:BAD:P(A;;GA;;;BA)S:P(AU;FA;GA;;;WD)(AU;SA;GXGW;;;WD). Это позволяет выбранным пользователям удаленно выполнять команды Windows PowerShell на этом компьютере.".
[Y] Да  [A] Да для всего  [N] Нет  [L] Нет для всего  [S] Приостановить  [?] Помощь (по умолчанию "Y"): A

PS C:\Users\Daniel> Enable-PSRemoting -force
WinRM уже настроен для получения запросов на этом компьютере.
WinRM уже настроен для удаленного управления на этом компьютере.

PS C:\Users\Daniel> winrm get winrm/config
Конфигурация
    MaxEnvelopeSizekb = 500
    MaxTimeoutms = 60000
    MaxBatchItems = 32000
    MaxProviderRequests = 4294967295
    Клиент
        NetworkDelayms = 5000
        URLPrefix = wsman
        AllowUnencrypted = true [Источник="GPO"]
        Auth
            Basic = true [Источник="GPO"]
            Digest = true
            Kerberos = true
            Negotiate = true
            Certificate = true
            CredSSP = true [Источник="GPO"]
        DefaultPorts
            HTTP = 5985
            HTTPS = 5986
        TrustedHosts = *
    Служба
        RootSDDL = O:NSG:BAD:P(A;;GA;;;BA)(A;;GR;;;IU)S:P(AU;FA;GA;;;WD)(AU;SA;GXGW;;;WD)
        MaxConcurrentOperations = 4294967295
        MaxConcurrentOperationsPerUser = 1500
        EnumerationTimeoutms = 240000
        MaxConnections = 300
        MaxPacketRetrievalTimeSeconds = 120
        AllowUnencrypted = false
        Auth
            Basic = true [Источник="GPO"]
            Kerberos = true
            Negotiate = true
            Certificate = false
            CredSSP = true [Источник="GPO"]
            CbtHardeningLevel = Relaxed
        DefaultPorts
            HTTP = 5985
            HTTPS = 5986
        IPv4Filter [Источник="GPO"]
        IPv6Filter [Источник="GPO"]
        EnableCompatibilityHttpListener = false
        EnableCompatibilityHttpsListener = false
        CertificateThumbprint
        AllowRemoteAccess = true [Источник="GPO"]
    Winrs
        AllowRemoteShellAccess = true [Источник="GPO"]
        IdleTimeout = 7200000
        MaxConcurrentUsers = 10
        MaxShellRunTime = 2147483647
        MaxProcessesPerShell = 25
        MaxMemoryPerShellMB = 1000
        MaxShellsPerUser = 30

PS C:\Users\Daniel> winrm e winrm/config/listener
Слушатель [Источник="GPO"]
    Адрес = *
    Транспорт = HTTP
    Порт = 5985
    Имя хоста
    Включен = true
    URLPrefix = wsman
    CertificateThumbprint
    ListeningOn = null

PS C:\Users\Daniel> get-service WinRM

Статус   Имя               Отображаемое имя
------   ----               -----------
Запущен  WinRM              Удаленное управление Windows (WS-Management)...

PS C:\Users\Daniel> winrm get wmicimv2/Win32_Service?Name=WinRM
Win32_Service
    AcceptPause = false
    AcceptStop = true
    Caption = Удаленное управление Windows (WS-Management)
    CheckPoint = 0
    CreationClassName = Win32_Service
    Description = Служба удаленного управления Windows (WinRM) реализует протокол WS-Management для удаленного управления.
 WS-Management — это стандартный протокол веб-сервисов, используемый для удаленного программного и аппаратного управления. Служба WinRM
прослушивает сеть для запросов WS-Management и обрабатывает их. Служба WinRM нуждается в конфигурации слушателя с
помощью инструмента командной строки winrm.cmd или через групповые политики, чтобы иметь возможность прослушивать сеть. Служба WinRM
предоставляет доступ к данным WMI и позволяет собирать события. Сбор и подписка на события требуют, чтобы
служба работала. Сообщения WinRM используют HTTP и HTTPS в качестве транспортных протоколов. Служба WinRM не зависит от IIS, но
предварительно настроена для совместного использования порта с IIS на одной машине.  Служба WinRM резервирует префикс URL /wsman. Чтобы предотвратить конфликты с IIS, администраторам следует убедиться, что все веб-сайты, размещенные на IIS, не используют префикс URL /wsman.
    DesktopInteract = false
    Отображаемое имя = Удаленное управление Windows (WS-Management)
    ErrorControl = Нормальный
    ExitCode = 0
    InstallDate = null
    Имя = WinRM
    PathName = C:\Windows\System32\svchost.exe -k NetworkService
    ProcessId = 936
    ServiceSpecificExitCode = 0
    ServiceType = Share Process
    Started = true
    StartMode = Auto
    StartName = NT AUTHORITY\NetworkService
    State = Running
    Status = OK
    SystemCreationClassName = Win32_ComputerSystem
    SystemName = FNZAS2
    TagId = 0
    WaitHint = 0

PS C:\Users\Daniel> winrm id
IdentifyResponse
    ProtocolVersion = http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd
    ProductVendor = Microsoft Corporation
    ProductVersion = ОС: 6.1.7601 SP: 1.0 Stack: 3.0
    SecurityProfiles
        SecurityProfileName = http://schemas.dmtf.org/wbem/wsman/1/wsman/secprofile/http/basic, http://schemas.dmtf.org/
wbem/wsman/1/wsman/secprofile/http/spnego-kerberos

PS C:\Users\Daniel> Enter-PSSession -ComputerName localhost
Enter-PSSession : Не удалось подключиться к удаленному серверу localhost по следующему сообщению об ошибке: Клиент не может
подключиться к назначению, указанному в запросе. Убедитесь, что служба на назначении работает и принимает запросы. Обратитесь к журналам и документации для службы WS-Management, работающей на назначении, чаще всего IIS или WinRM. Если назначение — это служба WinRM, выполните следующую команду на назначении, чтобы
проанализировать и настроить службу WinRM: "winrm quickconfig". Для получения дополнительной информации смотрите раздел
about_Remote_Troubleshooting.
В строке:1 символ:1
+ Enter-PSSession -ComputerName localhost
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (localhost:String) [Enter-PSSession], PSRemotingTransportException
    + FullyQualifiedErrorId : CreateRemoteRunspaceFailed

PS C:\Users\Daniel>    

Я также пробовал перезапустить службу WinRM, а также перезапустить весь сервер. По-прежнему получаю те же ошибки.

Легко пропустить. На мой (неотчетливый) взгляд, второе сообщение об ошибке в Просмотре событий кажется значимым:

Операция WSMan CreateShell завершилась неудачей, код ошибки 2150858770

Я нашел этот код ошибки в другом вопросе на Server Fault, но ответы отсутствуют.

Мне удалось найти аналогичную проблему здесь. Я попробовал MaxFieldLength и MaxRequestBytes, предложенные Arthur_Li, но это не решило проблему для меня.

Этот код ошибки может быть десятичным, поэтому я попытался преобразовать его в шестнадцатеричный и поискать шестнадцатеричный код вместо этого, но не нашел ничего больше, чем основной код ошибки уже обнаружил.

Я совершенно сбит с толку в этот момент. Я настраивал удаленное управление PowerShell на других серверах ранее без таких проблем.

Один совет, который я получил: “Перестаньте использовать 2008 R2. Обновитесь до чего-то более современного.” Мы планировали сделать это в течение следующих шести месяцев в любом случае. Но это не то, что мы сможем реализовать до конца сентября как минимум.

Я могу обойти это, войдя в систему на машинах, загрузив скрипты развертывания и пакет самостоятельно и запустив их вручную. Но это как-то подрывает цель автоматизированного процесса развертывания в первую очередь.

Буду признателен за любую помощь.


ОБНОВЛЕНИЕ #1

Пытаюсь удалить, а затем восстановить слушатель по умолчанию для WinRM.

PS C:\Users\Daniel> winrm delete winrm/config/listener?address=*+transport=HTTP
WSManFault
    Сообщение
        ПровайдерОшибка
            WSManFault
                Сообщение = WS-Management не позволяет вносить изменения в слушателя, созданного автоматически групповой политикой.
Политика "Разрешить автоматическую настройку слушателей на службе WinRm" должна быть установлена в "Не настроено", чтобы
создать новый слушатель для того же адреса и транспорта или для изменения уже существующего слушателя.

Номер ошибки:  -2144108406 0x8033808A
Невозможно изменить настройку, контролируемую GPO.

Я зашел сюда в gpedit.msc. Оказалось, что “Разрешить автоматическую настройку слушателей на службе WinRm” была бесполезно переименована в “Разрешить удаленное управление сервером через WinRM”. Я установил это в “Не настроено” и попробовал снова.

PS C:\Users\Daniel> winrm delete winrm/config/listener?address=*+transport=HTTP
PS C:\Users\Daniel> winrm create winrm/config/Listener?Address=*+Transport=HTTP
РесурсСоздан
    Адрес = http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous
    ReferenceParameters
        ResourceURI = http://schemas.microsoft.com/wbem/wsman/1/config/listener
        SelectorSet
            Selector: Address = *, Transport = HTTP

PS C:\Users\Daniel> winrm e winrm/config/listener
Слушатель
    Адрес = *
    Транспорт = HTTP
    Порт = 5985
    Имя хоста
    Включен = true
    URLPrefix = wsman
    CertificateThumbprint
    ListeningOn = 10.10.90.6, 127.0.0.1, ::1, fe80::100:7f:fffe%11, fe80::5efe:10.10.90.6%13

PS C:\Users\Daniel> Enter-PSSession -ComputerName localhost
Enter-PSSession : Не удалось подключиться к удаленному серверу localhost по следующему сообщению об ошибке: WinRM не может обработать
запрос. Произошла следующая ошибка с кодом ошибки 0x80090322 при использовании аутентификации Negotiate: Произошла неизвестная ошибка безопасности.
 Возможные причины:
  -Указанные имя пользователя или пароль неверны.
  -Kerberos используется, когда ни метод аутентификации, ни имя пользователя не указаны.
  -Kerberos принимает доменные имена пользователей, но не локальные имена пользователей.
  -Имя сервисного принципала (SPN) для удаленного имени компьютера и порта не существует.
  -Клиент и удаленные компьютеры находятся в разных доменах, и между двумя доменами нет доверия.
 После проверки приведенных выше вопросов попробуйте следующее:
  -Проверьте Просмотр событий на наличие событий, связанных с аутентификацией.
  -Измените метод аутентификации; добавьте целевой компьютер в настройку доверенных хостов WinRM или используйте HTTPS-транспорт.
 Обратите внимание, что компьютеры в списке доверенных хостов могут не проходить аутентификацию.
   -Для получения дополнительной информации о конфигурации WinRM выполните следующую команду: winrm help config. Для получения дополнительной информации смотрите раздел
about_Remote_Troubleshooting.
В строке:1 символ:1
+ Enter-PSSession -ComputerName localhost
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (localhost:String) [Enter-PSSession], PSRemotingTransportException
    + FullyQualifiedErrorId : CreateRemoteRunspaceFailed

PS C:\Users\Daniel>

На эту тему вот текущая конфигурация моей GPO для WinRM

Локальная политика компьютера > Конфигурация компьютера > Шаблоны административного управления > Компоненты Windows > Удаленное управление Windows (WinRM) > Клиент WinRM

  • Разрешить базовую аутентификацию: Включено
  • Разрешить аутентификацию CredSSP: Включено
  • Разрешить нешифрованный трафик: Включено
  • Запретить аутентификацию Digest: Не настроено
  • Запретить аутентификацию Kerberos: Не настроено
  • Запретить аутентификацию Negotiate: Не настроено
  • Доверенные хосты: Не настроено

Локальная политика компьютера > Конфигурация компьютера > Шаблоны административного управления > Компоненты Windows > Удаленное управление Windows (WinRM) > Сервер WinRM

  • Разрешить удаленное управление сервером через WinRM: Не настроено (Заметьте: Это было установлено на ‘Включено’ в примерах до этого обновления)
  • Разрешить базовую аутентификацию: Включено
  • Разрешить аутентификацию CredSSP: Включено
  • Разрешить нешифрованный трафик: Включено
  • Указать уровень жесткости жёсткой привязки канала: Не настроено
  • Запретить WinRM на сохранение учетных данных RunAs: Не настроено
  • Запретить аутентификацию Kerberos: Не настроено
  • Запретить аутентификацию Negotiate: Не настроено
  • Включить совместимость HTTP-слушателя: Не настроено
  • Включить совместимость HTTPS-слушателя: Не настроено

Сообщение об ошибке изменилось. Когда я заглядываю в Просмотр событий, я теперь получаю следующие две ошибки. Обратите внимание, что обе они изменились. Первая изменилась драматически, вторая менее драматически.

Общее:
    Опущено для краткости. То же самое, что и в "authFailureMessage" в деталях ниже.
Детали:
    <Событие xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
        <Система>
            <Поставщик Имя="Microsoft-Windows-WinRM" Guid="{A7975C8F-AC13-49F1-87DA-5A984A4AB417}" /> 
            <IDСобытия>161</IDСобытия> 
            <Версия>0</Версия> 
            <Уровень>2</Уровень> 
            <Задача>7</Задача> 
            <Опкод>0</Опкод> 
            <Ключевые слова>0x400000000000000a</Ключевые слова> 
            <ВремяСоздания СистемноеВремя="2016-08-18T00:37:41.784323600Z" /> 
            <IDЗаписиСобытия>61452</IDЗаписиСобытия> 
            <Корреляция IDДеятельности="{0190DC40-F800-0000-79D1-5DB0DAF8D101}" /> 
            <Исполнение IDПроцесса="7888" IDПотока="8116" /> 
            <Канал>Microsoft-Windows-WinRM/Оперативный</Канал> 
            <Компьютер>FNZAS2.flow.net.nz</Компьютер> 
            <Безопасность IDПользователя="S-1-5-21-2875926586-1071052228-4104636349-1151" /> 
        </Система>
        <ДанныеСобытия>
            <Данные Имя="authFailureMessage">WinRM не может обработать запрос. Произошла следующая ошибка с кодом ошибки 0x80090322 при использовании аутентификации Negotiate: Произошла неизвестная ошибка безопасности. Возможные причины:
-Указанные имя пользователя или пароль неверны. -Kerberos используется, когда ни метод аутентификации, ни имя пользователя не указаны. -Kerberos принимает доменные имена пользователей, но не локальные имена пользователей. -Имя сервисного принципала (SPN) для удаленного имени компьютера и порта не существует. -Клиент и удаленные компьютеры находятся в разных доменах, и между двумя доменами нет доверия. После проверки приведенных выше вопросов попробуйте следующее: -Проверьте Просмотр событий на наличие событий, связанных с аутентификацией. -Измените метод аутентификации; добавьте целевой компьютер в настройку доверенных хостов WinRM или используйте HTTPS-транспорт. Обратите внимание, что компьютеры в списке доверенных хостов могут не проходить аутентификацию. -Для получения дополнительной информации о конфигурации WinRM выполните следующую команду: winrm help config.</Данные> 
        </ДанныеСобытия>
    </Событие>

Общее:
    Операция WSMan CreateShell завершилась неудачей, код ошибки 2150858909
Детали:
    <Событие xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
        <Система>
            <Поставщик Имя="Microsoft-Windows-WinRM" Guid="{A7975C8F-AC13-49F1-87DA-5A984A4AB417}" /> 
            <IDСобытия>142</IDСобытия> 
            <Версия>0</Версия> 
            <Уровень>2</Уровень> 
            <Задача>10</Задача> 
            <Опкод>2</Опкод> 
            <Ключевые слова>0x4000000000000002</Ключевые слова> 
            <ВремяСоздания СистемноеВремя="2016-08-18T00:37:41.784323600Z" /> 
            <IDЗаписиСобытия>61454</IDЗаписиСобытия> 
            <Корреляция IDДеятельности="{0190DC40-F800-0000-7CD1-5DB0DAF8D101}" /> 
            <Исполнение IDПроцесса="7888" IDПотока="8116" /> 
            <Канал>Microsoft-Windows-WinRM/Оперативный</Канал> 
            <Компьютер>FNZAS2.flow.net.nz</Компьютер> 
            <Безопасность IDПользователя="S-1-5-21-2875926586-1071052228-4104636349-1151" /> 
        </Система>
        <ДанныеСобытия>
            <Данные Имя="operationName">CreateShell</Данные> 
            <Данные Имя="errorCode">2150858909</Данные> 
        </ДанныеСобытия>
    </Событие>

ОБНОВЛЕНИЕ #2

Пытаюсь очистить настройки WinRM и затем восстановить значения по умолчанию.

Вывод PowerShell на: pastebin.com/E5wgXE1q

Журналы событий Windows остаются такими же, как и в обновлении #1.


ОБНОВЛЕНИЕ #3

Используя вывод winrm/config Мера в качестве руководства, я прошел через объекты групповой политики моего локального компьютера и сбросил все назад на “Не настроено”. Это дает мне вывод winrm/config, который совпадает с выводом Мера.

Тем не менее, мне все еще не удалось подключиться. Я снова выполнил те же шаги очистки/сброса, следуя обновлению #2, чтобы быть в безопасности, и это тоже не сработало.

Вывод PowerShell на pastebin.com/EuzyDR6d

Вывод в журнале событий такой же, как для обновления 2.

Попробую перезагрузить сервер, чтобы увидеть, будет ли это иметь значение.


ОБНОВЛЕНИЕ #4

Перезагрузка сервера не помогла. Все еще получаю то же сообщение об ошибке, что и в обновлении #2.


ОБНОВЛЕНИЕ #5

Окей. Это безумие.

Все проблемы выше происходят на сервере, который мы назовем AS2.

Я только что перешел на сервер AS1 и настроил удаленный PowerShell. Просто чтобы убедиться, что я не схожу с ума.

  • AS1: Enter-PSSession localhost > Успешно
  • AS1: Enter-PSSession AS2 > Успешно
  • AS2: Enter-PSSession localhost > Ошибка
  • AS2: Enter-PSSession AS1 > Успешно

Ранее у меня были проблемы с подключением с AS2 к любому серверу. Но где-то по пути я это исправил. Теперь это только localhost на AS2 является проблемой.

Это кажется совершенно безумным. Почему AS2 не может подключиться к себе, когда он явно готов принимать входящие соединения, и он может делать исходящие соединения нормально?


ОБНОВЛЕНИЕ #6

Хорошо, новая информация: аутентификация CredSSP работает. Похоже, что есть что-то, что связано с аутентификацией Negotiate на этом сервере, что не работает.

Я возможно смогу использовать это в качестве основы для обходного решения для того, что я пытаюсь сделать. Однако это все равно не объясняет, почему аутентификация Negotiate кажется неработоспособной на этом сервере.

Можете удалить существующий слушатель с помощью:

winrm delete winrm/config/listener?address=*+transport=HTTP

И добавить новый с:

winrm create winrm/config/Listener?Address=*+Transport=HTTP

И проверьте снова с:

winrm e winrm/config/listener

ListeningOn должен перечислять ваши IP-адреса, а не null.

Ответ или решение

Проблема с использованием команды Enter-PSSession на localhost

Ваша проблема с подключением к локальному компьютеру через Enter-PSSession -ComputerName localhost на сервере Windows Server 2008 R2 может возникнуть из-за нескольких факторов, касающихся настройки WinRM (Windows Remote Management) и аутентификации. Давайте рассмотрим шаги диагностики и возможные решения.

1. Проверка конфигурации WinRM

Согласно вашему описанию, вы уже выполнили команду winrm quickconfig, которая подтвердила, что WinRM настроен правильно. Однако стоит ещё раз проверить следующие параметры:

  • Убедитесь, что служба WinRM запущена:

    Get-Service WinRM
  • Проверьте текущую конфигурацию WinRM:

    winrm get winrm/config
  • Убедитесь, что существует слушатель для WinRM:

    winrm e winrm/config/listener

Если слушатель не настроен или активирован не на всех сетевых интерфейсах, выполните:

winrm delete winrm/config/listener?address=*+transport=HTTP
winrm create winrm/config/Listener?Address=*+Transport=HTTP

2. Аутентификация

Как вы отметили в обновлениях, аутентификация Kerberos может создавать проблемы. Если WinRM не может правильно обработать запрос аутентификации Negotiate, попробуйте временно отключить Negotiate и использовать другие методы аутентификации, такие как CredSSP или Basic.

Для изменения методов аутентификации используйте команду:

winrm set winrm/config/service/auth '@{Negotiate="false";Basic="true";CredSSP="true"}'

3. Проверка параметров локальной политики безопасности и Групповых политик

Настройки групповых политик могут влиять на WinRM. Убедитесь, что:

  • Политика "Allow remote server management through WinRM" установлена на "Не настроено".
  • Аутентификация, разрешенная в политике WinRM, соответствует вашим требованиям.

Откройте редактор локальной политики:

  1. Запустите gpedit.msc.
  2. Перейдите в "Конфигурация компьютера" > "Административные шаблоны" > "Компоненты Windows" > "Windows Remote Management (WinRM)" и проверьте соответствующие настройки.

4. Устранение неполадок

Если проблема по-прежнему сохраняется, выполните следующее:

  • Очистите конфигурацию WinRM и восстановите настройки по умолчанию. Это можно сделать, используя:

    winrm invoke RestoreConfig
    winrm quickconfig
  • Проверьте журналы событий на наличие ошибок, связанных с аутентификацией:

    • Журнал событий Windows -> Применение и службы -> Microsoft -> Windows -> Windows Remote Management -> Операционный.

Вы также можете использовать команду:

Get-WinEvent -LogName "Microsoft-Windows-WinRM/Operational" | Where-Object { $_.Id -eq 161 -or $_.Id -eq 142 }

5. Проверка безопасности и сети

Проверьте, нет ли ограничений для WinRM на уровне брандмауэра:

  • Порты 5985 (HTTP) и 5986 (HTTPS) должны быть открыты в брандмауэре.
  • Убедитесь, что ваш DNS и SPN настраиваются верно.

Заключение

Если после всех указанных шагов проблема не устраняется, возможно, имеет смысл быть в курсе обновлений для Windows Server или рассмотреть возможность обновления до более поздней версии Windows Server, учитывая, что Windows Server 2008 R2 больше не поддерживается.

Если вас интересует поддержка или дополнительные вопросы, не стесняйтесь обращаться за помощью.

Оцените материал
Добавить комментарий

Капча загружается...