我正在尝试使用PowerShell从远程服务器远程执行文件。
我正在运行以下内容(替换了真实的服务器名称等):
Enable-WSManCredSSP -Role Client -DelegateComputer someserver -Force
$credential = Get-Credential -Credential currentdomain\currentuser
$RemoteSession = New-PSSession -ComputerName someserver -Credential $credential -Authentication Credssp
Invoke-Command -Session $RemoteSession -ScriptBlock { Enable-WSManCredSSP -Role Server -Force }
Invoke-Command -Session $RemoteSession -ScriptBlock { New-PSDrive -Name I -PSProvider FileSystem -Root \\servername\sharename$ }
Invoke-Command -Session $RemoteSession -ScriptBlock { Invoke-Expression($args[0]) } -ArgumentList (I:\executablepath\file.exe)
我知道我必须这样做才能整理:
Invoke-Command -Session $RemoteSession -ScriptBlock { Disable-WSManCredSSP -Role server}
Disable-WSManCredSSP -Role client
Remove-PSSession $RemoteSession
我在New-PSSession
行之后收到错误,虽然我认为这是第一次尝试时有效。我可能错了。
连接到远程服务器失败,并显示以下错误消息:WinRM客户端无法处理请求,因为无法解析服务器名称。
+ CategoryInfo:OpenError:(System.Manageme .... RemoteRunspace:RemoteRunspace)[],PSRemotingTransportException
+ FullyQualifiedErrorId:PSSessionOpenFailed
我应该采用另一种方法来达到这个总体要求吗?我试过没有使用凭据,但我认为我需要这些以避免第二跳问题。