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


about_Remote_Troubleshooting

Назначение: Windows PowerShell 2.0, Windows PowerShell 3.0

РАЗДЕЛ

about_Remote_Troubleshooting

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

Содержит описание того, как устранять неполадки удаленных операций в Windows PowerShell®.

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

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

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

Обновленные версии этого, а также других разделов справки по Windows PowerShell можно скачать с помощью командлета Update-Help или найти в Интернете в библиотеке Microsoft TechNet по адресу https://technet.microsoft.com/library/hh847850(v=wps.630).aspx.

ПРИМЕЧАНИЕ. Для просмотра и изменения параметров локального компьютера на диске 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
        - 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 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.

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

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

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

  • – Чтобы установить тип запуска «Авто» для службы удаленного управления Windows (WinRM), воспользуйтесь командлетом Set-Service. Инструкции см. ниже в разделе «Установка типа запуска службы WinRM».

  • – Чтобы включить исключение брандмауэра, воспользуйтесь групповой политикой «Брандмауэр Windows: Разрешать локальные исключения портов». Инструкции см. в ниже в разделе «Создание исключения брандмауэра с помощью групповой политики».

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

        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.

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

        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 выполняется успешно для всех типов сетевого расположения. Он создает правила брандмауэра, разрешающие удаленный доступ к частным и доменным («Домашняя» и «Рабочая») сетям. Для общедоступных сетей он создает правила брандмауэра, разрешающие удаленный доступ из той же локальной подсети.

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

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

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

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

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

УСТАНОВКА ТИПА ЗАПУСКА ДЛЯ СЛУЖБЫ WINRM

        ERROR:  ACCESS IS DENIED

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

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

Однако в клиентских версиях Windows служба 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.

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

        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 командлета New-PSSession, Enter-PSSession или Invoke-Command.

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

        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 отключает ограничения на удаленное взаимодействие функции контроля учетных записей для всех пользователей на всех затрагиваемых компьютерах. Перед изменением политики внимательно изучите возможные последствия.

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

        C:\PS> 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.

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

В случае использования аутентификации 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»

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

        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>

Например:

        Set-Item wsman:\localhost\Client\TrustedHosts -Value Server01.Domain01.Fabrikam.com

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

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

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

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

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

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

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

Например, приведенная ниже команда изменяет порт по умолчанию на 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.

Так как при удаленном взаимодействии 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 -ProxyAccessType IEConfig `
                -ProxyAuthentication Negotiate -ProxyCredential Domain01\User01

        C:\PS> New-PSSession -ConnectionURI https://www.fabrikam.com

Подробнее о командлете New-PSSessionOption см. в посвященном ему разделе. Вставить здесь текст раздела.

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

Чтобы задать эти параметры для всех удаленных команд во всех сеансах Windows PowerShell на локальном компьютере, добавьте привилегированную переменную $PSSessionOption в профиль Windows PowerShell. Дополнительные сведения о профилях Windows 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 автоматически перенаправляет все ссылки на каталог %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

        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.

        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:\<имя_компьютера> и параметры MaxConcurrentOperations, MaxConcurrentOperationsPerUser и MaxConnections в узле WSMan:\<имя_компьютера>\Service.

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

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

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

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

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

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

Подробнее о командлете New-PSSessionOption см. в посвященном ему разделе.

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

УСТРАНЕНИЕ ОШИБОК ТАЙМ-АУТА

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

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

В базовой конфигурации доступны указанные ниже тайм-ауты.

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

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

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

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

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

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

        C:\PS> $pso = New-PSSessionoption -OperationTimeout 240000

        C:\PS> New-PSSession -ComputerName Server01 -sessionOption $pso

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

Подробнее о командлете New-PSSessionOption см. в посвященном ему разделе.

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

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

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

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

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

  • 1. Запустите Windows PowerShell в режиме «Запуск от имени администратора».

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

             Start-Service WinRM
    
  • 3. Повторно выполните команду, вызвавшую ошибку.

СМ. ТАКЖЕ

Версия в Интернете: https://technet.microsoft.com/library/hh847850(v=wps.630).aspx

about_Remote

about_Remote_Requirements

about_Remote_Variables