我写了一个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帮助主题。
答案 0 :(得分:2)
这是因为您没有从受信任的主机运行命令,或者因为远程计算机的wsman服务配置不正确。我先运行以下命令在远程计算机上配置wsman:
wsman quickconfig
如果这不能解决问题,则需要将计算机添加到受信任的远程计算机上。您可以通过运行以下命令来做到这一点:
winrm s winrm/config/client '@{TrustedHosts="RemoteComputer"}'