При настройке WinRM на серверах в домене Active Directory столкнулся со странной проблемой. После того как служба WinRM была настроена и включена на сервере, к ней разрешено удалённое подключение через Windows PowerShell Remoting, при попытке удаленного подключения к данному серверу с помощью команды
Enter-PSSession msk-dp01
в консоли PowerShell появляется следующая ошибка WinRM:
Enter-PSSession : Сбой подключения к удаленному серверу msk-dp01. Сообщение об ошибке: Клиенту WinRM не удается обработать запрос. Невозможно определить тип содержимого ответа HTTP от компьютера назначения. Тип содержимого не является допустимым или отсутствует. Подробности см. в разделе справки «about_Remote_Troubleshooting».
строка:1 знак:1
+ Enter-PSSession msk-dp01
+ ~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (msk-dp01:String) [Enter-PSSession], PSRemotingTransportException
+ FullyQualifiedErrorId : CreateRemoteRunspaceFailed
В английской версии Windows ошибка выглядит так:
PS C:Windowssystem32> Enter-PSSession msk-dp01
Enter-PSSession : Connecting to remote server msk-dp01 failed with the following error message : The WinRM client received an HTTP bad request status (400), but the remote service did not include any other information about the cause of the failure. For more information, see the about_Remote_Troubleshooting Help topic.
At line:1 char:1
+ Enter-PSSession msk-dp01
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (msk-dp01:String) [Enter-PSSession], PSRemotingTransportException
+ FullyQualifiedErrorId : CreateRemoteRunspaceFailed
При этом на сервере порты WinRm (5985/HTTP, 5986/HTTPS) отвечают и принимают соединения. Проверить доступность TCP портов WinRM можно с помощью утилиты PortQryV2 или командлета PowerShell Test-NetConnection:
TNC msk-dp01 –port 5985
Как оказалось, проблема оказалась связана с большим размером токена Kerberos у пользователя, за счет того, что пользователь состоит в слишком большом количестве доменных групп. Ошибка возникает при превышении размера токена 16 Кб (см статью MaxTokenSize — размер токена Kerberos). В нашей ситуации происходит все тоже самое, сервер WinRm сбрасывает запрос от клиента, т.к. размер заголовка пакета аутентификации превышает 16 Кб. В статье по ссылке мы упоминали, что по-умолчанию в IIS используется размер HTTP заголовка не более 16 Кб, и в случае проблем с HTTP аутентификацией из за большого токена пользователя, его нужно увеличить до 64 Кб
Чтобы исправить проблему, нужно уменьшить размер токена (уменьшить количество групп безопасности, в которых состоит пользователь), а если это невозможно, тогда в редакторе реестра на сервере нужно изменить значение следующих DWORD параметров реестра в ветке HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesHTTPParameters
- MaxFieldLength увеличить до 0000ffff (65535)
- MaxRequestBytes увеличить до 0000ffff (65535)
Осталось перезагрузить сервер и проверить подключение WinRm через Enter-PSSession с клиента.
- Remove From My Forums
-
Вопрос
-
Здравствуйте. С утра не ходила почта, пошел смотреть в PS, что происходит, в итоге ошибка:
ПОДРОБНО: Подключение к EMAIL.fdo.local. New-PSSession : [email.fdo.local] Сбой подключения к удаленному серверу email.fdo.local. Сообщение об ошибке: WinRM не удается обработать запрос, так как входной код XML содержит синтаксическую ошибку. Подробности см. в разделе справки "a bout_Remote_Troubleshooting". строка:1 знак:1 + New-PSSession -ConnectionURI "$connectionUri" -ConfigurationName Micr ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : OpenError: (System.Manageme....RemoteRunspace:RemoteRunspace) [New-PSSession], PSRemotin gTransportException + FullyQualifiedErrorId : -2144108477,PSSessionOpenFailed ПОДРОБНО: Подключение к EMAIL.fdo.local. New-PSSession : [email.fdo.local] Сбой подключения к удаленному серверу email.fdo.local. Сообщение об ошибке: WinRM не удается обработать запрос, так как входной код XML содержит синтаксическую ошибку. Подробности см. в разделе справки "a bout_Remote_Troubleshooting". строка:1 знак:1 + New-PSSession -ConnectionURI "$connectionUri" -ConfigurationName Micr ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : OpenError: (System.Manageme....RemoteRunspace:RemoteRunspace) [New-PSSession], PSRemotin gTransportException + FullyQualifiedErrorId : -2144108477,PSSessionOpenFailed
Почта нужна была срочно, решилось перезагрузкой.
Погуглив, наткнулся сюда:
WinRM
не удается обработать запрос. Невозможно определить тип содержимого ответа HTTP от компьютера назначенияКто-нибудь сталкивался с такой проблемой и отражает ли статья выше эту проблему ? Хотелось бы понимать в следующий раз, в чем была беда и как исправлять.
Ответы
-
Здравсвтуйте Андрей,
Из Вашего первого сообщения не понял, что EMS не грузится. Можете начать исследование инцидента с возможными причинами возникновения и их устранением. Error
message when you try to start Exchange Management Shell (EMS) or Exchange Management Console (EMC): «The connection to the specified remote host was refused» . Чтобы понять, как возникла данная ситуация понадобится RCA анализ (анализ первопричины),
на уровне профессиональной тех.поддержки такой анализ не делают. В случае, что обязательно нужно понять причину, можете обратиться к следующему уровню поддержки, а именно Premier.
Мнения, высказанные здесь, являются отражением моих личных взглядов, а не позиции корпорации Microsoft. Вся информация предоставляется «как есть» без каких-либо гарантий. Не забывайте помечать сообщения как ответы и полезные,
если они Вам помогли.-
Изменено
3 июля 2019 г. 11:28
-
Помечено в качестве ответа
Андрей Михалевский
3 июля 2019 г. 15:06
-
Изменено
-
Кто-нибудь сталкивался с такой проблемой и отражает ли статья выше эту проблему ? Хотелось бы понимать в следующий раз, в чем была беда и как исправлять.
В общем, анализ сообщений об этой ошибке в интернете показывает, что во всех случаях корневая проблема, если её вообще удалось идентифицировать, была в неудачной аутентификации по Kerberos (из-за расхождения времени на DC и Exchange). То
есть, налицо ещё одно невнятное путающее сообщение.Что именно за ошибка, можно определить, включив фиксацию в журнале событий сервера ошибок Kerberos:
https://support.microsoft.com/en-us/help/262177/how-to-enable-kerberos-event-logging
PS Не по теме. По поводу событий про попытку блокировки Администратора, попробуйте разобраться, откуда шли некорректные попытки входа — возможно, у вас где-то пытались подобрать пароль.
Слава России!
-
Помечено в качестве ответа
Андрей Михалевский
3 июля 2019 г. 15:05
-
Помечено в качестве ответа
-
Проблема актуальна только под вашим профилем?
Попробуйте запустить PowerShell (Run As Administrator).
Воспроизвести проблему используя новый профиль (создать нового пользователя и дать ему права на почтовом сервере) не пробовали?
Что в логах пк, сервера Exchange и dc?
Я не волшебник, я только учусь. MCTS, CCNA. Если Вам помог чей-либо ответ, пожалуйста, не забывайте нажать на кнопку «Отметить как ответ» или проголосовать за «полезное сообщение». Disclaimer: Мнения, высказанные здесь,
являются отражением моих личных взглядов, а не позиции работодателя. Вся информация предоставляется как есть, без каких-либо на то гарантий.
Блог IT Инженера,
Яндекс Дзен,
YouTube, GitHub.-
Изменено
Alexander RusinovModerator
3 июля 2019 г. 13:46
Дополнил -
Помечено в качестве ответа
Андрей Михалевский
3 июля 2019 г. 15:05
-
Изменено
КРАТКОЕ ОПИСАНИЕ
Описывает, как устранять неполадки удаленных операций в
Windows PowerShell.
ПОЛНОЕ ОПИСАНИЕ
В этом разделе описаны некоторые неполадки, которые могут
возникнуть при использовании функций удаленного взаимодействия
Windows PowerShell, основанных не технологии WS-Management, и
приводятся рекомендации по устранению этих неполадок.
Перед использованием функций удаленного взаимодействия Windows
PowerShell ознакомьтесь с разделами about_Remote и about_Remote_Requirements,
чтобы получить инструкции по настройке и выполнению базовых
операций. Кроме того, в разделах справки по каждому из
командлетов, в особенности в описаниях операций, содержатся
полезные сведения, помогающие избежать неполадок.
Обновленные версии этого, а также других разделов справки по
Windows PowerShell, доступны в Интернете в библиотеке Microsoft
TechNet. Чтобы открыть интернет-версию этого раздела справки,
вставьте в интернет-браузер следующий URL-адрес:
http://go.microsoft.com/fwlink/?LinkID=135188
ПРИМЕЧАНИЕ. В Windows Vista, Windows Server 2008 и более поздних
версиях Windows для просмотра и изменения параметров локального
компьютера на диске WSMan:, в том числе конфигурации сеансов,
доверенных узлов, портов и прослушивателей, запускайте Windows
PowerShell в режиме «Запуск от имени администратора».
УСТРАНЕНИЕ НЕПОЛАДОК, СВЯЗАННЫХ С РАЗРЕШЕНИЯМИ И ПРОВЕРКОЙ
ПОДЛИННОСТИ
В этом разделе описаны неполадки удаленного взаимодействия,
связанные с разрешениями пользователей и компьютеров и
требованиями удаленного взаимодействия.
ВЫПОЛНЕНИЕ ОПЕРАЦИЙ ОТ ИМЕНИ АДМИНИСТРАТОРА
—————————
ОШИБКА. Доступ запрещен. Необходимо запустить этот командлет
из повышенного процесса.
Для запуска удаленного сеанса на локальном компьютере или
просмотра и изменения параметров локального компьютера на диске
WSMan:, в том числе конфигурации сеансов, доверенных узлов,
портов и прослушивателей, запустите Windows PowerShell в режиме
«Запуск от имени администратора».
Запуск Windows PowerShell в режиме «Запуск от имени администратора»
— Щелкните правой кнопкой мыши значок Windows PowerShell (или
Windows PowerShell ISE) и выберите пункт «Запуск от имени администратора».
Запуск Windows PowerShell в режиме «Запуск от имени
администратора» в Windows 7 и Windows Server 2008 R2
— На панели задач Windows щелкните правой кнопкой мыши значок
Windows PowerShell и выберите команду «Запустить Windows
PowerShell от имени администратора».
Примечание. В Windows Server 2008 R2 значок Windows PowerShell по
умолчанию закреплен на панели задач.
ВКЛЮЧЕНИЕ УДАЛЕННОГО ВЗАИМОДЕЙСТВИЯ
———————-
ОШИБКА. ДОСТУП ЗАПРЕЩЕН
— либо —
ОШИБКА. В подключении к указанному удаленному узлу отказано.
Убедитесь, что на удаленном узле служба WS-Management
запущена и настроена на прослушивание запросов с
использованием правильного порта и URL-адреса HTTP.
Чтобы компьютер мог отправлять удаленные команды, никакая
настройка не требуется. Однако для получения удаленных команд
компьютер необходимо настроить, чтобы он поддерживал удаленное
взаимодействие. Процедура настройки включает запуск службы
WinRM, установку типа запуска «Авто» для службы WinRM, создание
прослушивателей для подключений HTTP и HTTPS, а также создание
конфигураций сеансов по умолчанию.
Чтобы настроить на компьютере получение удаленных команд,
воспользуйтесь командлетом Enable-PSRemoting. Следующая команда
включает все необходимые параметры удаленного взаимодействия,
активирует конфигурации сеансов и перезапускает службу WinRM,
чтобы изменения вступили в силу.
enable-psremoting
Чтобы подавить все запросы подтверждения, введите
следующую команду:
enable-psremoting -force
Дополнительные сведения см. в разделе Enable-PSRemoting.
ВКЛЮЧЕНИЕ УДАЛЕННОГО ВЗАИМОДЕЙСТВИЯ НА ПРЕДПРИЯТИИ
—————————————
ОШИБКА. ДОСТУП ЗАПРЕЩЕН
— либо —
ОШИБКА. В подключении к указанному удаленному узлу отказано.
Убедитесь, что на удаленном узле служба WS-Management
запущена и настроена на прослушивание запросов с
использованием правильного порта и URL-адреса HTTP.
Чтобы включить возможность получения удаленных команд Windows
PowerShell и приема подключений на одном компьютере,
воспользуйтесь командлетом Enable-PSRemoting.
Чтобы включить удаленное взаимодействие на нескольких компьютерах
предприятия, можно воспользоваться следующими масштабированными процедурами.
— Чтобы настроить прослушиватели для удаленного взаимодействия,
включите групповую политику «Разреить автоматическую настройку
прослушивателей». Инструкции см. в ниже в разделе «Включение
прослушивателей с помощью групповой политики».
— Чтобы установить тип запуска «Авто» для службы удаленного
управления Windows (WinRM), воспользуйтесь командлетом
Set-Service. Инструкции см. ниже в разделе «Установка типа запуска
службы WinRM»
— Чтобы включить исключение брандмауэра, воспользуйтесь групповой
политикой «Брандмауэр Windows: Разрешать локальные исключения
для портов». Инструкции см. в ниже в разделе «Создание
исключения брандмауэра с помощью групповой политики».
ВКЛЮЧЕНИЕ ПРОСЛУШИВАТЕЛЕЙ С ПОМОЩЬЮ ГРУППОВОЙ ПОЛИТИКИ
————————————————
ОШИБКА. ДОСТУП ЗАПРЕЩЕН
— либо —
ОШИБКА. В подключении к указанному удаленному узлу отказано.
Убедитесь, что на удаленном узле служба WS-Management
запущена и настроена на прослушивание запросов с
использованием правильного порта и URL-адреса HTTP.
Чтобы настроить прослушиватели для всех компьютеров в домене,
включите политику «Разрешить автоматическую настройку прослушивателей» по
следующему пути групповых политик:
Конфигурация компьютераАдминистративные аблоныКомпоненты Windows
Удаленное управление Windows (WinRM)Служба WinRM.
Включите политику и укажите фильтры IPv4 и IPv6. Подстановочные
знаки (*) разрешены.
ВКЛЮЧЕНИЕ ИСКЛЮЧЕНИЯ БРАНДМАУЭРА С ПОМОЩЬЮ ГРУППОВОЙ ПОЛИТИКИ
———————————————————-
ОШИБКА. ДОСТУП ЗАПРЕЩЕН
— либо —
ОШИБКА. В подключении к указанному удаленному узлу отказано.
Убедитесь, что на удаленном узле служба WS-Management
запущена и настроена на прослушивание запросов с
использованием правильного порта и URL-адреса HTTP.
Чтобы включить исключение брандмауэра на всех компьютерах домена,
включите политику «Брандмауэр Windows: Разрешать локальные исключения для портов» по
следующему пути групповых политик:
Конфигурация компьютераАдминистративные аблоныСетьСетевые
подключенияБрандмауэр WindowsПрофиль домена
Эта политика разрешает членам группы «Администраторы» на
компьютере использовать брандмауэр Windows в панели управления,
чтобы создавать исключения брандмауэра для службы удаленного
управления Windows.
УСТАНОВКА ТИПА ЗАПУСКА «АВТО» ДЛЯ СЛУЖБЫ WINRM.
————————————————
ОШИБКА. ДОСТУП ЗАПРЕЩЕН
При удаленном взаимодействии Windows PowerShell используется
служба удаленного управления Windows (WinRM). Для поддержки
удаленных команд эта служба должна быть запущена.
В Windows Server 2003, Windows Server 2008 и Windows Server 2008
R2 для службы удаленного управления Windows (WinRM) используется
тип запуска «Авто».
Однако в Windows XP, Windows Vista и Windows 7 служба WinRM по
умолчанию отключена.
Чтобы установить тип запуска службы на удаленном компьютере,
воспользуйтесь командлетом Set-Service.
Для выполнения команды на нескольких компьютерах можно создать
текстовый или CSV-файл с именами компьютеров.
Например, следующая команда получает список компьютеров
из файла Servers.txt, а затем устанавливает тип запуска «Авто»
для службы WinRM на всех компьютерах.
C:PS> $servers = get-content servers.txt
C:PS> set-service WinRM -computername $servers -startuptype Automatic
Чтобы увидеть результаты, воспользуйтесь командлетом Get-WMIObject
с объектом Win32_Service. Дополнительные сведения см. в разделе Set-Service.
ВОССОЗДАНИЕ КОНФИГУРАЦИЙ СЕАНСОВ ПО УМОЛЧАНИЮ
—————————————————
ОШИБКА. ДОСТУП ЗАПРЕЩЕН
Чтобы подключиться к локальному компьютеру и выполнять команды
удаленно, локальный компьютер должен содержать конфигурации
сеансов для удаленных команд.
Командлет Enable-PSRemoting создает на локальном компьютере
конфигурации сеансов по умолчанию. Удаленные пользователи
применяют эти конфигурации сеансов каждый раз, когда удаленная
команда не содержит параметра ConfigurationName.
Если конфигурации по умолчанию не зарегистрированы на компьютере
или были удалены, воспользуйтесь командлетом Enable-PSRemoting,
чтобы создать их заново. Этот командлет можно использовать
повторно. Если компонент уже настроен, ошибки не создаются.
Если конфигурации сеансов по умолчанию были изменены и требуется восстановить
исходные конфигурации сеансов по умолчанию, с помощью командлета
Unregister-PSSessionConfiguration удалите измененные конфигурации
сеансов, а затем с помощью командлета Enable-PSRemoting
восстановите их. Командлет Enable-PSRemoting не изменяет
имеющиеся конфигурации сеансов.
Примечание. Когда командлет Enable-PSRemoting восстанавливает
конфигурации сеансов по умолчанию, он не создает явные
дескрипторы безопасности для этих конфигураций. Вместо этого
конфигурации наследуют дескриптор безопасности элемента
RootSDDL, который является защищенным по умолчанию.
Чтобы увидеть дескриптор безопасности RootSDDL, введите команду:
get-item wsman:localhostServiceRootSDDL
Чтобы изменить элемент RootSDDL, воспользуйтесь командлетом
Set-Item на диске WSMan:. Чтобы изменить дескриптор безопасности
конфигурации сеанса, воспользуйтесь командлетом Set-PSSessionConfiguration с
параметром SecurityDescriptorSDDL или ShowSecurityDescriptorUI.
Дополнительные сведения о диске WSMan: см. в разделе справки,
посвященной поставщику WS-Management («get-help wsman»).
ПРЕДОСТАВЛЕНИЕ УЧЕТНЫХ ДАННЫХ АДМИНИСТРАТОРА
—————————————-
ОШИБКА. ДОСТУП ЗАПРЕЩЕН
Для создания сеанса PSSession или выполнения команд на удаленном
компьютере по умолчанию текущий пользователь должен быть членом
группы «Администраторы» на удаленном компьютере. Иногда
требуется указывать учетные данные, даже если текущий
пользователь является членом группы «Администраторы».
Если текущий пользователь является членом группы «Администраторы»
на удаленном компьютере или может указать учетные данные члена
группы «Администраторы», воспользуйтесь для удаленного
подключения параметром Credential командлета New-PSSession,
Enter-PSSession или Invoke-Command.
Например, в следующей команде задаются учетные
данные администратора.
Invoke-Command -ComputerName Server01 -Credential Domain01Admin01
Дополнительные сведения о параметре Credential см. в разделе
New-PSSession, Enter-PSSession или Invoke-Command.
ВКЛЮЧЕНИЕ УДАЛЕННОГО ВЗАИМОДЕЙСТВИЯ ДЛЯ ПОЛЬЗОВАТЕЛЕЙ, НЕ
ЯВЛЯЮЩИХСЯ АДМИНИСТРАТОРАМИ
—————————————————
ОШИБКА. ДОСТУП ЗАПРЕЩЕН
Для создания сеанса PSSession или выполнения команды на удаленном
компьютере пользователю требуется разрешение на использование
конфигураций сеансов на удаленном компьютере.
По умолчанию только члены группы «Администраторы» на компьютере
имеют разрешение на использование конфигураций сеансов по
умолчанию. Поэтому только члены группы «Администраторы» могут
удаленно подключаться к компьютеру.
Чтобы разрешить другим пользователям подключаться к локальному
компьютеру, предоставьте разрешение на запуск для конфигураций
сеансов по умолчанию на локальном компьютере.
Следующая команда открывает лист свойств, позволяющий изменять
дескриптор безопасности конфигурации сеанса Microsoft.PowerShell
по умолчанию на локальном компьютере.
Set-PSSessionConfiguration Microsoft.Powershell -ShowSecurityDescriptorUI
Дополнительные сведения см. в разделе about_Session_Configurations.
ВКЛЮЧЕНИЕ УДАЛЕННОГО ВЗАИМОДЕЙСТВИЯ ДЛЯ АДМИНИСТРАТОРОВ В ДРУГИХ
ДОМЕНАХ
———————————————————-
ОШИБКА. ДОСТУП ЗАПРЕЩЕН
Если пользователь из другого домена является членом группы
«Администраторы» на локальном компьютере, он не может удаленно
подключаться к локальному компьютеру с правами администратора.
По умолчанию удаленные подключения из других документов
запускаются только с токенами разрешений обычного пользователя.
Однако с помощью параметра реестра LocalAccountTokenFilterPolicy
можно изменить поведение по умолчанию и разрешить удаленным
пользователям, входящим в группу «Администраторы», выполнять
операции с правами администратора.
Внимание! Параметр реестра LocalAccountTokenFilterPolicy отключает
ограничения на удаленное взаимодействие функции контроля
учетных записей для всех пользователей на всех затрагиваемых
компьютерах. Перед изменением политики внимательно изучите
возможные последствия.
Чтобы изменить политику, воспользуйтесь следующей командой,
устанавливающей для параметра реестра LocalAccountTokenFilterPolicy
значение 1.
C:PS> new-itemproperty -name LocalAccountTokenFilterPolicy -path `
HKLM:SOFTWAREMicrosoftWindowsCurrentVersionPolicies
System -propertyType `DWord -value 1
ИСПОЛЬЗОВАНИЕ В УДАЛЕННОЙ КОМАНДЕ IP-АДРЕСА
——————————————————
ОШИБКА. Клиенту WinRM не удается обработать запрос. Если
применяемая схема проверки подлинности отличается от
Kerberos или компьютер клиента не входит в домен, необходимо
использовать транспорт HTTPS или добавить компьютер
назначения к значениям параметра конфигурации TrustedHosts.
Параметр ComputerName командлетов New-PSSession, Enter-PSSession и
Invoke-Command принимает в качестве допустимого значения
IP-адрес. Но поскольку проверка подлинности Kerberos не
поддерживает IP-адреса, в случае указания IP-адреса по умолчанию
используется проверка подлинности NTLM.
В случае использования проверки подлинности NTLM для удаленного взаимодействия
необходимо выполнить следующие действия.
1. Настройте на компьютере использование транспорта HTTPS или
добавьте IP-адреса удаленных компьютеров в список
TrustedHosts на локальном компьютере.
Инструкции см. ниже в разделе «Добавление компьютера в список TrustedHosts».
2. Во всех удаленных командах используйте параметр Credential.
Это необходимо даже в том случае, если указываются учетные
данные текущего пользователя.
УДАЛЕННОЕ ПОДКЛЮЧЕНИЕ С КОМПЬЮТЕРА, ВХОДЯЩЕГО В РАБОЧУЮ ГРУППУ
——————————————————-
ОШИБКА. Клиенту WinRM не удается обработать запрос. Если
применяемая схема проверки подлинности отличается от
Kerberos или компьютер клиента не входит в домен, необходимо
использовать транспорт HTTPS или добавить компьютер
назначения к значениям параметра конфигурации TrustedHosts.
Если локальный компьютер не входит в домен, для удаленного
взаимодействия необходимо выполнить следующие действия.
1. Настройте на компьютере использование транспорта HTTPS или
добавьте имена удаленных компьютеров в список TrustedHosts
на локальном компьютере.
Инструкции см. ниже в разделе «Добавление компьютера в список TrustedHosts».
2. Проверьте, что на входящем в рабочую группу компьютере задан
пароль. Если пароль не задан или пуст, выполнять удаленные
команды невозможно.
Чтобы задать пароль для учетной записи пользователя,
воспользуйтесь элементом «Учетные записи пользователей»
панели управления.
3. Во всех удаленных командах используйте параметр Credential.
Это необходимо даже в том случае, если указываются учетные
данные текущего пользователя.
ДОБАВЛЕНИЕ КОМПЬЮТЕРА В СПИСОК TRUSTEDHOSTS
————————————————
Элемент TrustedHosts может содержать список разделенных запятыми
имен компьютеров, IP-адресов и полных доменных имен.
Подстановочные знаки разрешены.
Для просмотра и изменения списка доверенных узлов, воспользуйтесь
диском WSMan:. Элемент TrustedHost расположен в узле WSMan:localhostClient.
Только члены группы «Администраторы» на компьютере имеют
разрешение на изменение списка доверенных узлов на компьютере.
Внимание! Действие значения, заданного в элементе TrustedHosts,
распространяется на всех пользователей компьютера.
Для просмотра списка доверенных узлов необходимо использовать
следующую команду:
get-item wsman:localhostClientTrustedHosts
Кроме того, можно с помощью командлета Set-Location (псевдоним cd)
перейти к нужному расположению на диске WSMan:.
Пример: «cd WSMan:localhostClient; dir».
Чтобы добавить в список доверенных узлов все компьютеры,
воспользуйтесь следующей командой, в которой для параметра
ComputerName задано значение * (все).
set-item wsman:localhostclienttrustedhosts -value *
Кроме того, с помощью подстановочного знака (*) можно добавить в
список доверенных узлов все компьютеры из определенного домена.
Например, следующая команда добавляет в список доверенных узлов
все компьютеры из домена Fabrikam.
set-item wsman:localhostclienttrustedhosts *.fabrikam.com
Чтобы добавить в список доверенных узлов имена отдельных
компьютеров, необходимо использовать следующий формат команд:
set-item wsman:localhostClientTrustedHosts -value <имя_компьютера>[,<имя_компьютера>]
Здесь каждое значение <имя_компьютера> должно иметь
следующий формат:
<компьютер>.<домен>.<компания>.<домен_верхнего_уровня>
Пример:
set-item wsman:localhostClientTrustedHosts -value Server01.Domain01.Fabrikam.com
Чтобы добавить имя компьютера в имеющийся список доверенных узлов,
необходимо сначала сохранить текущее значение в переменной, а
затем присвоить значение разделенному запятыми списку, который
включает текущее и новое значения.
Например, чтобы добавить компьютер Server01 в имеющийся список
доверенных узлов, воспользуйтесь следующей командой:
$curValue = (get-item wsman:localhostClientTrustedHosts).value
set-item wsman:localhostClientTrustedHosts -value «$curValue, Server01.Domain01.Fabrikam.com»
Чтобы добавить в список доверенных узлов IP-адреса отдельных
компьютеров, необходимо использовать следующий формат команд:
set-item wsman:localhostClientTrustedHosts -value <IP-адрес>
Пример:
set-item wsman:localhostClientTrustedHosts -value 172.16.0.0
Чтобы добавить компьютер в список TrustedHosts удаленного
компьютера, с помощью командлета Connect-WSMan добавьте узел
удаленного компьютера на диск WSMan: локального компьютера.
После этого добавьте компьютер с помощью команды Set-Item.
Дополнительные сведения о командлете Connect-WSMan см. в разделе Connect-WSMan.
УСТРАНЕНИЕ НЕПОЛАДОК, СВЯЗАННЫХ С КОНФИГУРАЦИЕЙ КОМПЬЮТЕРОВ
В этом разделе описаны неполадки удаленного управления, связанные
с конкретными конфигурациями компьютеров, доменов
или предприятия.
НАСТРОЙКА УДАЛЕННОГО ВЗАИМОДЕЙСТВИЯ ЧЕРЕЗ АЛЬТЕРНАТИВНЫЕ ПОРТЫ
———————————————
ОШИБКА. В подключении к указанному удаленному узлу отказано.
Убедитесь, что на удаленном узле служба WS-Management
запущена и настроена на прослушивание запросов с
использованием правильного порта и URL-адреса HTTP.
По умолчанию при удаленном взаимодействии Windows PowerShell для
транспорта HTTP используется порт 80. Порт по умолчанию
используется всегда, когда пользователь не указывает в удаленной
команде параметр ConnectionURI или Port.
Чтобы изменить порт, используемый в Windows PowerShell по
умолчанию, с помощью командлета Set-Item на диске WSMan:
измените значение Port в конечном узле прослушивателя.
Например, следующая команда изменяет порт по умолчанию на 8080.
set-item wsman:localhostlistenerlistener*port -value 8080
НАСТРОЙКА УДАЛЕННОГО ВЗАИМОДЕЙСТВИЯ С ИСПОЛЬЗОВАНИЕМ ПРОКСИ-СЕРВЕРА
———————————————
ОШИБКА. Клиенту не удается подключиться к узлу назначения,
указанному в запросе. Убедитесь, что служба на узле
назначения работает и принимает запросы.
Поскольку при удаленном взаимодействии Windows PowerShell
используется протокол HTTP, также действуют параметры прокси
HTTP. На предприятиях, применяющих прокси-серверы, пользователи
не могут напрямую обращаться к удаленному компьютеру
Windows PowerShell.
Чтобы решить эту проблему, необходимо использовать в удаленных
командах параметры прокси-серверов. Доступны следующие параметры.
— ProxyAccessType
— ProxyAuthentication
— ProxyCredential
Чтобы задать эти параметры для определенной команды, используйте
описанную ниже процедуру.
1. С помощью параметров ProxyAccessType, ProxyAuthentication и
ProxyCredential командлета New-PSSessionOption создайте
объект параметра сеанса, содержащий параметры прокси
-сервера предприятия. Сохраните объект параметра
в переменной.
2. Используйте переменную, содержащую объект параметра, в
качестве значения параметра SessionOption команды
New-PSSession, Enter-PSSession или Invoke-Command.
Например, следующая команда создает объект параметра сеанса с
параметрами сеанса прокси, а затем создает с помощью этого
объекта удаленный сеанс.
C:PS> $SessionOption = New-PSSessionOption -ProxyAccessTypeIEConfig `
-ProxyAuthentication Negotiate -ProxyCredential Domain01User01
C:PS> New-PSSession -ConnectionURI https://www.fabrikam.com
Дополнительные сведения о командлете New-PSSessionOption см. в
разделе New-PSSessionOption.
Чтобы задать эти параметры для всех удаленных команд в текущем
сеансе, используйте объект параметра, созданный с помощью
командлета New-PSSessionOption, в качестве значения привилегированной
переменной $PSSessionOption. Дополнительные сведения о привилегированной
переменной $PSSessionOption см. в разделе
about_Preference_Variables.
Чтобы задать эти параметры для всех удаленных команд во всех
сеансах Windows PowerShell на локальном компьютере, добавьте
привилегированную переменную $PSSessionOption в профиль Windows PowerShell.
Дополнительные сведения о профилях Windows PowerShell см. в
разделе about_Profiles.
ОБНАРУЖЕНИЕ 32-РАЗРЯДНОГО СЕАНСА НА 64-РАЗРЯДНОМ КОМПЬЮТЕРЕ
—————————————————
ОШИБКА. Условие «<имя_средства>» не распознано как имя
командлета, функции, файла скрипта или выполняемой
программы. Проверьте правильность написания имени, наличие
и правильность пути и повторите попытку.
Если на удаленном компьютере установлена 64-разрядная версия
Windows, а в удаленной команде используется конфигурация
32-разрядного сеанса, например Microsoft.PowerShell32, служба
удаленного управления Windows (WinRM) загружает процесс WOW64,
и операционная система Windows все ссылки на каталог %Windir%
System32 автоматически перенаправляет на каталог %windir%
SysWOW64.
В результате при попытке загрузить из каталога System32 средства,
у которых нет аналогов в каталоге SysWow64, например Defrag.exe,
найти такие средства в каталоге не удается.
Чтобы определить используемую в сеансе архитектуру процессора, воспользуйтесь
значением переменной среды PROCESSOR_ARCHITECTURE. Следующая
команда определяет архитектуру процессора сеанса в переменной
$s.
C:PS> $s = new-pssession -computername Server01 -configurationName CustomShell
C:PS> invoke-command -session $s {$env:PROCESSOR_ARCHITECTURE} x86
Дополнительные сведения о конфигурациях сеансов см. в разделе about_session_configurations.
УСТРАНЕНИЕ НЕПОЛАДОК ПОЛИТИК И УСТАНОВЛЕННЫХ ПАРАМЕТРОВ
В этом разделе описаны проблемы удаленного взаимодействия,
связанные с политиками и параметрами, заданными на локальном и
удаленном компьютерах.
ИЗМЕНЕНИЕ ПОЛИТИКИ ВЫПОЛНЕНИЯ ДЛЯ КОМАНДЛЕТОВ IMPORT-PSSESSION И IMPORT-MODULE
————————————————————————-
ОШИБКА. Import-Module: Не удается загрузить файл <имя_файла>,
так как выполнение скриптов запрещено для данной системы.
Командлеты Import-PSSession и Export-PSSession создают модули,
содержащие неподписанные файлы скриптов и файлы форматирования.
Чтобы можно было импортировать модули, созданные этими
командлетами, с помощью командлетов Import-PSSession и
Import-Module, политика выполнения в текущем сеансе не может иметь
значение Restricted или AllSigned. (Дополнительные сведения о
политиках выполнения Windows PowerShell см. в разделе about_Execution_Policies.)
Чтобы импортировать модули без изменения политики выполнения для
заданного в реестре локального компьютера, необходимо с помощью
параметра Scope командлета Set-ExecutionPolicy задать менее
жесткую политику выполнения для отдельного процесса.
Например, следующая команда запускает процесс с политикой
выполнения RemoteSigned. Изменение политики выполнения распространяется
только на текущий процесс и не приводит к изменению параметра
реестра Windows PowerShell ExecutionPolicy.
set-executionpolicy -scope process -executionpolicy RemoteSigned
Кроме того, с помощью параметра ExecutionPolicy
программы PowerShell.exe можно запустить отдельный сеанс с менее
жесткой политикой выполнения.
powershell.exe -executionpolicy RemoteSigned
Дополнительные сведения о командлетах см. в разделах
Import-PSSession, Export-PSSession и Import-Module.
Дополнительные сведения о политиках выполнения см. в разделе
about_Execution_Policies. Чтобы получить дополнительные сведения о параметрах
справки консоли PowerShell.exe, введите команду «powershell.exe -?».
ЗАДАНИЕ И ИЗМЕНЕНИЕ КВОТ
—————————-
ОШИБКА. Общий объем данных, полученных от удаленного клиента,
превысил допустимое значение.
Квоты позволяют защищать локальный компьютер и удаленный компьютер
от чрезмерного использования ресурсов, как случайного так и
злонамеренного.
В базовой конфигурации доступны следующие квоты.
— Поставщик WS-Management (WSMan:) предоставляет несколько
параметров квот, например параметры MaxEnvelopeSizeKB и MaxProviderRequests
в узле WSMan:<имя_компьютера> и параметры MaxConcurrentOperations,
MaxConcurrentOperationsPerUser и MaxConnections в узле WSMan:<имя_компьютера>Service.
— Локальный компьютер можно защитить с помощью параметров
MaximumReceivedDataSizePerCommandMB и MaximumReceivedObjectSizeMB командлета
New-PSSessionOption и привилегированной переменной $PSSessionOption.
— Удаленный компьютер можно защитить, добавив ограничения в
конфигурации сеанса, например с помощью параметров MaximumReceivedDataSizePerCommandMB
и MaximumReceivedObjectSizeMB командлета Register-PSSessionConfiguration.
Если квоты противоречат команде, Windows PowerShell создает оШибку.
Для устранения ошибки измените удаленную команду, чтобы она
соответствовала квоте. Или определите источник квоты и увеличьте
квоту, чтобы можно было выполнить команду.
Например, следующая команда увеличивает квоту размеров объектов в
конфигурации сеансов Microsoft.PowerShell на удаленном
компьютере с 10 МБ (значение по умолчанию) до 11 МБ.
Set-PSSessionConfiguration -name microsoft.powershell ` -MaximumReceivedObjectSizeMB 11 -Force
Дополнительные сведения о командлете New-PSSsessionOption см. в
разделе New-PSSessionOption.
Дополнительные сведения о квотах WS-Management см. в разделе
справки, посвященном поставщику WS-Management (введите команду
«get-help WSMan»).
УСТРАНЕНИЕ ОШИБОК ТАЙМ-АУТА
——————————
ОШИБКА. Службе WS-Management не удается заверить операцию в
течение времени, указанного в OperationTimeout.
Тайм-ауты позволяют защищать локальный компьютер и удаленный
компьютер от чрезмерного использования ресурсов, как случайного
так и злонамеренного. Если тайм-ауты заданы как на локальном,
так и на удаленном компьютере, Windows PowerShell использует
меньшее из заданных значений.
В базовой конфигурации доступны следующие тайм-ауты.
— Поставщик WS-Management (WSMan:) предоставляет несколько
параметров тайм-аутов на стороне клиента и на стороне сервера,
например параметр MaxTimeoutms в узле WSMan:<имя_компьютера>
и параметры EnumerationTimeoutms и MaxPacketRetrievalTimeSeconds в узле
WSMan:<имя_компьютера>Service.
— Локальный компьютер можно защитить с помощью параметров
CancelTimeout, IdleTimeout, OpenTimeout, и OperationTimeout
командлета New-PSSessionOption и привилегированной переменной
$PSSessionOption.
— Можно также защитить удаленный компьютер, установив
значения тайм-аутов для сеанса программным образом в
конфигурации сеанса.
Если значение тайм-аута делает невозможным заверение операции,
Windows PowerShell прерывает операцию и создает ошибку.
Для устранения ошибки измените команду, чтобы она завералась в
пределах отведенного тайм-аута, или определите источник
ограничения тайм-аута и увеличьте значение тайм-аута, чтобы
можно было выполнить команду.
Например, следующие команды с помощью командлета New-PSSessionOption
создают объект параметра сеанса со значением OperationTimeout,
равным 4 минутам (в миллисекундах), а затем создают удаленный сеанс
с использованием этого объекта параметра сеанса.
C:PS> $pso = new-pssessionoption -operationtimeout 240000
C:PS> new-pssession -computername Server01 -sessionOption$pso
Дополнительные сведения о периодах ожидания WS-Management см. в
разделе справки, посвященном поставщику WS-Management (введите
команду «get-help WSMan»).
Дополнительные сведения о командлете New-PSSsessionOption см. в
разделе New-PSSessionOption.
УСТРАНЕНИЕ НЕПОЛАДОК, ПРИ КОТОРЫХ ОБОЛОЧКА ПЕРЕСТАЕТ ОТВЕЧАТЬ
В этом разделе описаны неполадки удаленного взаимодействия, не
позволяющие заверить команду или задерживающие появление командной
строки Windows PowerShell.
ПРЕРЫВАНИЕ КОМАНДЫ
—————————
Некоторые собственные программы Windows, например программы с
пользовательским интерфейсом, консольные приложения, требующие
ввода данных, и консольные приложения, использующие консольный
интерфейс API Win32, некорректно работают с удаленным узлом Windows
PowerShell.
При использовании таких программ может наблюдаться непредсказуемое
поведение, например отсутствие вывода, частичный вывод, либо
удаленная команда может быть не завершена.
Чтобы заверить переставшую отвечать программу, нажмите сочетание
клавиш CTRL + C. Чтобы увидеть оишбки, которые могли быть
созданы, введите на локальном узле и в удаленном сеансе «$error».
CМ. ТАКЖЕ
Интернет-версия: http://go.microsoft.com/fwlink/?LinkID=135188
about_remote
about_remote_requirements
PS C:Windowssystem32> Enter-PSSession -ComputerName serv1
Enter-PSSession : Сбой подключения к удаленному серверу
serv1
. Сообщение об ошибке: Клиенту WinRM не удается обработать запрос. Если применяемая схема проверки подлинности отличается от Kerberos или компьютер клиента не входит в домен, необходимо использовать транспорт HTTPS или добавить компьютер назначения к значениям параметра конфигурации TrustedHosts. Чтобы настроить TrustedHosts, используйтеwinrm.cmd
. Обратите внимание, что в списке TrustedHosts могут находиться компьютеры, не прошедшие проверку подлинности. Чтобы получить дополнительные сведения об этом, выполните следующую команду:winrm help config
. Подробности см. в разделе справки «about_Remote_Troubleshooting».строка:1 знак:1
+ Enter-PSSession -ComputerName serv1 + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidArgument: (serv1:String) [Enter-PSSession], PSRemotingTransportException + FullyQualifiedErrorId : CreateRemoteRunspaceFailed
Some of ours servers (W2K8 R2) were moved to the cloud last week, once done that my powerswhell script started to fail (was working fine before), the exception is thrown on the line where the connection is trying to be established,
$ExSession = New-PSSession –ConfigurationName Microsoft.Exchange –ConnectionUri "http://$g_strExchangeServer/PowerShell" `
-Credential $Credentials –Authentication Kerberos
With the following message,
[subd.staging.com] Connecting to remote server failed with the following error message :
**WinRM cannot process the request**. The following error occured while using Kerberos authentication: There are currently no logon servers available to service the logon request.
Possible causes are:
-The user name or password specified are invalid.
-Kerberos is used when no authentication method and no user name are specified.
-Kerberos accepts domain user names, but not local user names.
-The Service Principal Name (SPN) for the remote computer name and port does not exist.
-The client and remote computers are in different domains and there is no trust between the two domains.
After checking for the above issues, try the following:
-Check the Event Viewer for events related to authentication.
-Change the authentication method; add the destination computer to the WinRM TrustedHosts configuration setting or use HTTPS transport.
Note that computers in the TrustedHosts list might not be authenticated.
-For more information about WinRM configuration, run the following command: winrm help onfig. For more information, see the about_Remote_Troubleshooting Help topic.
+ CategoryInfo : OpenError: (System.Manageme....RemoteRunspace:RemoteRunspace) [], PSRemotingTransportException
+ FullyQualifiedErrorId : PSSessionOpenFailed
this happens only if I try to target our testing domain, if I point the script to our production domain then it works.
The same error is displayed on all the servers that were already moved to cloud.
Notice that all the servers which have not already moved to cloud are able to run the script on both domains without any problem.
I’ve tried the following, but no luck.
//Add the destination computer to the WinRM TrustedHosts configuration setting.
c:>WinRM set winrm/config/client @{TrustedHosts="stagingserver"}
//Confirm that WinRM is properly configured.
c:>Winrm quickconfig
//Make sure that the remote server allows commands from any machine.
PS c:>Set-item wsman:localhostclienttrustedhosts -value *
Using Powershell v2 and WinRM v2
Any comments are welcome.