将文件夹从远程计算机(Azure)复制到远程计算机

时间:2012-07-10 11:21:29

标签: powershell azure powershell-remoting azure-vm-role

我有两台机器说 机器A:云上的天蓝色vm角色。 Machine-B:我的网络域上的一台机器。

可以远程登录 MachineA和MachineB(使用RDP)并从位置\ MachineA.cloudapp.net \ C $ \ temp复制一个文件夹'temp'到\ MachineB \ C $ \

如何通过PowerShell脚本以编程方式实现此目标?

我试过了:

$rm = new-object RemoteMachine
$pass = ConvertTo-SecureString -AsPlainText $rm.Password -Force
$Cred = New-Object System.Management.Automation.PSCredential -ArgumentList $rm.Username,$pass
Invoke-Command -ComputerName $rm.MachineName -Credential $Cred -ScriptBlock{
#   Copy folder
}

RemoteMachine在哪里:

public class RemoteMachine
{
    public string MachineName="MachineA.cloudapp.net";
    public string Username="remote";
    public string Password="password";    
    }
}

虽然我使用相同的RDP凭据,但登录失败失败了。 我有另一个疑问,即使可以登录,那么MachineA将如何了解MachineB?

可能我错过了一些简单直接的东西!

2 个答案:

答案 0 :(得分:0)

你可以看看Bruce Payette精美书中第13章的Forwarding credentials in multihop environments

您可能需要CredSSP机制,使您能够通过可信中介将您的凭据安全地传递到目标计算机。

答案 1 :(得分:0)

需要在VM上启用PowerShell远程处理:

 PS> Enable-PSRemoting

然后,您应该能够远程访问,在该计算机上传递管理员的凭据:

Invoke-Command -ComputerName MachineA -Credential username -ScriptBlock {
#   Copy folder
}

如果username是域帐户,请确保包含域名(例如DOMAIN\username)。 PowerShell会提示您输入密码。

因为您正在从MachineA复制到MachineB,所以您可能遇到双跳问题。要从MachineA连接到MachineB,PowerShell需要您的凭据(用户名/密码),并且它在MachineA上没有它们。您必须启用一个名为CredSSP的东西,以允许在计算机之间存储和共享凭据。

  • 接收凭据的机器必须配置为接收它们(即充当服务器)
  • 发送凭证的机器必须配置为发送它们(即充当客户端)

有关启用CredSSP的详细信息,请参阅this question上的答案。

相关问题