关于远程故障排除

简短说明

介绍如何在 PowerShell 中排查远程操作问题。

长说明

本部分介绍使用基于 WS-Management 技术的 PowerShell 远程处理功能时可能会遇到的一些问题,并建议解决这些问题。

在使用 PowerShell 远程处理之前,请参阅 about_Remoteabout_Remote_Requirements ,获取有关配置和基本用法的指南。 此外,每个远程处理 cmdlet 的帮助主题(尤其是参数说明)都有有助于避免问题的有用信息。

注意

若要查看或更改 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 Server 2012及更新版本的 Windows Server 上启用Windows PowerShell远程处理。 在所有其他系统上,运行 Enable-PSRemoting cmdlet 以启用远程处理。 如果禁用远程处理,还可以运行 Enable-PSRemoting cmdlet,在Windows Server 2012及更新版本的 Windows Server 上重新启用远程处理。

若要配置计算机以接收远程命令,请使用 Enable-PSRemoting cmdlet。 以下命令将启用所有必需的远程设置,启用会话配置,并重启 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 cmdlet。

若要为企业中的多台计算机启用远程处理,可以使用以下缩放选项。

  • 若要配置侦听器进行远程处理,请启用 “允许自动配置侦听器” 组策略。

  • 若要在多台计算机上将 Windows 远程管理 (WinRM) 的启动类型设置为“自动”,请使用 Set-Service cmdlet。

  • 若要启用防火墙例外,请使用 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 参数时,cmdlet 将返回此错误。

在服务器版本的 Windows 上, Enable-PSRemoting 在所有网络位置类型上都成功。 它创建防火墙规则,允许远程访问专用和域 (“家庭”和“工作”) 网络。 对于公用网络,它会创建允许从同一本地子网进行远程访问的防火墙规则。

在客户端版本的 Windows 上, Enable-PSRemoting 在专用和域网络上成功。 默认情况下,它在公用网络上失败,但如果使用 SkipNetworkProfileCheck 参数, Enable-PSRemoting 则会成功并创建允许来自同一本地子网的流量的防火墙规则。

若要删除公用网络上的本地子网限制并允许从任何位置进行远程访问,请运行以下命令:

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

Set-NetFirewallRule该 cmdlet 由 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 cmdlet。

若要在多台计算机上运行命令,可以创建计算机名称的文本文件或 CSV 文件。

例如,以下命令从文件中获取计算机名称的列表, Servers.txt 然后将所有计算机上的 WinRM 服务的启动类型设置为 “自动”。

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

若要查看结果,请将 Get-WMIObject cmdlet 与 Win32_Service 对象一起使用。 有关详细信息,请参阅 Set-Service

如何重新创建默认会话配置

ERROR:  ACCESS IS DENIED

若要连接到本地计算机并远程运行命令,本地计算机必须包含远程命令的会话配置。

使用 Enable-PSRemoting时,它会在本地计算机上创建默认会话配置。 只要远程命令不包含 ConfigurationName 参数,远程用户就使用这些会话配置。

如果计算机上的默认配置已取消注册或删除,请使用 Enable-PSRemoting cmdlet 重新创建它们。 可以重复使用此 cmdlet。 如果已配置功能,则不会生成错误。

如果更改默认会话配置并想要还原原始默认会话配置,请使用 Unregister-PSSessionConfiguration cmdlet 删除已更改的会话配置, Enable-PSRemoting 然后使用 cmdlet 还原这些配置。 Enable-PSRemoting 不会更改现有会话配置。

注意

还原默认会话配置时 Enable-PSRemoting ,它不会为配置创建显式安全描述符。 相反,配置会继承 RootSDDL 的安全描述符,该描述符默认是安全的。

若要查看 RootSDDL 安全描述符,请键入:

Get-Item wsman:\localhost\Service\RootSDDL

若要更改 RootSDDL,请使用 Set-Item WSMan: 驱动器中的 cmdlet。 若要更改会话配置的安全描述符,请将 Set-PSSessionConfiguration cmdlet 与 SecurityDescriptorSDDLShowSecurityDescriptorUI 参数一 起使用。

