2013-02-01 7 views
16

Sto cercando di utilizzare Copy-Item dal computer remoto a un altro computer remoto con il comando:bisogno di aiuto PowerShell Copy-Item dalla rete spinge

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

sono costantemente ottenendo errore "Cannot find Path "\\machine1\abc\123\log 1.zip"

I può accedere a quel percorso e copiare manualmente da lì.

Sto aprendo PowerCLI come amministratore e sto eseguendo questo script ... Sono assolutamente bloccato qui e non sono sicuro di come risolverlo.

+1

Se si esegue 'Get-ChildItem -Path" \\ machine1 \ abc \ 123 "' viene visualizzata una voce per 'log 1.zip' o viene visualizzato un errore? Inoltre, 'log 1.zip' è un file nascosto? – BACON

risposta

22

Questo sembra funzionare come in PowerShell v3. Non ho a portata di mano la v2, ma ci sono due opzioni di cui sono a conoscenza, che dovrebbero funzionare. In primo luogo, si potrebbe mappare 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 

Se questo è qualcosa che si sta andando a fare molto, si potrebbe anche avvolgere questo in una funzione:

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 
} 

In alternativa, è possibile specificare in modo esplicito il provider con ogni percorso:

Copy-Item -Path "Microsoft.PowerShell.Core\FileSystem::\\machine1\abc\123\log 1.zip" -Destination "Microsoft.PowerShell.Core\FileSystem::\\machine2\\c$\Logs\" 
+6

L'ultimo bit, in attesa di 'Microsoft.PowerShell.Core \ FileSystem ::', ha funzionato per me. Grazie. – blachniet

+2

FYI, è possibile eseguire Powershell 3 in v2 mode eseguendo 'powershell.exe -versione 2', è possibile verificare ciò controllando la proprietà' $ Host.Version'. – qJake

+0

Dolce! Non sapevo che avresti potuto eseguire v2 da PowerShell 3. Ho testato script che devono essere eseguiti su v2 in una VM separata, quindi questo suggerimento renderà * le cose * molto * più facili. Grazie per il consiglio! – KevinD

0

questo lavora tutto il giorno per me:

$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 

cose da guardare: Copia elemento definire l'elemento ULTIMO come oggetto. per copiare il contenuto di una cartella di cui hai bisogno il \ *

Se stai copiando la cartella in una nuova posizione, non è necessario dichiarare il contenuto.

Problemi correlati