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


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

Краткое описание

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

Подробное описание

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

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

Примечание

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

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

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

Если конфигурация политики неверна, может возникнуть следующая ошибка:

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

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

PS> Get-WSManInstance winrm/config/listener -Enumerate

cfg                   : https://schemas.microsoft.com/wbem/wsman/1/config/listener
xsi                   : http://www.w3.org/2001/XMLSchema-instance
Source                : GPO
lang                  : en-US
Address               : *
Transport             : HTTP
Port                  : 5985
Hostname              :
Enabled               : true
URLPrefix             : wsman
CertificateThumbprint :
ListeningOn           : {}

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

  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 на локальном компьютере.

  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.

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

Чтобы изменить порт по умолчанию, используемый 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 предпочтения. Дополнительные сведения см. в разделе 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. Сведения о политиках выполнения PowerShell см. в разделе about_Execution_Policies.

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

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

Set-ExecutionPolicy -Scope process -ExecutionPolicy RemoteSigned

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

PowerShell.exe -ExecutionPolicy RemoteSigned

Дополнительные сведения о политиках выполнения см. в разделе about_Execution_Policies. Для получения дополнительных сведений введите 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 предпочтения.

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

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

Ограничения Linux и macOS

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

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

См. инструкции по проверке подлинности OMI .

СМ. ТАКЖЕ

Import-PSSession

Export-PSSession

Import-Module

about_Remote

about_Remote_Requirements

about_Remote_Variables