如何发出远程复制命令?

时间:2015-06-25 19:21:02

标签: powershell remote-server

我正在处理的脚本现在在电子邮件服务器上执行大量工作来处理诉讼保留请求。此脚本的一个组件是将文件服务器上标识的文件夹中的所有数据复制到安全备份位置,该位置无法更改,这些位置恰好位于同一远程服务器上。我的脚本运行正常,但它将网络上的所有文件从文件服务器复制到运行PowerShell脚本的电子邮件服务器,然后将其直接推回到它来自“hold”文件夹的同一文件服务器。这造成了严重的延迟,因为其中一些文件夹是数千个文件,范围从几个字节到几个几兆字节。

我正在寻找一种方法,让我在电子邮件服务器上运行的PowerShell脚本向文件服务器发出远程命令,将文件夹从一个目录复制到另一个目录(全部在同一个远程服务器上)。有什么建议吗?

目前,我在我的脚本中使用robocopy命令,但我愿意采用其他方式执行此操作。

robocopy "Source Folder" "Destination Folder" /e

我正在寻找类似的东西:

PSEXEC \\\FileServer -s -d Copy "Source folder" to "Destination folder"

我似乎无法在旧谷歌火车上找到满足这种情况的任何材料。

2 个答案:

答案 0 :(得分:0)

psexec \\fileserver -s robocopy "source" "destination" /e

应该工作得很好。在文件服务器上启用PSRemoting后,您也可以执行

Invoke-Command -Computer fileserver -Scriptblock {
  & robocopy "source" "destination" /e
}

请注意,这假定远程服务器上的本地路径。如果您正在使用远程主机上的网络共享,那么您将遇到second hop problem

答案 1 :(得分:0)

由于某些奇怪的原因,在发布之前首次尝试使用PSEXEC会导致错误,表明它不知道如何处理该命令。但我再次插入了PSEXEC命令,它今天工作得很好。

谢谢。