Je travaille sur un script pour copier un dossier d'un chemin UNC vers un serveur local. Je suis en cours d'exécution à distance mon script par une session interactive et en utilisant -ScriptBlock Invoke-Command comme ceci:PowerShell ne parvient pas à copier à partir du chemin UNC
Invoke-Command -ComputerName MyServer -ScriptBlock $Script
C'est le script pour faire la copie:
$script {
try {
New-PSDrive -Name MyDrive -PSProvider FileSystem -Root \\uncpathserver\e$\SourceCode\ -Credential Contoso\me
Copy-Item -Path \\uncpathserver\e$\SourceCode\* -Destination E:\Inetpub\Target -Recurse -Force
}
catch {
Write-Host "Failed to copy!"
}
}
Il échoue et jeter mon attraper le bloc à chaque fois. Je n'arrive pas à comprendre ce qui me manque pour que ça marche - cela semble si simple et j'espère que je ne manque pas quelque chose d'évident.
EDIT:
j'ai pu le faire fonctionner maintenant simplement d'exécuter le script de mon PC local au lieu de partir d'un serveur. J'appelle maintenant la copie de fichier du bloc $ script maintenant. C'est ce que le nouveau code ressemble:
$MyServers= @("server-01", "server-02")
foreach ($server in $MyServers)
{
$TargetSession = New-PSSession -ComputerName $server -Credential
contoso\me
Copy-Item -ToSession $TargetSession -Path C:\Source\TheCode\ -
Destination "E:\InetPub\wherethecodegoes" -Recurse -Force
}
Tout le reste que je fais dans mon bloc de script $ (qui a été omis ici pour cause de dépannage) travaille A-OK. Je dois saisir mes informations d'identification pour chaque serveur, mais en raison de la petite taille des serveurs avec lesquels je travaille, ce n'est pas un problème.
Supprimez le bloc catch pour pouvoir voir quelle est l'erreur. – zdan
Impossible de trouver le chemin \\ uncpathserver \ e $ \ SourceCode \ car il n'existe pas existe est l'erreur que j'obtiens. – jnunham
Avez-vous essayé un 'net use' à la place? –