3

Machine-A: An azure vm role on cloud という 2 台のマシンがあります。マシン B: ネットワーク ドメイン上のマシン。

MachineA と MachineB の両方に (RDPを使用して)リモート ログインし、「temp」フォルダを \MachineA.cloudapp.net\C$\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 のことを知るのでしょうか?

おそらく、単純で直接的なものが欠けています!

4

2 に答える 2

0

Bruce Payette のナイスブックのキャプター 13 で、マルチホップ環境での資格情報の転送を参照している可能性があります。

信頼できる仲介者を介してターゲット マシンに資格情報を安全に渡すことを可能にする CredSSP メカニズムが必要になる場合があります。

于 2012-07-10T11:43:43.443 に答える
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 の有効化の詳細については、この質問に対する私の回答を参照してください。

于 2012-07-10T23:54:51.677 に答える