有关 WSMan: 驱动器的详细信息,请参阅 WSMan 提供程序的帮助主题 (“Get-Help wsman”) 。

如何提供管理员凭据

ERROR:  ACCESS IS DENIED

若要在远程计算机上创建 PSSession 或运行命令,默认情况下,当前用户必须是远程计算机上的 Administrators 组的成员。 即使当前用户登录到管理员组成员的帐户,有时也需要凭据。

如果当前用户是远程计算机上的 Administrators 组的成员,或者可以提供 Administrators 组成员的凭据,请使用 、 Enter-PSSessionInvoke-Command cmdlet 的 New-PSSessionCredential 参数进行远程连接。

例如,以下命令提供管理员的凭据。

Invoke-Command -ComputerName Server01 -Credential Domain01\Admin01

有关 Credential 参数的详细信息,请参阅 New-PSSessionEnter-PSSessionInvoke-Command

如何为非管理用户启用远程处理

ERROR:  ACCESS IS DENIED

若要在远程计算机上建立 PSSession 或运行命令,用户必须有权在远程计算机上使用会话配置。

默认情况下,只有计算机上的 Administrators 组的成员才有权使用默认会话配置。 因此,只有 Administrators 组的成员才能远程连接到计算机。

若要允许其他用户连接到本地计算机,请授予用户对本地计算机上默认会话配置的“执行”权限。

以下命令将打开一个属性表,可用于更改本地计算机上默认 Microsoft.PowerShell 会话配置的安全描述符。

Set-PSSessionConfiguration Microsoft.PowerShell -ShowSecurityDescriptorUI

有关详细信息,请参阅 about_Session_Configurations

如何为其他域中的管理员启用远程处理

ERROR:  ACCESS IS DENIED

当另一个域中的用户是本地计算机上的 Administrators 组的成员时,该用户无法使用管理员权限远程连接到本地计算机。 默认情况下,来自其他域的远程连接仅使用标准用户特权令牌运行。

但是,可以使用 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.

Enter-PSSessionInvoke-Command cmdlet 的 New-PSSessionComputerName 参数接受 IP 地址作为有效值。 但是,由于 Kerberos 身份验证不支持 IP 地址,因此每当指定 IP 地址时,都默认使用 NTLM 身份验证。

使用 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

只有计算机上的 Administrators 组的成员才有权更改计算机上的受信任主机列表。

警告:为 TrustedHosts 项设置的值会影响计算机的所有用户。

若要查看受信任主机的列表,请使用以下命令:

Get-Item wsman:\localhost\Client\TrustedHosts

