我正在尝试使用以下命令将位于远程机器上的文件通过Copy-Item
命令复制到另一台远程机器上:
Copy-Item -Path "\\machine1\abc\123\log 1.zip" -Destination "\\machine2\\c$\Logs\"
我不断地遇到错误 "无法找到路径“\\machine1\abc\123\log 1.zip”
"
我可以手动访问该路径并从那里复制。
我以管理员身份打开PowerCLI并运行此脚本... 我完全卡在这里,不确定如何解决。
我正在尝试使用以下命令将位于远程机器上的文件通过Copy-Item
命令复制到另一台远程机器上:
Copy-Item -Path "\\machine1\abc\123\log 1.zip" -Destination "\\machine2\\c$\Logs\"
我不断地遇到错误 "无法找到路径“\\machine1\abc\123\log 1.zip”
"
我可以手动访问该路径并从那里复制。
我以管理员身份打开PowerCLI并运行此脚本... 我完全卡在这里,不确定如何解决。
这似乎在PowerShell v3上可以直接使用。我手头没有v2进行测试,但我知道有两个选项应该可以解决问题。首先,您可以映射PSDrives:
New-PSDrive -Name source -PSProvider FileSystem -Root \\machine1\abc\123 | Out-Null
New-PSDrive -Name target -PSProvider FileSystem -Root \\machine2\c$\Logs | Out-Null
Copy-Item -Path source:\log_1.zip -Destination target:
Remove-PSDrive source
Remove-PSDrive target
如果这是你经常要做的事情,你甚至可以将其封装在一个函数中:
Function Copy-ItemUNC($SourcePath, $TargetPath, $FileName)
{
New-PSDrive -Name source -PSProvider FileSystem -Root $SourcePath | Out-Null
New-PSDrive -Name target -PSProvider FileSystem -Root $TargetPath | Out-Null
Copy-Item -Path source:\$FileName -Destination target:
Remove-PSDrive source
Remove-PSDrive target
}
或者,您可以在每个路径中显式地指定提供程序:
Copy-Item -Path "Microsoft.PowerShell.Core\FileSystem::\\machine1\abc\123\log 1.zip" -Destination "Microsoft.PowerShell.Core\FileSystem::\\machine2\\c$\Logs\"
Microsoft.PowerShell.Core\FileSystem::
前缀就起作用了。谢谢。 - blachnietpowershell.exe -version 2
命令以 v2 模式运行 Powershell 3。你可以通过检查 $Host.Version
属性来验证这一点。 - qJakeMicrosoft.PowerShell.Core\FileSystem::
前缀只应该用于UNC路径,而不是本地驱动器。否则,您将会收到一个“给定路径格式不受支持”的错误提示。 - Gavin Ward这个对我来说一整天都有效:
$strLFpath = "\\compname\e$\folder"
$strLFpath2 = "\\Remotecomputer\networkshare\remotefolder" #this is a second option that also will work
$StrRLPath = "E:\localfolder"
Copy-Item -Path "$StrRLPath\*" -Destination "$strLFpath" -Recurse -force -Verbose
需要注意的事项: 在使用Copy-item命令时,将最后一个项目定义为对象。 如果要复制文件夹的内容,则必须使用“\*”符号。
如果您要将整个文件夹复制到新位置,则不需要声明其内容。
我每天都使用它:
Robocopy /E \\\SOURCEIP\C$\123\ \\\DESTIP\C$\Logs\
中间有一个空格。对于ROBCOPY,/E表示复制。如果需要移动,请使用谷歌搜索。
或者:
$SourceIP = Read-Host "Enter the Source IP"
$DESTIP = Read-Host "Enter the Destination IP"
Robocopy /E \\\\$SourceIP\C$\123\ \\\\$DESTIP\C$\Logs\
####Just adjust the C$ path on both#####
Get-ChildItem -Path "\\machine1\abc\123"
,它会显示log 1.zip
的条目还是显示错误?此外,log 1.zip
是一个隐藏文件吗? - Lance U. Matthews