在多个服务器上远程执行Powershell脚本

时间:2018-06-24 09:13:42

标签: powershell powershell-v4.0 working-remotely

我写了一个powershell脚本,用于卸载程序并在服务器上安装该程序的较新版本(更新程序)。现在,我想创建另一个在服务器上运行上述脚本的脚本。考虑到我必须通过使用IP,用户名和密码连接到服务器,并且不能使用域。 这怎么可能? Powershell版本为4

我尝试使用此代码来简单地获取日期:

$User = "administrator"
$PWord = ConvertTo-SecureString -String "Password1234" -AsPlainText -Force
$Credential = New-Object -TypeName "System.Management.Automation.PSCredential" -ArgumentList $User, $PWord
$session = New-PSSession -ComputerName '10.60.60.100' -Credential $Credential
Invoke-Command -Session $session -ScriptBlock {Get-Date}

我收到此错误:

  

New-PSSession:[10.60.60.100]连接到远程服务器10.60.60.100失败,并显示以下错误消息:WinRM客户端无法处理该请求。如果身份验证方案不同于Kerberos,或者客户端计算机未加入域,则必须使用HTTPS传输,或者必须将目标计算机添加到TrustedHosts配置设置中。使用winrm.cmd配置TrustedHosts。请注意,TrustedHosts列表中的计算机可能未经身份验证。您可以通过运行以下命令来获取有关此信息的更多信息:winrm help config。有关更多信息,请参见about_Remote_Troubleshooting帮助主题。

1 个答案:

答案 0 :(得分:2)

这是因为您没有从受信任的主机运行命令,或者因为远程计算机的wsman服务配置不正确。我先运行以下命令在远程计算机上配置wsman:

wsman quickconfig

如果这不能解决问题,则需要将计算机添加到受信任的远程计算机上。您可以通过运行以下命令来做到这一点:

winrm s winrm/config/client '@{TrustedHosts="RemoteComputer"}'