PowerShell is a powerful tool that’s not just for IT professionals—it’s also great if you’re looking to automate tasks or download files. They’re exceptionally useful if you want a quick, reliable way to grab files from the internet. Here are the easiest methods to download files using PowerShell.
1 Downloading with Invoke-WebRequest
One of the simplest ways to download a file using PowerShell is with Invoke-WebRequest. This command is built into PowerShell and is perfect for quick downloads from the internet or a local server.
Here’s how you do it:
Invoke-WebRequest -Uri "https://example.com/file.zip" -OutFile "C:\Path\To\Save\file.zip"
- -Uri specifies the link to the file.
- -OutFile is where you choose to save it.
This method is great when you need a file quickly and don’t want to fuss with extra steps.
2 Handling Files with Start-BitsTransfer
If you’re dealing with larger files, multiple files, or an unreliable internet connection, Start-BitsTransfer is a more resilient option. This command automatically handles retries if something goes wrong during the download, making it ideal for pulling files from the internet or a remote server.
Here’s the command:
Start-BitsTransfer -Source "https://example.com/file.zip" -Destination "C:\Path\To\Save\file.zip"
This method is especially useful when downloading something substantial, like a large software update or a big media file. It’s also great if you’re automating downloads and must ensure they are completed successfully, even if the connection isn’t perfect.
3 Using curl in PowerShell
For those who prefer a command-line approach, curl is a familiar tool that is also available in PowerShell. It’s quick, efficient, and perfect for downloading files from the internet or a server without a browser.
Here’s the command:
curl -o "C:\Path\To\Save\file.zip" https://example.com/file.zip
- -o Is where you want to save the file.
While PowerShell has its own curl equivalent with Invoke-WebRequest, using the real curl command can sometimes be just as simple and effective.
4 Simple Downloads with wget
Another classic command-line tool is wget, which you can use in PowerShell. It’s lightweight and reliable, making it a great choice for downloads from the internet or a home network.
Here’s how it works:
wget https://example.com/file.zip -OutFile "C:\Path\To\Save\file.zip"
Wget is ideal for those times when you just need to grab a file and get on with your day. It’s a tool that’s perfect for both casual use and automating more complex tasks.
5 Using certutil for Quick Downloads
If you’re on a system without many tools and need a way to download a file, certutil can help. While it’s primarily used for managing certificates, it can double as a file downloader when required.
Here’s the command:
certutil -urlcache -split -f "https://example.com/file.zip" "C:\Path\To\Save\file.zip"
- -urlcache tells certutil to use its URL cache feature, which was originally intended to cache certificate-related URLs. In this context, it repurposes the feature to download the file from the specified URL.
- -split tells certutil to break the download into smaller chunks if necessary.
- -f stands for “force” and ensures that certutil will overwrite the destination file without asking for confirmation.
certutil might not be the first tool you think of, but it’s a useful backup when other options aren’t available. It’s a good one to remember if you ever need a quick download solution on a limited system.
6 Wrapping It Up
There you have it—five easy ways to download files with PowerShell. Whether you’re in a rush and need a quick download or dealing with a more complex situation, one of these methods should fit the bill. Invoke-WebRequest and Start-BitsTransfer are your bread and butter, but it’s always good to have tools like curl, wget, and even certutil ready for different scenarios. With these commands in your toolkit, downloading files in PowerShell is a breeze.