还可以使用 Set-Location cmdlet (别名 = 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>

例如:

$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 cmdlet 将远程计算机的节点添加到本地计算机上的 WSMan: 驱动器。 Set-Item然后使用 命令添加计算机。

有关 cmdlet 的详细信息 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 传输。 当用户未在远程命令中指定 ConnectionURIPort 参数时,将使用默认端口。

若要更改 PowerShell 使用的默认端口,请使用 Set-Item WSMan: 驱动器中的 cmdlet 更改侦听器叶节点中的 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.

由于 PowerShell 远程处理使用 HTTP 协议,因此它受 HTTP 代理设置的影响。 在具有代理服务器的企业中,用户无法直接访问 PowerShell 远程计算机。

若要解决此问题,请在远程命令中使用代理设置选项。 提供了下列设置:

  • ProxyAccessType
  • ProxyAuthentication
  • ProxyCredential

若要为特定命令设置这些选项,请使用以下过程:

  1. 使用 cmdlet 的 ProxyAccessTypeProxyAuthenticationProxyCredential 参数 New-PSSessionOption 创建具有企业代理设置的会话选项对象。 保存选项对象是一个变量。

  2. 使用包含选项对象的变量作为 、 Enter-PSSessionInvoke-Command 命令的 New-PSSessionSessionOption 参数的值。

例如,以下命令使用代理会话选项创建会话选项对象,然后使用 对象创建远程会话。

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

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

有关 cmdlet 的详细信息 New-PSSessionOption ,请参阅 New-PSSessionOption

若要为当前会话中的所有远程命令设置这些选项,请使用在首选项变量的值$PSSessionOption中创建的选项对象New-PSSessionOption。 有关详细信息,请参阅 about_Preference_Variables

若要为本地计算机上的所有 PowerShell 会话的所有远程命令设置这些选项,请将首选项变量添加到 $PSSessionOption PowerShell 配置文件。 有关 PowerShell 配置文件的详细信息,请参阅 about_Profiles

如何在 64 位计算机上检测 32 位会话

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-PSSessionExport-PSSession cmdlet 创建包含未签名脚本文件和格式设置文件的模块。

若要使用 Import-PSSessionImport-Module导入这些 cmdlet 创建的模块,当前会话中的执行策略不能为“受限”或“AllSigned”。 有关 PowerShell 执行策略的信息,请参阅 about_Execution_Policies

若要在不更改注册表中设置的本地计算机的执行策略的情况下导入模块,请使用 的 Set-ExecutionPolicyScope 参数为单个进程设置限制较少的执行策略。

例如,以下命令使用 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:) 提供了多个配额设置,例如节点中的 MaxEnvelopeSizeKBMaxProviderRequests 设置,节点中的 WSMan:<ComputerName>WSMan:<ComputerName>\ServiceMaxConcurrentOperationsMaxConcurrentOperationsPerUserMaxConnections 设置。

  • 可以使用 cmdlet $PSSessionOption 和首选项变量的 MaximumReceivedDataSizePerCommandMaximumReceivedObjectSize 参数New-PSSessionOption来保护本地计算机。

  • 可以通过向会话配置添加限制来保护远程计算机,例如使用 cmdlet 的 MaximumReceivedDataSizePerCommandMBMaximumReceivedObjectSizeMB 参数 Register-PSSessionConfiguration

当配额与命令冲突时,PowerShell 将生成错误。

若要解决此错误,请更改远程命令以符合配额。 或者,确定配额的源,然后增加配额以允许命令完成。

例如,以下命令将远程计算机上的 Microsoft.PowerShell 会话配置中的对象大小配额从 10 MB (默认值) 增加到 11 MB。

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

有关 cmdlet 的详细信息 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:) 提供多个客户端和服务端超时设置,例如节点中的 WSMan:<ComputerName>MaxTimeoutms 设置以及节点中的 WSMan:<ComputerName>\ServiceEnumerationTimeoutmsMaxPacketRetrievalTimeSeconds 设置。

  • 可以使用 cmdlet $PSSessionOption 和首选项变量的 CancelTimeoutIdleTimeoutOpenTimeoutOperationTimeout 参数New-PSSessionOption来保护本地计算机。

  • 还可以通过在会话的会话配置中以编程方式设置超时值来保护远程计算机。

当超时值不允许操作完成时,PowerShell 将终止该操作并生成错误。

若要解决此错误,请将命令更改为在超时间隔内完成,或确定超时限制的源,并增加超时间隔以允许命令完成。

例如,以下命令使用 New-PSSessionOption cmdlet 在 MS () 中创建 OperationTimeout 值为 4 分钟的会话选项对象,然后使用会话选项对象创建远程会话。

$pso = New-PSSessionoption -OperationTimeout 240000

New-PSSession -ComputerName Server01 -sessionOption $pso

有关 WS-Management 超时的详细信息,请参阅 WSMan 提供程序 (类型 Get-Help WSMan) 的帮助主题。

有关 cmdlet 的详细信息 New-PSSessionOption ,请参阅 New-PSSessionOption

排查无响应行为

本部分讨论阻止命令完成以及阻止或延迟 PowerShell 提示符返回的远程处理问题。

如何中断命令

某些本机 Windows 程序(例如具有用户界面的程序、提示输入的控制台应用程序以及使用 Win32 控制台 API 的控制台应用程序)在 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