Skip to main content
  1. Writing/

The List Of 50 (Somewhat) Secret Windows Tools & Tricks

·2409 words

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.

Screenshot of the charmap utility on Windows

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 $LASTEXITCODE.

GIF of the choice utility on Windows

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 cleanmgr.

Screenshot of the cleanmgr utility on Windows

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:

control userpasswords2

Screenshot of the user account manager utility on Windows

You might notice that there is a 2 in userpasswords - what happens if you run it without the suffix? You get the shortcut to your current user account in the classic Control Panel.

Screenshot of the user account manager Control Panel applet on Windows

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.

GIF of the clip utility on Windows

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.

Screenshot of the computerdefaults view on Windows

8. control #

Launches the classic Control Panel. I really enjoy the aesthetics and the information density in the old variant.

Screenshot of the classic Control Panel on Windows

9. cttune #

Bought a new monitor and need to adjust how ClearType renders your fonts? This is the tool for you.

Screenshot of the ClearType tuning settings on Windows

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.

Screenshot of the Device Management view on Windows

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 DISKPART.

Screenshot of the Disk Management view on Windows

12. diskusage #

Really, the easiest way to programmatically see the disk usage. I run this regularly:

diskusage L:\Users\myself\LocalFolder\ /h

GIF of the diskusage utility on Windows

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 displayswitch

Screenshot of the display switching utility on Windows

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.

Screenshot of the dxdiag utility on Windows

15. dxcpl #

Not particularly useful for the vast majority of Windows users, but Windows does have a built-in utility for DirectX debugging.

Screenshot of the dxcpl utility on Windows

If you’re more into using the Terminal, you can use similar capabilities through d3dconfig.

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.

GIF of the findstr utility on Windows

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:

fondue /enable-feature:Microsoft-Windows-Subsystem-Linux

Screenshot of the fondue utility on Windows

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 VirtualMachinePlatform, Microsoft-Hyper-V, and 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.

GIF of the hostname utility on Windows

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.

GIF of the label utility on Windows

You can use it like this:

label C:SYSTEM

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.

Screenshot of the msconfig utility on Windows

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.

Screenshot of the msinfo32 utility on Windows

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.

Screenshot of the optionalfeatures utility on Windows

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.

GIF of the powercfg utility on Windows

The nifty command to use is:

powercfg /requests

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.

Screenshot of the psr utility on Windows

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.

Screenshot of the service viewing utility on Windows

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.

Screenshot of the System Properties utility on Windows

The commands include:

  • SystemPropertiesAdvanced
  • SystemPropertiesComputerName
  • SystemPropertiesDataExecutionPrevention
  • SystemPropertiesHardware
  • SystemPropertiesPerformance
  • SystemPropertiesProtection
  • SystemPropertiesRemote

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.

GIF of the tasklist utility on Windows

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.

Screenshot of the Windows Firewall configuration view on Windows

34. where #

Curious to find out where a given executable in your command prompt comes from? Ask where.exe like this:

where.exe your_command

GIF of the where utility on Windows

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.

GIF of the whoami utility on Windows

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:

winsat formal

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 node:

<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.

Screenshot of the winver utility on Windows

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.

GIF of the joy utility on Windows

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.

Screenshot of the desk.cpl utility on Windows

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).

Screenshot of the ncpa.cpl utility on Windows

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.

Screenshot of the mmsys.cpl utility on Windows

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.

Screenshot of the timedate.cpl utility on Windows

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 appwiz.cpl.

Screenshot of the appwiz.cpl utility on Windows

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.

Screenshot of the main.cpl utility on Windows

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.

GIF of the tree utility on Windows

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?