<p>I'd like to automate the FTP download of a database backup file using PowerShell.  The file name includes the date so I can't just run the same FTP script every day.  Is there a clean way to do this built into PowerShell or using the .NET framework?</p>

<p>I want to use a secure FTP session.</p>

This isn't as simple as I wish it would be. There are three options that I know of.
.NET - You can use the .NET framework to do this in PowerShell, but it involves raw socket manipulation that I wouldn't want to do in a script. If I were going this route, then I would wrap up all the FTP junk into a DLL in C# and then use that DLL from PowerShell.
Manipulating a file - If you know the pattern of the name of the file that you need to get each day then you could just open your FTP script with PowerShell and change the name of the file in the script. Then run the script.
Pipe text to FTP - The last option is to use PowerShell to pipe information into and out of your FTP session. See
here
.