I ran into an issue today with my FTP PowerShell script not working. It was configured to use port 21 as it has for years. The FTP site is at my son's house and he just got a new modem when he changed his provide to Telus. I found out that Telus block port 21 so I changed it to port 22, however then ran into a PASV (passive mode) issue where it would not upload files. After several hours I figured out that I needed to set the internal router to allow ports 49152-65534 in and then also had to do the same in IIS under the FTP site as well as set the Exteranl IP Address of Firewall to the IP address of the modem/router.

I found help here if the like still works: http://stackoverflow.com/questions/21032577/how-use-passive-mode-in-ftpwebrequest-fix-pasv-error-in-net-3-5-define-port/21051211#21051211