Your Windows computer can do far more than Microsoft’s graphical interface reveals. Hidden beneath the familiar point-and-click experience lies PowerShell, a powerful command-line tool that unlocks features completely absent from Windows’ regular menus and settings. While Microsoft has spent decades perfecting the visual interface of Windows, some of its most practical tools remain accessible only through the command line.
Many of these aren’t obscure developer features or complex system administration tools. The reality is that Windows provides no graphical way to accomplish these features/tasks, despite having the underlying functionality built right into the operating system. Microsoft made these deliberate design choices to keep the interface clean and user-friendly. If every PowerShell function had a GUI equivalent, Windows would become overwhelmingly complex with too many tools cluttering the experience.
Instead, these features are limited to the command line interface, leaving millions of people unaware that these capabilities even exist.
Reveal Wi-Fi passwords from your computer
Instantly reveal saved wireless networks
Have you ever needed to share your Wi-Fi password with a guest, but forgot what it is? Your Windows computer actually stores every Wi-Fi password you’ve ever used, but Microsoft provides no easy way to see them through the regular interface. Sure, you can dig through the Control Panel to find the password of your currently connected network, but what about all those other networks you’ve connected to over the years?
Thankfully, Windows provides us with the netsh wlan show profiles command, which lists all saved wireless network profiles on the computer. With a few more commands stitched through a pipeline, we can conveniently get all the Wi-Fi passwords stored on our computer. The command might look intimidating at first, but it’s surprisingly straightforward once you understand pipelines, cmdlets, and parameters. Here’s the command:
(netsh wlan show profiles) | Select-String "All User Profile" | %{$name=$_.Line.Split(':')[1].Trim().Replace('"',''); $_} | %{(netsh wlan show profile name="$name" key=clear)} | Select-String "Key Content" | %{$password=$_.Line.Split(':')[1].Trim(); [PSCustomObject]@{WIFI_NAME=$name; PASSWORD=$password}}
This command lists all your Wi-Fi profiles, then retrieves the password for each one. Within seconds, you’ll see a neat list showing every network name alongside its password. I’ve used this countless times when setting up new devices or helping friends connect to networks I’d forgotten about.
I don’t type this command every time; I store it as a PS1 file (a file saved to run PowerShell scripts) and keep it stored in a folder. You can even use AutoHotkey to keybind PowerShell commands for instant access if you think you’ll use this or other items on the list frequently.
Find duplicate files eating up your storage
Save space by removing duplicates
Many of us have messy Downloads folders. Mine certainly was, until I discovered this next PowerShell feature. Windows has no built-in way to find duplicate files through its regular interface, which means most people accumulate multiple copies of the same documents, images, and videos without realizing it.
PowerShell can solve this problem using a single pipeline command:
Get-ChildItem -File | Group-Object Length | Where-Object {$*.Count -gt 1} | ForEach-Object {$*.Group | Get-FileHash} | Group-Object Hash | Where-Object {$*.Count -gt 1} | ForEach-Object { Write-Host "Duplicate files:"; $*.Group.Path; Write-Host "---" }
This command calculates a unique hash for each file’s content, which means it will catch true duplicates even if they have different names. I regularly run this command on my Downloads folder, and I’m always amazed by how much space I can reclaim by removing duplicates.
Windows doesn’t include this functionality in its GUI because duplicate detection can be resource-intensive, especially for large files. Microsoft likely decided that most users wouldn’t need this feature often enough to warrant the interface complexity.
Test your internet connection to multiple sites simultaneously
Pinpoint slowdowns beyond speed tests
When your internet feels slow or unreliable, most people instinctively run a speed test. But those tests only tell you about your connection to one server. What if the problem is with specific websites or services? Windows has no built-in GUI tool for testing connectivity to multiple sites simultaneously, but PowerShell makes this incredibly easy.
The simple Test-Connection command can check multiple destinations in a single operation:
Test-Connection google.com, facebook.com, youtube.com, microsoft.com
This command pings all four sites simultaneously and shows you the response time for each. You’ll immediately see if one particular service is having problems or if your internet connection is generally slow. I use this whenever my internet feels flaky, because it gives me a much clearer picture of what’s actually happening.
You can also make the test more thorough by specifying how many times to ping each site:
Test-Connection google.com, cloudflare.com, amazon.com -Count 10
This sends 10 pings to each site, giving you data that you can average out. If one site consistently shows high response times while others are fine, you know the problem isn’t your internet connection.
Verify downloaded files are legitimate and safe
Protect yourself with file hash checks
Many of us prefer downloading executables outside the Microsoft Store. To ensure that our downloads are safe, we need a way to verify if the files come directly from the developers. Many legitimate software providers publish hash values alongside their downloads. These are unique fingerprints that change if even a single bit of the file is different. Sadly, Windows doesn’t provide any GUI tool for verifying file hashes.
However, it does have the Get-FileHash command, which allows us to view the file hash of your download (replacing “filename.exe” with the actual filename):
Get-FileHash "filename.exe"
The command returns a SHA256 hash that you can compare against the official hash provided by the software publisher. If they match, you know the file is exactly what the publisher intended. If they don’t match, something went wrong during the download, or the file has been tampered with.
PowerShell opens doors that the Windows GUI keeps locked
These few PowerShell features reveal how much powerful functionality lies hidden beneath Windows’ friendly interface. PowerShell isn’t as intimidating as it might seem. I only know a handful of commands, but that’s enough to access Windows features that many people assume Microsoft never included as part of Windows.
These capabilities aren’t missing at all. They’re just waiting behind a command-line interface you might never explore. Learning these basic commands turns everyday frustrations into quick, one-line solutions. Next time you’re frustrated by a Windows GUI limitation, remember that PowerShell might have exactly what you need.