You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用PowerShell远程连接带密码保护的服务器时出现WinRM及会话创建错误的问题求助

解决PowerShell远程连接WinRM报错的问题

我看了你的问题和报错信息,核心问题出在命令执行方式、语法细节,以及TrustedHosts配置的有效性上,一步步来解决:

1. 修复命令执行方式的错误

你把三条命令写在了同一行且未用分号分隔,导致winrm命令误将后续代码当成自己的参数,触发了Invalid use of command line报错。必须分开执行每条命令,或者用分号分隔(不推荐,但可行):

# 推荐:分三条单独执行
winrm set winrm/config/client @{TrustedHosts="XX.X.XXX.XX"}
$cred = Get-Credential
New-PSSession XX.X.XXX.XX -Credential $cred

# 可选:用分号分隔在一行执行
winrm set winrm/config/client @{TrustedHosts="XX.X.XXX.XX"}; $cred = Get-Credential; New-PSSession XX.X.XXX.XX -Credential $cred

2. 修正New-PSSession的语法错误

从报错信息里的命令行可以看到,你的New-PSSession命令中,目标IP和-Credential参数之间缺少了空格,正确的写法是:

New-PSSession XX.X.XXX.XX -Credential $cred

(注意XX.X.XXX.XX和-Credential之间必须有空格)

3. 确认TrustedHosts配置生效

执行完winrm set命令后,一定要验证配置是否成功,避免因为命令执行失败导致TrustedHosts未更新:

winrm get winrm/config/client

查看输出里的TrustedHosts字段,确认你的目标IP已经在列表中。如果需要添加多个IP,用逗号分隔即可:

winrm set winrm/config/client @{TrustedHosts="XX.X.XXX.XX,YY.Y.YYY.YY"}

额外排查点

如果还是报错,可以检查以下内容:

  • 目标服务器的WinRM服务是否运行:在目标机执行Get-Service WinRM,确认状态为Running
  • 目标服务器防火墙是否允许WinRM端口(默认HTTP是5985,HTTPS是5986)
  • 如果你使用HTTP协议连接,必须确保目标IP在TrustedHosts列表中,且提供了明确凭据(你已经通过Get-Credential完成了这一步)

内容的提问来源于stack exchange,提问作者alfus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 23:54:07