[Solved] Bat File Uploading CSV via FTP - Works from Server 2008 R2, 0KB File on FTP from 2012 R2
-
I have a strange issue. We recently migrated our ERP from a Windows Server 2008 R2 VM to a 2012 R2 VM. We have a scheduled task that runs a bat file using powershell (calling old school built-in Windows FTP client) to upload a CSV file (that the ERP software generates) to our website server via FTP.
Ever since we migrated, it hasn't properly updated the site. Upon further inspection, I can see that the file is only created/named on the FTP side and is 0KB. I have tested the bat file manually, by doing a run as administrator and it does the same thing.
I went back and verified the old server is still working fine. I am wondering if there has been a change in the way that powershell handles it. I didn't create the bat file, the VAR for our ERP solution did it a couple of years ago.
Here is the breakdown. Does anyone know why this doesn't work on 2012 R2?
Bat file contents-
powershell ftp -s:C:\ps\FTP\NightlyFTP.txt
NightlyFTP.txt contents-
open 10.20.30.40
ftpUsername
ftpPassword
put D:\Data\FTP.CSV
quit
pause -
I ended up going with an upgraded script by truly using powershell.
I found the answer here -
https://stackoverflow.com/questions/936108/how-to-script-ftp-upload-and-downloadEssentially this is the script:
$File = "D:\Dev\somefilename.zip"
$ftp = "ftp://username:[email protected]/pub/incoming/somefilename.zip""ftp url: $ftp"
$webclient = New-Object System.Net.WebClient
$uri = New-Object System.Uri($ftp)"Uploading $File..."
$webclient.UploadFile($uri, $File)