我昨天开始寻找ROBOCOPY尝试从一个目的地复制和覆盖文件很多远程计算机。 我试过的Robocopy将文件复制到远程计算机 ,但它不工作。 我得到同样的错误的人的链接。 没有任何人有任何建议或导致我在正确的道路? 非常感谢 !
Answer 1:
你可以只使用PowerShell这一点。 它有一个效率低下的问题,其中,将复制一个在同一时间但不应该是一个问题的50ish机。 这可以帮助,如果你做了一个PowerShell脚本
$computers = Get-Content "C:\filewithcomputers.txt"
$fileToCopy = "C:\filetocopy.txt"
ForEach($computer in $Computers){
Copy-Item -Path $fileToCopy -Destination "\\$computer\C`$\Temp"
}
在将文件复制$fileToCopy
在文件中的每个服务器C:\filewithcomputers.txt
假设该文件包含计算机的每一个在其自己的行列表。 该文件将被复制到每个机器上的临时文件夹。 根据需要更新您的方案的路径。 我只建议这一点,因为你标记PowerShell的远程处理 。 如果你不擅长使用PowerShell也许别人可以给你的,你在找什么更好的答案了。 使用ROBOCOPY一个文件似乎有些乏味。
如果你想检查是否一个文件夹存在并可访问,你可以做这样的事情。
$computers = Get-Content "C:\filewithcomputers.txt"
$fileToCopy = "C:\filetocopy.txt"
ForEach($computer in $Computers){
$destinationx86 = "\\$computer\C`$\Program Files (x86)"
$destination = "\\$computer\C`$\Program Files"
If(Test-Path $destinationx86){
# Copy this to Program Files (x86)
Copy-Item -Path $fileToCopy -Destination $destinationx86
} Else {
# Copy this to Program Files
Copy-Item -Path $fileToCopy -Destination $destination
}
}
Answer 2:
如果你需要用不同的凭据连接,您可以使用
$credential = Get-Credential
New-PSDrive -Name "Computer01" -PSProvider FileSystem -Root "\\Computer01\Share" -Credential $credential -Scope global
现在,您可以复制到如COMPUTER01:\ FOLDER01 \
Answer 3:
如果你已经设置你的环境来支持PSRemoting,并放置在文件中的文件共享,您可以使用PowerShell远程指示多台计算机与调用命令几乎同时检索文件本身。 您可以使用限制取决于-ThrottleLimit对源文件的大小,以及如何强大的网络/服务器是同步动作的次数:
$computers = Get-Content "C:\filewithcomputers.txt"
$originalsource = "\\fileserver\shared\payload.exe"
$originaldestination = "c:\"
$scriptblockcontent = {
param($source,$destination)
Copy-Item -Path $source -Destination $destination
}
Invoke-Command –ComputerName $Computers –ScriptBlock $scriptblockcontent `
–ThrottleLimit 50 -ArgumentList $originalsource,$originaldestination
文章来源: Robocopy commands to copy a file to over 50 remote machines