![如何结合使用 psexec 和 robocopy 将目录复制到远程机器?](https://linux22.com/image/1242585/%E5%A6%82%E4%BD%95%E7%BB%93%E5%90%88%E4%BD%BF%E7%94%A8%20psexec%20%E5%92%8C%20robocopy%20%E5%B0%86%E7%9B%AE%E5%BD%95%E5%A4%8D%E5%88%B6%E5%88%B0%E8%BF%9C%E7%A8%8B%E6%9C%BA%E5%99%A8%EF%BC%9F.png)
您好,我正在尝试编写一个 psexec(或者可能是 robocopy?)命令,该命令允许我使用给定的帐户凭据将目录复制到远程计算机。我更喜欢使用 robocopy,但远程计算机是 XP 计算机。
我尝试过类似这些命令,但它们并没有按照我的意愿运行
psexec \\compB -u blah -p blahblah -i -c -f robocopy.exe 路径1 网络路径2 /E
那么我该如何扭转这种局面,以便它使用这些凭据并远程运行 robocopy,将文件从计算机 A 传输到计算机 B?
我可以使用直接使用机器名称的 robocopy 命令成功传输文件,但它需要在我们不在同一个域中时才能工作。据我所知,Psexec 允许我模拟用户(因此使用凭据)并远程运行程序,但由于 xp 没有内置 robocopy,我需要引用本地计算机上的文件以及传输到远程计算机,所以我不知道整个过程将如何工作。
robocopy compAPath \\compBNetPath /E
这是成功复制文件的 robocopy 命令,但这不是只有在我们在同一个域中时才有效吗?它不会使用凭据吗?如果我将计算机名称更改为 \\machineipaddress,当不在同一个域中时它会起作用吗?
为了给出上下文的感觉,我正在形成这些命令,然后将它们发送到命令行以在远程机器上运行它们,所以如果我可以使用一些神奇的 c# 巫术来使命令使用凭据运行,这样它们就不需要包含在命令本身中,请告诉我。
答案1
嗨,我是作者。如果您想知道的话,我解决了这个问题。这是允许 psexec 与 robocopy 一起工作并使用正确权限的命令:
psexec -u 用户名 -p 密码 -c -fc:\pathtorobocopy\robocopy.exe 源文件参数(/E /Z 等)目标 UNCpath
我没有给 psexec 一个目标机器,它只是使用给定的凭据在本地运行 robocopy,并通过网络将信息发送到目标机器:D