PowerShell. Решение проблем связынных с удалённым подключением (about_Remote_Troubleshooting)

В этом разделе описываются некоторые из проблем, которые могут возникнуть при использовании функций удалённого взаимодействия Windows PowerShell, основанные на технологии WS-Management, и предлагаются решения этих проблем.

Перед использованием удалённого взаимодействия Windows PowerShell , рекомендуется ознакомиться с about_Remote и about_Remote_Requirements для изучения руководств по конфигурации и базовом использовании удалённого взаимодействия. Кроме того, справки по каждому из командлетов удаленного взаимодействия, в частности описание параметров, имеют полезную информацию, которая предназначена, чтобы помочь вам избежать проблем.

Обновленные версии этой темы, и другие справки Windows PowerShell, могут быть скачаны с помощью командлета Update-Help.

ПРИМЕЧАНИЕ: Чтобы просмотреть или изменить настройки для локального компьютера на диске WSMan: , в том числе изменить конфигурацию сессий, доверенных хостов, портов или слушателей, запустите Windows PowerShell с параметром «Запуск от имени администратора».

 

Решение вопросов, связанных с правами доступа и аутентификации

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

 

 Как запустить от имени администратора

ОШИБКА: Отказано в доступе. Вам необходимо запустить этот командлет с повышенными правами.
ERROR: Access is denied. You need to run this cmdlet from an elevated process.

Чтобы запустить сессию удаленного взаимодействия на локальном компьютере, или просмотреть и изменить настройки локального компьютера на диске WSMan:, в том числе изменить конфигурацию сессий, доверенных хостов, портов или слушателей, необходимо запустить Windows PowerShell командой «Запуск от имени администратора».

Чтобы запустить Windows PowerShell командой «Запуск от имени администратора»:
— Щелкните правой кнопкой мыши по значку Windows PowerShell (или Windows PowerShell ISE) и нажмите «Запуск от имени администратора».

Чтобы запустить Windows PowerShell командой «Запуск от имени администратора» в Windows 7 и Windows Server 2008 R2.
— На панели задач Windows, щелкните правой кнопкой мыши значок Windows PowerShell, а затем нажмите кнопку «Запуск от имени администратора».

Примечание: По умолчанию, в Windows Server 2008 R2, значок Windows PowerShell закреплен на панели задач .

 

Как включить удаленное взаимодействие

ОШИБКА: доступ запрещен
ERROR: ACCESS IS DENIED
или
ОШИБКА: В соединении с удаленным хостом было отказано. Убедитесь, что служба WS-Management запущена на удаленном хосте и настроена для прослушивания запросов на правильный порт и HTTP URL.
ERROR: The connection to the remote host was refused. Verify that the WS-Management service is running on the remote host and configured to listen for requests on the correct port and HTTP URL.

Для того, что бы компьютер отправлял удалённые команды не требуется ни каких настроек. Тем не менее, для получения удаленных команд, Windows PowerShell Remoting должен быть настроен на удалённом компьютере. Настройка включает в себя запуск службы WinRM, установка типа запуска для службы WinRM в Automatic режим, настройка прослушивания HTTP и HTTPS соединений, а также создание конфигураций сеансов по умолчанию.

По умолчанию, Windows PowerShell Remoting включен в Windows Server 2012 и более новых версиях серверных систем Windows. Чтобы включить удаленное взаимодействие, на всех других системах, необходимо запустить командлет Enable-PSRemoting. На Windows Server 2012 и более новых версиях Windows Server, можно так же повторно запустить командлет Enable-PSRemoting, это включит удаленное взаимодействие, если оно было отключено.

Чтобы настроить компьютер на получение удаленных команд, воспользуйтесь командлетом Enable-PSRemoting. Этот командлет настроит все необходимые параметры удаленного взаимодействия, настроит конфигурацию сессий и перезапустит службы WinRM, чтобы изменения вступили в силу.

Для подавления всех пользовательских подсказок укажите парметр -Force:

Для получения дополнительной информации см Enable-PSRemoting.

 

Как включить удаленное взаимодействие на предприятии

