Поделиться через


Сведения об удаленном устранении неполадок

КРАТКОЕ ОПИСАНИЕ

Описывает, как устранять неполадки с удаленными операциями в PowerShell.

ПОДРОБНОЕ ОПИСАНИЕ

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

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

Примечание

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

УСТРАНЕНИЕ НЕПОЛАДОК С РАЗРЕШЕНИЯМИ И ПРОВЕРКОЙ ПОДЛИННОСТИ

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

ЗАПУСК ОТ ИМЕНИ АДМИНИСТРАТОРА

ОШИБКА. Доступ запрещен. Этот командлет необходимо запустить из процесса с повышенными привилегиями.

Чтобы запустить удаленный сеанс на локальном компьютере, а также просмотреть или изменить параметры локального компьютера на диске 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

or

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.

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

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

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

Enable-PSRemoting

Чтобы отключить все запросы пользователя, введите:

Enable-PSRemoting -Force

Дополнительные сведения см. в разделе Enable-PSRemoting.

ВКЛЮЧЕНИЕ УДАЛЕННОГО ВЗАИМОДЕЙСТВИЯ НА ПРЕДПРИЯТИИ

ERROR:  ACCESS IS DENIED

or

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.

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

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

  • Чтобы настроить прослушиватели для удаленного взаимодействия, включите групповую политику "Разрешить автоматическую настройку прослушивателей". Инструкции см. в разделе Включение прослушивателей с помощью групповая политика (ниже).

  • Чтобы задать для удаленного управления Windows (WinRM) тип автоматического запуска на нескольких компьютерах, используйте Set-Service командлет . Инструкции см. в разделе How to Set the Startup Type of the WinrM Service (How to Set the Startup Type of the WinrM Service) (Как задать тип запуска службы WinrM) (ниже).

  • Чтобы включить исключение брандмауэра, используйте групповую политику "Брандмауэр Windows: разрешить исключения локальных портов". Инструкции см. в разделе How to Create a Firewall Exception by Using a групповая политика (ниже).

ВКЛЮЧЕНИЕ ПРОСЛУШИВАТЕЛЕЙ С ПОМОЩЬЮ ГРУППОВОЙ ПОЛИТИКИ

ERROR:  ACCESS IS DENIED

or

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 \Удаленное управление Windows (WinRM)\Служба WinRM

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

ВКЛЮЧЕНИЕ УДАЛЕННОГО ВЗАИМОДЕЙСТВИЯ В ОБЩЕДОСТУПНЫХ СЕТЯХ

ERROR:  Unable to check the status of the firewall

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

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

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

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

Set-NetFirewallRule -Name "WINRM-HTTP-In-TCP-PUBLIC" -RemoteAddress Any

Командлет Set-NetFirewallRule экспортируется модулем NetSecurity.

Примечание

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

ВКЛЮЧЕНИЕ ИСКЛЮЧЕНИЯ БРАНДМАУЭРА С ПОМОЩЬЮ ГРУППОВОЙ ПОЛИТИКИ

ERROR:  ACCESS IS DENIED

or

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: разрешить исключения локальных портов" в следующем групповая политика пути:

Конфигурация компьютера\Административные шаблоны\Сеть \Сетевая Connections\Брандмауэр Windows\Профиль домена

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

НАСТРОЙКА ТИПА ЗАПУСКА СЛУЖБЫ WINRM

ERROR:  ACCESS IS DENIED

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

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

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

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

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

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

$servers = Get-Content servers.txt
Set-Service WinRM -ComputerName $servers -startuptype Automatic

Чтобы просмотреть результаты, используйте 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, введите:

Get-Item wsman:\localhost\Service\RootSDDL

Чтобы изменить RootSDDL, используйте Set-Item командлет на диске WSMan: . Чтобы изменить дескриптор безопасности конфигурации сеанса, используйте Set-PSSessionConfiguration командлет с параметрами SecurityDescriptorSDDL или ShowSecurityDescriptorUI .

