我正在尝试从localhost上的远程计算机复制一些文件,但会抛出以下错误消息:
[remoteHost_IP] Connecting to remote server <IP> failed with the following error message : Access is denied. For more information, see the
about_Remote_Troubleshooting Help topic.
+ CategoryInfo : OpenError: (<remoteHost_IP>:String) [], PSRemotingTransportException
+ FullyQualifiedErrorId : AccessDenied,PSSessionStateBroken
在测试目的中,我使用以下脚本:
Param([string] $username, [string] $password)
$credentials = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $username,(ConvertTo-SecureString $password -AsPlainText -Force)
$storage = "\\localhost's_IP\D$\testfile"
Invoke-Command -ComputerName <remote_comp'sIP> -Credential $credentials{ Copy-Item -Path "C:\Users\<localuser_memberOFlocalAdministratorsGroup>\desktop\testfile\asd.txt" -Destination $storage -Force -Recurse}
Enable-PSRemoting在两台主机上执行,并且每台主机都是另一台主机的TrustedHosts列表的一部分。
作为操作系统,我使用的是WS2012R2,当前版本的Powershell是4.0。
你能告诉我一些关于如何解决这个问题的想法吗?谢谢!
[编辑]
正如我所说,我正在使用PowerShell 4.0(在我的情况下,还不能升级到最新版本)。无论如何,我已经尝试了@vonPryz建议,现在我看不到任何错误消息,但文件仍未复制到localhost上。这是我的代码[添加内容部分工作正常]:
$sessiona = New-PSSession -Name sesegnon -ComputerName "10.bla-bla" -Credential $credentials
$any_error = Invoke-Command -Session $sessiona -ScriptBlock {
Add-Content -Path "D:\path\int.txt" -Value "message"
Copy-Item -Path "D:\path\asd.txt" -Destination $storage -Force
$x = $error[0] | Out-String
return $x
}
Write-Host $any_error
答案 0 :(得分:0)
如果您安装了latest PowerShell version,则对于Copy-Item cmdlet,使用新参数-Tosession
或-FromSession
非常简单。
您只需使用New-PsSession
cmdlet创建会话,并将该会话名称用作-ToSession
或-FromSession
参数的参数。
#Example
$Session = New-PsSession -ComputerName Server1
Copy-Item -Path <local path of the server1> -FromSession $Session -DestinationPath 'c:\Path'
此致
Kvprasoon