ОШИБКА: доступ запрещен
ERROR: ACCESS IS DENIED
или
ОШИБКА: В соединении с удаленным хостом было отказано. Убедитесь, что служба WS-Management запущена на удаленном хосте и настроена для прослушивания запросов на правильный порт и HTTP URL.
ERROR: The connection to the remote host was refused. Verify that the WS-Management service is running on the remote host and configured to listen for requests on the correct port and HTTP URL.

Для настройки одного компьютера на приёма соединений и выполнения на нём удалённых команд в Windows PowerShell, используется командлет Enable-PSRemoting.

Чтобы включить удаленное взаимодействие на нескольких компьютерах в предприятии, можно воспользоваться следующим вариантом.
— Чтобы настроить слушателей на удаленное взаимодействие, надо включить параметр «Allow automatic configuration of listeners» в групповой политике. Для получения инструкций см «Как включить слушателей с помощью групповой политики» (раздел ниже).
— Чтобы на нескольких компьютерах изменить тип запуска Windows Remote Management (WinRM) на Automatic, используется командлет Set-Service. Для получения инструкций см «Как изменить тип запуска, в службе WinRM» (раздел ниже).
— Чтобы настроить исключение брандмауэра, надо воспользоваться групповой политикой «Windows Firewall: Allow Local Port Exceptions». Для получения инструкций см «Как создать исключение в брандмауэре, с помощью групповой политики» (раздел ниже).

 

Как включить слушателей с помощью групповой политики

ОШИБКА: доступ запрещен
ERROR: ACCESS IS DENIED
или
ОШИБКА: В соединении с удаленным хостом было отказано. Убедитесь, что служба WS-Management запущена на удаленном хосте и настроена для прослушивания запросов на правильный порт и HTTP URL.
ERROR: The connection to the remote host was refused. Verify that the WS-Management service is running on the remote host and configured to listen for requests on the correct port and HTTP URL.

Чтобы настроить слушателей на всех компьютерах в домене, надо включить политику «Allow automatic configuration of listeners» находящуюся по следующему пути дерева групповых политик:

Computer Configuration\Administrative Templates\Windows Components\Windows Remote Management (WinRM)\WinRM service

Включите политику и укажите IPv4 и IPv6 фильтры. Можно воспользоваться шаблонами (*).

 

Как включить удаленное взаимодействие в сетях общего пользования

ОШИБКА: Не удалось проверить состояние брандмауэра
ERROR: Unable to check the status of the firewall

Командлет Enable-PSRemoting возвращает эту ошибку, когда локальная сеть является публичной, но параметр SkipNetworkProfileCheck не использовался в команде.

На серверных версиях Windows, командлет Enable-PSRemoting успешно выполняется во всех типах сетевого расположения. Он создает правила брандмауэра, разрешающие удаленный доступ к частной и доменой («Home» и «Work») сети. Для общественных сетей, он создает правила брандмауэра, которые разрешают удаленный доступ из той же локальной подсети.

На клиентских версий Windows, командлет Enable-PSRemoting успешно выполняется в частных и доменных сетях. По умолчанию, он не работает на общественных сетях, но если вы используете параметр SkipNetworkProfileCheck, командлет Enable-PSRemoting успешно создает правила брандмауэра, что разрешает трафик из той же локальной подсети.

Чтобы избавиться от ограничения локальной подсетью в сетях общего пользования и разрешить удаленный доступ из любого места сети, надо выполнить следующую команду:

Командлет Set-NetFirewallRule содержится в модуле NetSecurity.

ПРИМЕЧАНИЕ: В Windows PowerShell 2.0, на компьютерах под управлением серверных версий Windows, командлет Enable-PSRemoting создает правила брандмауэра, разрешающие удаленный доступ из частных, доменых и общественных сетях. На компьютерах, работающих под управлением клиентских версий Windows, командлет Enable-PSRemoting создаёт правила брандмауэра, разрешающие удаленный доступ только из частных и доменных сетей.

 

Как настроить исключение брандмауэра с помощью групповой политики

ОШИБКА: доступ запрещен
ERROR: ACCESS IS DENIED
или
ОШИБКА: В соединении с удаленным хостом было отказано. Убедитесь, что служба WS-Management запущена на удаленном хосте и настроена для прослушивания запросов на правильный порт и HTTP URL.
ERROR: The connection to the remote host was refused. Verify that the WS-Management service is running on the remote host and configured to listen for requests on the correct port and HTTP URL.