Дополнительные сведения о диске WSMan: см. в разделе справки для поставщика WSMan (Get-Help wsman).

ПРЕДОСТАВЛЕНИЕ УЧЕТНЫХ ДАННЫХ АДМИНИСТРАТОРА

ERROR:  ACCESS IS DENIED

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

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

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

Invoke-Command -ComputerName Server01 -Credential Domain01\Admin01

Дополнительные сведения о параметре Credential см. в разделах New-PSSession, Enter-PSSession или Invoke-Command.

ВКЛЮЧЕНИЕ УДАЛЕННОГО ВЗАИМОДЕЙСТВИЯ ДЛЯ ПОЛЬЗОВАТЕЛЕЙ БЕЗ ПРАВ АДМИНИСТРАТОРА

ERROR:  ACCESS IS DENIED

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

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

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

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

Set-PSSessionConfiguration Microsoft.PowerShell -ShowSecurityDescriptorUI

Дополнительные сведения см. в разделе about_Session_Configurations.

ВКЛЮЧЕНИЕ УДАЛЕННОГО ВЗАИМОДЕЙСТВИЯ ДЛЯ АДМИНИСТРАТОРОВ В ДРУГИХ ДОМЕНАХ

ERROR:  ACCESS IS DENIED

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

Однако можно использовать запись реестра LocalAccountTokenFilterPolicy, чтобы изменить поведение по умолчанию и разрешить удаленным пользователям, которые являются членами группы "Администраторы", работать с правами администратора.

Внимание!

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

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

New-ItemProperty -Name LocalAccountTokenFilterPolicy `
  -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System `
  -PropertyType DWord -Value 1

ИСПОЛЬЗОВАНИЕ IP-АДРЕСА В УДАЛЕННОЙ КОМАНДЕ

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.

Параметры New-PSSessionComputerName командлетов и Enter-PSSessionInvoke-Command принимают IP-адрес в качестве допустимого значения. Однако, так как проверка подлинности Kerberos не поддерживает IP-адреса, проверка подлинности NTLM используется по умолчанию при каждом указании IP-адреса.

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

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

    Инструкции см. в разделе Добавление компьютера в список TrustedHosts ниже.

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

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

УДАЛЕННОЕ ПОДКЛЮЧЕНИЕ С КОМПЬЮТЕРА НА ОСНОВЕ РАБОЧЕЙ ГРУППЫ

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, влияет на всех пользователей компьютера.

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

Get-Item wsman:\localhost\Client\TrustedHosts

Вы также можете использовать Set-Location командлет (псевдоним = cd) для перехода через диск WSMan: к расположению. Пример:

cd WSMan:\localhost\Client; dir

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

Set-Item wsman:localhost\client\trustedhosts -Value *

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

Set-Item wsman:localhost\client\trustedhosts *.fabrikam.com

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

Set-Item wsman:\localhost\Client\TrustedHosts -Value <ComputerName>

Где каждое значение <ComputerName> должно иметь следующий формат:

<Computer>.<Domain>.<Company>.<top-level-domain>

Пример:

$server = 'Server01.Domain01.Fabrikam.com'
Set-Item wsman:\localhost\Client\TrustedHosts -Value $server

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

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

$curValue = (Get-Item wsman:\localhost\Client\TrustedHosts).value

