web-dev-qa-db-fra.com

Besoin d'aide sur Powershell Copy-Item à partir de lecteurs réseau

J'essaie d'utiliser Copy-Item d'une machine distante à une autre machine distante avec la commande:

Copy-Item -Path "\\machine1\abc\123\log 1.Zip" -Destination "\\machine2\\c$\Logs\"

Je reçois constamment une erreur "Cannot find Path "\\machine1\abc\123\log 1.Zip "

Je peux accéder à ce chemin et copier manuellement à partir de là.

J'ouvre PowerCLI en tant qu'administrateur et exécute ce script ... Je suis absolument coincé ici et je ne sais pas comment le résoudre.

18
Geeth

Cela semble fonctionner tel quel sur PowerShell v3. Je n'ai pas la v2 à portée de main pour tester, mais il y a deux options que je connais, qui devraient fonctionner. Tout d'abord, vous pouvez mapper 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

Si c'est quelque chose que vous allez faire beaucoup, vous pouvez même envelopper cela dans une fonction:

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
}

Alternativement, vous pouvez spécifier explicitement le fournisseur avec chaque chemin:

Copy-Item -Path "Microsoft.PowerShell.Core\FileSystem::\\machine1\abc\123\log 1.Zip" -Destination "Microsoft.PowerShell.Core\FileSystem::\\machine2\\c$\Logs\"
23
KevinD

cela fonctionne toute la journée pour moi:

$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

choses à surveiller: Copy-item définit le DERNIER article comme objet. pour copier le contenu d'un dossier dont VOUS AVEZ BESOIN\\

Si vous copiez le dossier lui-même vers un nouvel emplacement, vous n'avez pas besoin de déclarer le contenu.

2
Kelly Davis