Чтобы настроить исключение брандмауэра для всех компьютеров в домене, надо настроить политику «Windows Firewall: Allow local port exceptions» по следующему пути в дереве групповых политик:

Computer Configuration\Administrative Templates\Network\Network Connections\Windows Firewall\Domain Profile

Эта политика позволяет членам группы Administrators на компьютере, использовать Windows Firewall в панели управления, чтобы создать исключение в брандмауэре, для службы удаленного управления Windows.

 

Как установить тип запуска службы WinRM

ОШИБКА: доступ запрещен
ERROR: ACCESS IS DENIED

Windows PowerShell Remoting зависит от службы удаленного управления Windows (WinRM). Для поддержки удаленных команд служба должна быть запущена .

На серверных версиях Windows, тип запуска службы удаленного управления Windows (WinRM) автоматический.

Тем не менее, на клиентских версиях Windows, служба WinRM по умолчанию отключена.

Чтобы установить тип запуска службы на удаленном компьютере, можно воспользоваться командлетом Set-Service.

Для запуска команды на нескольких компьютерах, можно создать текстовый или CSV файл с именами компьютеров.

Например, следующие команды получают список имен компьютеров из файла Servers.txt, а затем у всех компьютеров устанавливают тип запуска службы WinRM на автоматический.

Увидеть результаты можно с помощью командлета Get-WmiObject получив данные из объекта Win32_Service. Для получения дополнительной информации см Set-Service.

 

Как настроить конфигурацию сессий по умолчанию

ОШИБКА: доступ запрещен
ERROR: ACCESS IS DENIED

Для подключения к локальному компьютеру и выполнения команд удаленно, локальный компьютер должен содержать конфигурацию сессий для удаленных команд.

По умолчанию, при использовании командлета Enable-PSRemoting, создаётся конфигурация сессий  на локальном компьютере. Удаленные пользователи используют эту конфигурацию сессий каждый раз, когда удалённая команда не использует параметр ConfigurationName.

Если конфигурация по умолчанию на компьютере не зарегистрирована или удалена, можно воспользоваться командлетом Enable-PSRemoting для её восстановления. Вы можете использовать эту команду несколько раз. Это не приведёт к возникновению ошибок, если функция уже настроена.

Если вы изменили конфигураций сессий по умолчанию и хотите восстановить исходные настройки конфигурации сессий по умолчанию. Надо воспользоваться командлетом Unregister-PSSessionConfiguration, для удаления изменённой конфигурации сесий. А затем использвать командлет Enable-PSRemoting, что бы восстановить настройки по умолчанию. командлет Enable-PSRemoting не изменяет существующую конфигурацию сессий.

Примечание: Командлет Enable-PSRemoting восстанавливая конфигурацию сеанса по умолчанию, он не создает явные дескрипторы безопасности для конфигураций. Вместо этого, конфигурация наследуют дескриптор безопасности RootSDDL, который является дескриптором безопасной по умолчанию.

Чтобы увидеть дескриптор безопасности RootSDDL, выполните:

Чтобы изменить RootSDDL, используются командлеты Set-Item на диске WSMan:. Чтобы изменить дескриптор безопасности конфигурации сеанса, используйется командлет Set-PSSessionConfiguration с параметром SecurityDescriptorSDDL или ShowSecurityDescriptorUI.
Для получения более подробной информации о диске WSMan:, можно посмотреть раздел справки для поставщика WS-Management («Get-Help WSMan»).

 

Как обеспечить администратора необходимыми полномочиями

ОШИБКА: доступ запрещен
ERROR: ACCESS IS DENIED

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

Если текущий пользователь является членом группы администраторов на удаленном компьютере, или может предоставить учетные данные члена группы администраторов, для удаленного подключения нужно передать учётные данные администратора с помощью параметра Credential в командлетах New-PSSession, Enter-PSSession или Invoke-Command.

Например, следующая команда предоставляет учетные данные администратора.

