Powershell 调用命令失败,直到我在远程服务器上运行winrm quickconfig

Powershell 调用命令失败,直到我在远程服务器上运行winrm quickconfig,powershell,powershell-remoting,Powershell,Powershell Remoting,我正在尝试通过powershell在远程服务器上运行批处理脚本。直截了当地说: $password = ConvertTo-SecureString "password" -AsPlainText -Force $cred= New-Object System.Management.Automation.PSCredential ("domain\user", $password) $sesh= new-pssession -computername "MSSCA" -credential $c

我正在尝试通过powershell在远程服务器上运行批处理脚本。直截了当地说:

$password = ConvertTo-SecureString "password" -AsPlainText -Force
$cred= New-Object System.Management.Automation.PSCredential ("domain\user", $password)
$sesh= new-pssession -computername "MSSCA" -credential $cred

invoke-command -session $sesh -scriptblock {
    cmd.exe /C "C:\install.bat"
}

Remove-PSSession $sesh
这似乎随机失败,出现以下错误

在远程计算机上,运行powershell命令
winrm quickconfig
来配置远程管理服务会通知我它已设置为接收请求/远程管理


只有在运行此命令后,
才能正确调用命令。怎么用?我甚至没有配置任何东西。如何修复此问题?

请查看winrm的帮助(顺便说一句,这是Windows exe,不是Powershell命令):

也许您的远程计算机启用了4个步骤中的某些子集,但在您运行该实用程序之前,不能同时启用所有步骤。特别是,侦听器配置在过去给我带来了麻烦。您可以在使用以下命令之前/之后检查侦听器配置(在远程框上以管理员身份运行):


您还可以尝试运行
启用PSRemoting
(必须以管理员身份运行),这将包括额外的日志记录。

我以前遇到过这个问题,它最终成为脚本执行策略。在受影响的主机上使用Set-ExecutionPolicy cmdlet。出于测试目的,请使用以下命令参数:

Set-ExecutionPolicy Unrestricted
我强烈建议您不要将设置保留为“无限制”,但这对于确定可能的原因很有用

供参考:


远程服务器是否很旧?这可能是一个扩展,但它仍然可以配置为在旧的默认端口(80/443)而不是新端口(5985/5986)上侦听。IIRC它们是Windows 7和Windows Server 2008 R2的默认值。请复制并粘贴错误文本。屏幕截图很难阅读,文本无法搜索,因此其他人将来将无法找到它。@alroc右键单击图像,复制url,新建选项卡,粘贴。抱歉,我不想有一堆文字,这就可以解释了。谢谢我想我应该看看文件。
dir wsman:\localhost\listener
Set-ExecutionPolicy Unrestricted