Table of Contents
As a self-declared Windows power user, I ran into my fair share of various tools that are bundled into Windows that, when mentioned, cause people to go “Wait, that’s a thing?” Instead of repeating myself over and over, I thought I would document them here, in no particular order.
1. changepk #
Often times, right after installing Windows, I need to change the product key to something that I actually have instead of the default one. Because I do not want to go through UI navigation, I press Win + R to pop the Run… dialog open and then type in
changepk to go instantly to the product key update view in the Settings app. It saves seconds.
For the adventurous, and if you’re like me and have a “machine bootstrap” script, you can even use it programmatically, like this:
changepk.exe /ProductKey YOURP-RODUC-TKEYH-ERE01-23456
Is this documented? Of course!
2. charmap #
Every once in a while I need to get the copyright or the trademark symbols in the clipboard and I can’t quite remember the keyboard combination for those. For those (rare) situations,
charmap (run it from whatever UI is helpful, like Run… or Windows Terminal) comes to the rescue.
3. choice #
For those of you who are writing scripts and want to have the user answer a command-line prompt with a choice, the utility you’re looking for is, quite literally,
choice. No more writing that from scratch, and you can read the output through
4. cleanmgr #
For whatever reason, sometimes the disk properties started from Windows Explorer no longer show the option to do disk cleanup.
Worry not, because this is easily done by running
5. control userpasswords2 #
Sometimes you just need to quickly see local users, their group assignments, and manage some security bells and whistles. Instead of opening the Settings app, run:
You might notice that there is a
userpasswords - what happens if you run it without the suffix? You get the shortcut to your current user account in the classic Control Panel.
6. clip #
For those commands where you want to put the output directly into the clipboard. Extremely convenient for scripts where you need to fiddle with a lot of outputs.
7. computerdefaults #
I mostly use this for a script I wrote some time ago for Windows bootstrapping - once the set up is complete, I want to verify that all the proper application defaults are set, and the way to do it is by running
computerdefaults to see all the associations in one place.
It’s merely a shortcut into the Settings app.
8. control #
Launches the classic Control Panel. I really enjoy the aesthetics and the information density in the old variant.
9. cttune #
Bought a new monitor and need to adjust how ClearType renders your fonts? This is the tool for you.
10. devmgmt.msc #
Using the Device Manager is helpful if you need to quickly take a peek at everything connected to the machine, update drivers, or get some parameters for your reverse engineering experiments.
11. diskmgmt.msc #
I lost count of how many flash drives I’ve used that had funky partitioning schemes that I needed to reset, or, you know, modify so that I can install Windows. The Disk Management utility is extremely helpful for this if you don’t want to deal with
12. diskusage #
Really, the easiest way to programmatically see the disk usage. I run this regularly:
diskusage L:\Users\myself\LocalFolder\ /h
Very easy to see space allocation for any folder on disk.
13. displayswitch #
You know how you can press Win + P to open the projection menu? Well, you can do this from the command line with the help of
Massively useful? Eh. Fun little trick to keep in your back pocket? Totally.
14. dxdiag #
Quick way to see all DirectX-compatible devices on your box. I use this to quickly get the parameters for the graphics adapters on family machines that I am diagnosing on occasion.
15. dxcpl #
Not particularly useful for the vast majority of Windows users, but Windows does have a built-in utility for DirectX debugging.
If you’re more into using the Terminal, you can use similar capabilities through
16. findstr #
The easiest way to quickly find strings in all kinds of content files. I use it regularly for scripts when I need to replace/remove/edit pieces of plain text in notes or blog posts.
All in one command, like this:
findstr /s /i YOUR_STRING *.filetype
Refer to the official documentation for more command line options.
17. fondue #
The direct way to enable Windows features, especially for bootstrapping scripts. I use this regularly to enable things like Hyper-V and Windows Subsystem for Linux.
Despite the goofy name, it’s actually a built-in official tool - no installation required! You can read the docs if you don’t believe me.
You can run it like this:
If you prefer to not have any UI shown, you can pass a dedicated flag for it:
fondue /enable-feature:Microsoft-Windows-Subsystem-Linux /hide-ux:all
Other useful feature IDs to enable you might consider include
Containers-DisposableClientVM (that’s Windows Sandbox).
18. getmac #
Gives you the MAC addresses for connected network adapters. Helpful if, say, you’re looking at your network dashboard and need to figure out which machine is your Windows box.
19. hostname #
Plain and simple, returns the current computer name.
20. isoburn #
Somewhat archaic and probably unnecessary to most folks (I mean, who burns DVDs nowadays), but this tool allows one to put their ISO image onto optical media without having to install third-party software.
Use it like this:
isoburn /Q D: some_image.iso
Again - zero installation needed for any third-party tools that do that.
21. label #
Utility designed for you to easily assign labels to any of the drives on your computer, without having to touch Windows Explorer.
You can use it like this:
Or, if you want to get the current label for the drive, use it without any arguments.
22. msconfig #
Quick way to manage boot settings and configured services. Some time ago you could also manage startup tasks through it, but that has since moved into the Task Manager.
23. msinfo32 #
Gets you all the system details at a glance (e.g., how much RAM you have, what is the GPU, what IR adapters you have connected). Again, very convenient in situations where I am doing any kinds of diagnostics and need to see what the system has inside.
24. netstat #
Shows all active TCP connections and ports on which the PC is listening on. Read the docs for more command line arguments.
If you’re a developer working with the networking stack, or just want to see what pieces of software are sitting locally listening for connections, this is the tool to see those at a glance.
25. optionalfeatures #
GUI for enabling optional Windows features. If you’re not keen on using
fondue or digging through undocumented feature IDs, fire this up and click on the checkboxes you need.
26. powercfg #
My first run-in with this tool happened as I worked on the Awake utility for Windows. Customers would often report that Awake didn’t work or that they disabled it and the screen was still not going to sleep.
powercfg allows you to manage the power settings for your box, but also it allows visualizing what’s keeping your PC in a specific power state.
The nifty command to use is:
27. psr #
This is an awesome tool that I recommend to family and friends when we’re trying to diagnose issues remotely. Rather than sit on the phone and talk them through step-by-step of whatever they’re doing, I ask them to run
psr (the Windows Steps Recorder) and perform the activity normally. The tool will automatically track and generate screenshots, with detailed outlines of what happened. At the end, it produces a
.zip file with a
.mht inside that can be opened in the browser and parsed visually.
28. services.msc #
If you ever need to see all running services (as well as stop or restart one), type in
services.msc and go directly into the full service list view. Neat to see everything in one place, along with the current state.
29. systeminfo #
All your PC parameters, at a glance, in the Terminal. That’s it - that’s the tool.
30. System Properties family of commands #
You know how you could right-click on your PC in Windows Explorer, click on Properties, and then on Advanced system settings to get to the detailed PC settings configuration view? Well, as it turns out, you can access every single tab in the System Properties dialog through their own commands.
The commands include:
You can now save yourself precious seconds in getting to the right tab.
31. takeown #
There are times when certain files become locked or inaccessible (e.g., you brought them over from another computer with different permissions).
takeown allows you to re-assign permissions with minimal friction.
32. tasklist #
Shows currently running processes, along with PID and memory usage. The tool has powerful filtering capabilities that you can use to find just the right process.
33. wf.msc #
Go straight to the Windows Firewall configuration view. That’s where you can set inbound and outbound network protection rules without dealing with the command line.
34. where #
Curious to find out where a given executable in your command prompt comes from? Ask
where.exe like this:
Keep in mind that if you’re running this from PowerShell, by default
where stands for
Where-Object, so you need to use the qualified
where.exe name when calling the utility.
35. whoami #
With this one quick trick you can find out who is the current user running the commands.
36. winsat #
Remember how in older versions of Windows, like Windows Vista, you could get a Windows Experience Index Score? It was a neat visual in the Control Panel that has since gone the way of the Zune, but worry not, because you can still get the number if you run the following:
The result file will be stored in
C:\Windows\Performance\WinSAT\DataStore (unless you specified otherwise) and will be very long. Look for the
<WinSPR> <SystemScore>7.9</SystemScore> <MemoryScore>9.4</MemoryScore> <CpuScore>9.4</CpuScore> <CPUSubAggScore>8.9</CPUSubAggScore> <VideoEncodeScore>9.9</VideoEncodeScore> <GraphicsScore>9.9</GraphicsScore> <Dx9SubScore>9.9</Dx9SubScore> <Dx10SubScore>9.9</Dx10SubScore> <GamingScore>9.9</GamingScore> <DiskScore>7.9</DiskScore> <LimitsApplied> <GamingScore> <LimitApplied Friendly="We no longer run the D3D test. Returned scores and metrics are hardcoded sentinel values.">NoD3DTestRun</LimitApplied> </GamingScore> </LimitsApplied> </WinSPR>
As with anything in real life, getting a 10/10 score is apparently absurdly hard, even on modern boxes. Time to upgrade my SSD.
37. winver #
Painlessly see the details about the installed Windows version.
38. joy.cpl #
About to play Microsoft Flight Simulator and need to verify and calibrate the configuration of your joystick? Into some Halo Infinite and plugging in your Microsoft Elite 2 controller? This Control Panel applet can help you calibrate and diagnose gaming input devices.
The last mention of this tool I could track down was in a Microsoft Support article last updated in 2021.
39. desk.cpl #
A shortcut to get to the display settings for your system. Savings can count in tens of seconds if you have multiple displays that need reconfiguration occasionally.
40. ncpa.cpl #
Yet another helpful shortcut for a classic Control Panel applet - the Network Connections view (more commonly known as the Network Control Panel).
You can quickly see what network adapters are connected and access their properties without going through the modernized flow. I like this for the information density and the very clear visualization in one place.
41. mmsys.cpl #
Classic sound settings with no fuss. With this applet I can quickly switch between audio devices, which came in handy several times before podcast recording when the right device simply wasn’t be enabled for whatever reason.
42. sysdm.cpl #
You know how I talked about the System Properties family of commands? Well, if you don’t want to remember all those commands and would rather launch the applet directly - type in
sysdm.cpl in your Terminal window.
43. timedate.cpl #
Remember how you had to change time settings every once in a while? Yeah, me neither. Anyway, there is a way to quickly access your time and date settings from the Terminal as well, with the help of this Control Panel applet.
44. appwiz.cpl #
When it comes to uninstalling and modifying apps on my Windows boxes, I never use the Settings view - it’s always through the classic Control Panel. And what do you know - there is an easy to remember shortcut to get to the right applet from the Terminal, called
Ah, the peace of mind of a familiar experience.
45. main.cpl #
Don’t let the name deceive you - this is not the main view of the classic Control Panel. This is the Mouse Properties dialog. Every once in a while I swap mice between my machines and need to adjust the sensitivity or wheel behavior. This is the fastest way to get there.
46. tree #
Terminal-friendly visualization of your folder structure. If you ever want to see what’s nested where, these four letters will be a time saver.
47. tzutil #
The Windows Time Zone Utility, which can be used to get the current time zone as well as set it. Helpful for certain scripted scenarios, or if you move to a different location with a different timezone and don’t want to deal with those pesky GUIs.
48. setx #
If you ever need to set user or system-wide environment variables, look no further than
setx. What’s great about this tool is that it can be used to set permanent environment variables, which can be helpful when, for example, I am provisioning a new Windows machine and want to have a path my frequently non-installed binaries baked into the Terminal.
49. attrib #
Allows the user to change file attributes, like making it read-only, archived, or hidden. I don’t use it very frequently, but it saved me in a pinch more than once.
50. robocopy #
Saving the best for last.
robocopy is how I back up my data to external/offsite drives. It’s much faster than dealing with Windows Explorer. It’s performant, versatile, and is bundled into Windows - what more can you ask for?