Для получения более подробной информации о параметре Credential, можно посмотреть справку к командлетам New-PSSession, Enter-PSSession или Invoke-Command.

 

Как включить удаленное взаимодействие для пользователей не являющимися администраторами

ОШИБКА: доступ запрещен
ERROR: ACCESS IS DENIED

Чтобы установить PSSession или выполнить команду на удаленном компьютере, текущий пользователь должен иметь разрешение на использование конфигураций сеансов на удаленном компьютере.

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

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

Следующая команда открывает лист свойств, что позволяет изменять дескриптор безопасности Microsoft.PowerShell конфигурации сессии по умолчанию на локальном компьютере.

Для получения дополнительной информации см about_Session_Configurations.

 

Как включить удаленное взаимодействие для администраторов в других доменах

ОШИБКА: доступ запрещен
ERROR: ACCESS IS DENIED

Когда пользователь из другого домена являются членом группы администраторов на локальном компьютере, этот пользователь не может подключиться к локальной компьютеру удаленно с правами администратора. По умолчанию, удаленные подключения из других доменов запускаются с токенами прав стандартных пользователей.

Тем не менее, вы можете изменить поведение по умолчанию, используя запись реестра LocalAccountTokenFilterPolicy и запускать удаленные подключения пользователей которые являются членами группы администраторов с правами администратора.

Внимание: Ключ LocalAccountTokenFilterPolicy отключает контроль учетных записей (UAC) удаленных подключений для всех пользователей со всех компьютеров. Обдумайте последствия изменения этого параметра, прежде чем изменять политику.

Чтобы изменить политику, используйте следующую команду, чтобы установить значение параметра реестра LocalAccountTokenFilterPolicy на 1.

 

Как использовать IP адрес при запуске команды удаленно

ОШИБКА: Клиенту WinRM не удается обработать запрос. Если схема аутентификации отличается от Kerberos или, если клиентский компьютер не присоединен к домену, то необходимо использовать протокол HTTPS или на сервере должны быть добавлены установки  конфигурации TrustedHosts.

ERROR: The WinRM client cannot process the request. If the authentication scheme is different from Kerberos, or if the client computer is not joined to a domain, then HTTPS transport must be used or the destination machine must be added to the TrustedHosts configuration setting.

Параметр ComputerName командлетов New-PSSession, Enter-PSSession и Invoke-Command могут принимать IP-адрес в качестве значения. Тем не менее, поскольку проверка подлинности Kerberos не поддерживает IP-адреса, когда вы указываете IP адрес, по умолчанию используется аутентификация NTLM.

Для использования проверки подлинности NTLM, требуется следующая процедура для удаленного взаимодействия.

1. Настроить компьютер для протокола HTTPS или добавить IP-адрес удаленного компьютера в список TrustedHosts на локальном компьютере.

Для получения инструкций см «Как добавить компьютер в список TrustedHosts» ниже.

2. Необходимо использовать параметр Credential во всех удаленных командах. Это необходимо, даже если вы указываете параметры аутентификации текущего пользователя.

 

Как создать удалённое подключение к компьютеру находящемуся в рабочей группе

ОШИБКА: Клиенту WinRM не удается обработать запрос. Если схема аутентификации отличается от Kerberos или, если клиентский компьютер не присоединен к домену, то необходимо использовать протокол HTTPS или на сервере должны быть добавлены установки  конфигурации TrustedHosts.

ERROR: The WinRM client cannot process the request. If the authentication scheme is different from Kerberos, or if the client computer is not joined to a domain, then HTTPS transport must be used or the destination machine must be added to the TrustedHosts configuration setting.

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

1. Настроить компьютер для протокола HTTPS или добавить имена удаленных компьютеров в список TrustedHosts на локальном компьютере.

Для получения инструкций см «Как добавить компьютер в список TrustedHosts» ниже.

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

Чтобы установить пароль для учетной записи пользователя, используйте «Учетные записи пользователей» в «Панели управления».

3. Используйте параметр Credential во всех удаленных командах.

Это необходимо, даже если вы отправляете параметры аутентификации текущего пользователя.

 

Как добавить компьютер в список доверенных хостов