Set-Item wsman:\localhost\Client\TrustedHosts -Value `
  "$curValue, Server01.Domain01.Fabrikam.com"

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

Set-Item wsman:\localhost\Client\TrustedHosts -Value <IP Address>

Пример:

Set-Item wsman:\localhost\Client\TrustedHosts -Value 172.16.0.0

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

Дополнительные сведения о командлете см. в Connect-WSMan разделе Connect-WSMan.

УСТРАНЕНИЕ НЕПОЛАДОК С КОНФИГУРАЦИЕЙ КОМПЬЮТЕРА

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

НАСТРОЙКА УДАЛЕННОГО ВЗАИМОДЕЙСТВИЯ НА АЛЬТЕРНАТИВНЫХ ПОРТАХ

ERROR:  The connection to the specified 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 удаленного взаимодействия использует порт 80 для транспорта HTTP по умолчанию. Порт по умолчанию используется всякий раз, когда пользователь не указывает параметры ConnectionURI или Port в удаленной команде.

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

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

Set-Item wsman:\localhost\listener\listener*\port -Value 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.

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

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

  • ProxyAccessType
  • ProxyAuthentication
  • ProxyCredential

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

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

  2. Используйте переменную, содержащую объект option, в качестве значения параметра New-PSSessionSessionOption команды , Enter-PSSessionили Invoke-Command .

Например, следующая команда создает объект параметра сеанса с параметрами сеанса прокси-сервера, а затем использует объект для создания удаленного сеанса.

$SessionOption = New-PSSessionOption -ProxyAccessType IEConfig `
-ProxyAuthentication Negotiate -ProxyCredential Domain01\User01

New-PSSession -ConnectionURI https://www.fabrikam.com

Дополнительные сведения о командлете см. в New-PSSessionOption разделе New-PSSessionOption.

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

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

ОБНАРУЖЕНИЕ 32-РАЗРЯДНОГО СЕАНСА НА 64-РАЗРЯДНОМ КОМПЬЮТЕРЕ

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 автоматически перенаправляет все ссылки в $env:Windir\System32 каталог $env:Windir\SysWOW64 .

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

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

$s = New-PSSession -ComputerName Server01 -ConfigurationName CustomShell
Invoke-Command -Session $s {$env:PROCESSOR_ARCHITECTURE}
x86

Дополнительные сведения о конфигурациях сеансов см. в разделе about_Session_Configurations.

УСТРАНЕНИЕ НЕПОЛАДОК С ПОЛИТИКОЙ И ПРЕДПОЧТЕНИЯМИ

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

ИЗМЕНЕНИЕ ПОЛИТИКИ ВЫПОЛНЕНИЯ ДЛЯ IMPORT-PSSESSION И 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, политика выполнения в текущем сеансе не может быть Ограничена или AllSigned. (Сведения о политиках выполнения Windows PowerShell см. в разделе about_Execution_Policies.

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

Например, следующая команда запускает процесс с политикой выполнения RemoteSigned. Изменение политики выполнения влияет только на текущий процесс и не изменяет параметр реестра 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 -?".

НАСТРОЙКА И ИЗМЕНЕНИЕ КВОТ

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 .

Если квоты конфликтуют с командой, PowerShell создает ошибку.

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

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

Set-PSSessionConfiguration -Name microsoft.PowerShell `
  -MaximumReceivedObjectSizeMB 11 -Force

Дополнительные сведения о командлете см. в New-PSSessionOption разделе New-PSSessionOption.

Дополнительные сведения о квотах WS-Management см. в разделе about_WSMan_Provider.

УСТРАНЕНИЕ ОШИБОК ВРЕМЕНИ ОЖИДАНИЯ

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

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

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

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

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

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

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

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

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

$pso = New-PSSessionoption -OperationTimeout 240000

New-PSSession -ComputerName Server01 -sessionOption $pso

Дополнительные сведения о времени ожидания WS-Management см. в разделе справки для поставщика WSMan (введите Get-Help WSMan).

Дополнительные сведения о командлете см. в New-PSSessionOption разделе New-PSSessionOption.

УСТРАНЕНИЕ НЕПОЛАДОК ПРИ НЕОТВЕЧЕННОМ ПОВЕДЕНИИ

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

ПРЕРЫВАНИЕ КОМАНДЫ

Некоторые собственные программы Windows, такие как программы с пользовательским интерфейсом, консольные приложения, запрашивающие ввод, и консольные приложения, использующие API консоли Win32, работают неправильно на удаленном узле 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. Запустите PowerShell с параметром "Запуск от имени администратора".

  2. Выполните следующую команду:

    Start-Service WinRM

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

СМ. ТАКЖЕ

about_Remote

about_Remote_Requirements

about_Remote_Variables