2014-09-01 2 views
1

Je rencontre un problème avec Powershell ne copiant pas les fichiers les plus récents sur les serveurs lors de l'utilisation du code ci-dessous.Powershell Mise en cache des éléments de copie

$dir="\\MyServer\SQLBackups\SQL Backup*.bak" 
$FileLocation = "E:\SQLRestore\SQL Backup Latest.bak" 

If (Test-Path $FileLocation){ 
    Remove-Item $FileLocation 
} 

If (Test-Path $dir){ 
    $latest = Get-ChildItem -Path $dir | Sort-Object CreationTime -Descending | Select-Object -First 1 
    Copy-Item -Path "$latest" -Destination $FileLocation 
} 

Le code doit localiser le dernier fichier .bak avec le préfixe "Sauvegarde SQL" et le transférer localement.

Ce processus a fonctionné pendant plus d'un mois et sans aucun changement sur les serveurs ou le processus lorsque soudainement le temps de transfert est passé de 5 minutes à 3 secondes et le même fichier était en cours de transfert.

Merci beaucoup

+0

nous ne pouvons pas tester vos fichiers, quelle est la sortie de 'Get-ChildItem -Path $ dir | Sort-Object CreationTime -Descending' est-il possible que quelqu'un ait changé l'extension de sauvegarde sur le serveur sql? –

Répondre

0

Ajouter quelques déclarations de journalisation à votre script pour voir ce qui se passe vraiment. Comme si,

$logfile = "c:\myLogFile.txt" 
If (Test-Path $dir){ 
    $latest = Get-ChildItem -Path $dir | Sort-Object CreationTime -Descending | Select-Object -First 1 
    add-content $logfile "Latest file: is $($latest.FullName)" 
    Copy-Item -Path "$latest" -Destination $FileLocation 
}