Пункт TrustedHosts может содержать список имён компьютеров, IP-адреса и полные доменные имена разделенные запятыми. Шаблонные символы разрешены.

Чтобы просмотреть или изменить список доверенных узлов, можно воспользоваться диском WSMan:. Объект TrustedHost находится в дирректории WSMan:\localhost\Client.

Только члены группы администраторов данного компьютера имеют разрешения, на изменение списка доверенных хостов компьютера.

Внимание: Значение, которое устанавливается для элемента TrustedHosts влияет на всех пользователей компьютера.

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

Также можно использовать Set-Location (псевдоним cd), чтобы перейти в данную директорию на диске WSMan:. Например:

Чтобы добавить все компьютеры в список доверенных хостов, используйте следующую команду, которая ставит значение * (все) в ComputerName

Можно, также использовать шаблонный символ (*), чтобы добавить все компьютеры в конкретной области в список доверенных хостов. Например, следующая команда добавляет все компьютеры в домене Fabrikam в список доверенных хостов.

Чтобы добавить имена конкретных компьютеров в список доверенных хостов, используйте следующий формат команды:

,где каждое значение < имя_компьютера> должно иметь следующий формат:

Например:

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

Например, чтобы добавить компьютер Server01 в в существующий список доверенных хостов, используйте следующую команду

Чтобы добавить IP-адреса компьютеров в список доверенных хостов, используется следующий формат команды:

Например:

Чтобы добавить компьютер в список TrustedHosts удаленного компьютера, можно воспользоваться командлетом Connect-WSMan. Командлет  Connect-WSMan используется для добавления узла на диске WSMan: удаленного компьютера с локального компьютера. Затем используйте команду Set-Item, чтобы добавить компьютер.

Для получения более подробной информации о командлете Connect-WSMan командлета см справку Connect-WSMan.

 

Устранение неполадок конфигурации компьютера

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

 

Как настроить удаленное взаимодействие на переменных портах

ОШИБКА: В соединении с удаленным хостом было отказано. Убедитесь, что служба WS-Management запущена на удаленном хосте и настроена для прослушивания запросов на правильный порт и HTTP URL.
ERROR: The connection to the remote host was refused. Verify that the WS-Management service is running on the remote host and configured to listen for requests on the correct port and HTTP URL.

По умолчанию Windows PowerShell Remoting использует 80 порт для HTTP протокола. Порт по умолчанию используется, когда пользователь не указал параметры ConnectionURI или порт в удаленной команды.

Чтобы изменить порт по умолчанию, который использует Windows PowerShell, используйте командлет Set-Item на диске WSMan:, чтобы изменить значение порта для прослушки.

Например, следующая команда изменяет порт по умолчанию на 8080.

 

Как настроить удаленное взаимодействие через прокси-сервер

ОШИБКА: клиент не может подключиться к месту назначения, указанного в запросе. Убедитесь, что служба в месте назначения работает и принимает запросы.

ERROR: The client cannot connect to the destination specified in the request. Verify that the service on the destination is running and is accepting requests.

Поскольку Windows PowerShell Remoting использует протокол HTTP, то он зависит от установок прокси на HTTP. На предприятиях, которые имеют прокси-серверы, пользователи не могут получить доступ к удаленному компьютеру Windows PowerShell напрямую.

Чтобы решить эту проблему, передайте настройки прокси-сервера при запуске удаленных команд.
Доступны следующие параметры:

— ProxyAccessType
— ProxyAuthentication
— ProxyCredential

Чтобы задать эти параметры для определенной команды, используйте следующую процедуру:

1. Используйте параметры ProxyAccessType, ProxyAuthentication и ProxyCredential с командлетом New-PSSessionOption, для создания объекта параметров сеанса с настройкми прокси-сервера  вашей сети. Сохраните объект в переменной.

2. Передайте переменную, которая содержит объект с парматрами вашего прокси сервера в  параметр SessionOption командлетов New-PSSession, Enter-PSSession, или Invoke-Command

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

Для получения более подробной информации о командлете New-PSSessionOption см справку по New-PSSessionOption.

