2014-09-01 75 views
1

我有一個Powershell不使用下面的代碼跨服務器複製最新文件的問題。Powershell複製項高速緩存

$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 
} 

代碼應該找到帶有前綴「SQL備份」的最新.bak文件並在本地傳輸。

這個過程工作了一個多月,並且在突然傳輸時間從5分鐘下降到3秒並且正在傳輸相同的文件時,服務器或進程沒有變化。

很多謝謝

+0

我們不能測試你的文件,最後輸出什麼'Get-ChildItem -Path $ dir | Sort-Object CreationTime -Descending'是否有人可能更改了sql server上的備份擴展? – 2014-09-01 09:55:47

回答

0

將一些日誌語句添加到您的腳本以查看真正發生的事情。像這樣,

$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 
}