Чтобы задать эти параметры для всех удаленных команд в текущем сеансе, присвойте значение объекта  полученного из командлета New-PSSessionOption переменной $PSSessionOption. Для получения более подробной информации о привилегированной переменной $PSSessionOption см about_Preference_Variables.

Чтобы задать эти параметры для всех удаленных команд всех сессий Windows PowerShell на локальном компьютере, надо добавить привилегированную переменную $PSSessionOption в свой профиль Windows PowerShell. Для получения более подробной информации о профилях Windows PowerShell см about_Profiles.

 

Как обнаружить 32-битную сессию на 64-разрядном компьютере

ОШИБКА: Элемент «<tool-Name>» не распознается, как имя командлета, функции, файла скрипта или выполняемой программы. Проверьте правильность написания имени, или если был указан путь, убедитесь, что путь является правильным и попробуйте еще раз.

ERROR: The term «<tool-Name>» is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.

Если удаленный компьютер работает под управлением 64-разрядной версии Windows, а дистанционная команда использует 32-битную конфигурацию сеанса, такую как Microsoft.PowerShell32. Служба удаленного управление Windows (WinRM) загружает процесс WOW64 на Windows, а Windows автоматически перенаправляет все ссылки из каталога %WinDir%\System32, в каталог %WINDIR%\SysWOW64.

В результате, если вы пытаетесь использовать инструменты из каталога System32, которые не имеют аналогов в каталоге SysWow64, таких как Defrag.exe, инструменты не могут найтись в данном каталоге.

Чтобы найти архитектуру процессора, который используется в сессии, можно воспользоваться значением переменной PROCESSOR_ARCHITECTURE окружающей среды. Следующая команда находит архитектуру процессора сессии из переменной $s.

Для получения более подробной информации о конфигурациях сеансов см about_session_configurations.

 

Поиск и устранение неисправностей политик и вопросы привилегий

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

 

Как изменить политику выполнения для командлетов Import-PSsession и Import-Module

ОШИБКА: Import-Module: Файл <имя файла> не может быть загружен, потому что выполнение скриптов отключено в этой системе.

ERROR: Import-Module: File <filename> cannot be loaded because the execution of scripts is disabled on this system.

Командлеты Import-PSSession и Export-PSSession создают модули, которые содержат не подписанные файлы скриптов и файлы форматирования.

Чтобы импортировать модули созданные этими командлетами, с помощью командлетов Import-PSSession или Import-Module, измените значение политики выполнения в текущем сеансе на Restricted или AllSigned. Дополнительные сведения о политиках выполнения Windows PowerShell можно посмотреть в about_Execution_Policies.

Чтобы импортировать модули без изменения политики выполнения для локального компьютера, который изменяет реестр, можно использовать параметр Scope командлета Set-ExecutionPolicy, что бы задать менее жёсткую политику выполнения для одного процесса.

Например, следующая команда запускает процесс с политикой выполнения RemoteSigned. Изменение политики выполнения распространяется только на текущий процесс и не изменяет параметры реестра Windows PowerShell ExecutionPolicy.

Можно, также использовать параметр ExecutionPolicy при запуске PowerShell.exe, чтобы начать один сеанс с менее ограничительной политикой выполнения.

Для получения более подробной информации о командлетах см Import-PSSession, Export-PSSession и Import-Module. Для получения более подробной информации о политике выполнения, см about_Execution_Policies. Для получения более подробной информации о powershell.exe, выполните в консоли «PowerShell.exe -?».

 

Как устанавливать и изменять квоты

ОШИБКА: Общее кол-во данных, полученных от удаленного клиента превысили разрешенный максимум.

ERROR: The total data received from the remote client exceeded allowed maximum.

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

Следующие квоты доступны в базовой конфигурации.

— Поставщик WSMan (WSMan:) предоставляет несколько параметров квот, таких, как  настройки MaxEnvelopeSizeKB и MaxProviderRequests  в  узле WSMan:\<ComputerName> и настройки MaxConcurrentOperations, MaxConcurrentOperationsPerUser и MaxConnections  в узле WSMan:\<ComputerName>\Service,

— Вы можете защитить локальный компьютер с помощью параметров MaximumReceivedDataSizePerCommand и MaximumReceivedObjectSize командлета New-PSSessionOption и привилегированной переменной $PSSessionOption.

— Вы можете защитить удаленный компьютер, добавив ограничения на конфигурацию сеанса, используя параметры MaximumReceivedDataSizePerCommandMB и MaximumReceivedObjectSizeMB командлета Register-PSSessionConfiguration.

Когда квоты конфликтуют с командой, Windows PowerShell создаёт ошибку.

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

Например, следующая команда увеличивает квоту на размер объектов в конфигурации сеанса Microsoft.PowerShell на удаленном компьютере с 10 МБ (значение по умолчанию) до 11 МБ.

Для получения более подробной информации о командлете New-PSSessionOption см New-PSSessionOption.

Для получения более подробной информации о квотах WS-Management, можно посмотреть раздел справки для WS-Management провайдера («Get-Help WS-Management»).

 

Как решить ошибки тайм-аута

ОШИБКА: Служба WS-Management не может завершить операцию в течение времени, указанного в OperationTimeout.

ERROR: The WS-Management service cannot complete the operation within the time specified in OperationTimeout.

Вы можете использовать тайм-ауты, чтобы защитить локальный компьютер и удаленный компьютер от чрезмерного использования ресурсов, как случайного, так и злонамеренного. Когда тайм-ауты установлены на локальном и удаленном компьютере, Windows PowerShell использует самое короткое время ожидания.

Следующие тайм-ауты доступны в базовой конфигурации.

— Провайдер WSMan (WSMan:) предоставляет на стороны клиента и сервера несколько  параметров тайм-аута, такие как настройка MaxTimeoutms в узле WSMan:\<ComputerName> и настройки EnumerationTimeoutms и MaxPacketRetrievalTimeSeconds в узле WSMan:\<ComputerName>\Service.

-Можно защитить локальный компьютер с помощью параметров CancelTimeout, IdleTimeout, OpenTimeout и OperationTimeout командлета New-PSSessionOption и привилегированной переменной $PSSessionOption.

— Также можно защитить удаленный компьютер, установив значения тайм-аутов для сессии программно в конфигурации сессии.

Когда значение тайм-аута не разрешает завершить операцию, Windows PowerShell прерывает операцию и генерирует сообщение об ошибке.

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

Например, следующие команды используют командлет New-PSSessionOption для создания объекта параметра сеанса со значением OperationTimeout в 4 минуты (240000 MS), а затем используют объект параметра сеанса, чтобы создать удаленный сеанс.

Для получения более подробной информации о тайм-аутах WS-Management, можно посмотреть раздел справки для поставщика WS-Management (например «Get-Help WSMan»).

Для получения более подробной информации о командлете New-PSSessionOption см New-PSSessionOption.

 

Поведение при зависания, поиск и исправление неисправностей

В этом разделе обсуждаются проблемы удаленного взаимодействия, которые мешают командам выполнятся или не допускают или задерживают вывод строк в Windows PowerShell.

 

Как прервать команду

Некоторые программы Windows, такие как программы с пользовательским интерфейсом, консольные приложения, которые выводят подсказки и консольные приложения, использующие интерфейс Win32 API, не корректно работают в удаленном хосте Windows PowerShell.

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

Для завершения работы зависшей программы, нажмите CTRL + C. Для просмотра ошибок, которые возможно выводились, введите «$error» в локальном хосте и удаленном сеансе.

 

Как восстановиться после сбоя операции

ОШИБКА: Операция ввода/вывода была прервана из-за разрыва соединения или по запросу от приложения.

ERROR: The I/O operation has been aborted because of either a thread exit or an application request.

Эта ошибка возвращается, когда операция прерывается, до ее завершения. Как правило, это происходит, когда служба WinRM останавливается или перезапускается, а другие операции WinRM остаются в работе.

Чтобы решить эту проблему, убедитесь, что служба WinRM запущена и повторите команду.

1. Запустите Windows PowerShell с параметром «Запуск от имени администратора».
2. Выполните следующую команду:

3. Повторно запустите команду, которая генерировала ошибку.

СМОТРИТЕ ТАКЖЕ
about_Remote
about_Remote_Requirements
about_Remote_Variables

Комментарии:

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *