Skip to content

Windows Apps

See the tools section for useful windows applications. This is a list of microsoft native/own tools.



winget install powertoys 

File Recovery


Recover a specific file from your C: drive to the recovery folder on an E: drive.

winfr C: E: /n \Users\<username>\Documents\QuarterlyStatement.docx

Recover jpeg and png photos from your Pictures folder to the recovery folder on an E: drive.

winfr C: E: /n \Users\<username>\Pictures\*.JPEG /n \Users\<username>\Pictures\*.PNG

Recover your Documents folder from your C: drive to the recovery folder on an E: drive.

winfr C: E: /n \Users\<username>\Documents\ 

Recover PDF and Word files from your C: drive to the recovery folder on an E: drive.

winfr C: E: /r /n *.pdf /n *.docx

Recover any file with the string "invoice" in the filename by using wildcard characters.

winfr C: E: /r /n *invoice* 

Sysinternals Suite

Sysinternals Suite is a bundle of the Sysinternals utilities including Process Explorer, Process Monitor, Sysmon, Autoruns, ProcDump, all of the PsTools, and many more.

Size Bench

SizeBench is a utility that analyzes PDB information to help you optimize and reduce the size of your binaries (DLLs, EXEs, and other PE files). You can break down a binary by sections of the PE file, COFF Groups, static libraries, OBJ file, even by source file - to see which parts of your code and data contribute meaningfully to on-disk and in-memory size. SizeBench can also run heuristic analyses to help you find likely sources of waste, including inefficient usage of virtual functions, duplicated data, and C++ templated code that is "almost foldable" to look for quick opportunities to reduce size.

Snip & Sketch (Screenshot)

Download Snip & Sketch from the store

Take screenshot: Windows + Shift + S

Record Screen

  • Start recording mode: Windows + G
  • start recording: Window + Alt + R

Windows Terminal

Open a new Terminal Window with powershell 7, cmd and WSL (in my case ubuntu)

wt -p "PowerShell 7" `; split-pane -p "cmd" `; split-pane -H wsl.exe

Customized command prompt

Install the required modules

Install-Module posh-git -Scope CurrentUser
Install-Module oh-my-posh -Scope CurrentUser

Check available themes:


If this doesn't look good install a font that works e.g. NerdFonts.

Now update $PROFILE to load modules with every start

echo "Import-Module posh-git") >> $PROFILE
echo "Import-Module oh-my-posh" >> $PROFILE

Add the Theme you like as well e.g. paradox:

echo "Set-PoshPrompt -Theme paradox" >> $PROFILE


Edit the "settings.json" and add under "profiles", "defaults" a line for a font you like e.g.:

"fontFace": "MesloLGM NF"


Some helpful commands:

  • Check for updates: wsl --update
  • List all available WSL distributions: wsl --list --online
  • List locally installed distros: wsl --list --verbose
  • Install a distribution: wsl --install -d Ubuntu-20.04
  • Delete Distro: wsl --unregister Ubuntu-18.04
  • Set default distro: wsl --set-default Ubuntu-20.04
  • Open WSL in pwsh: wsl --distribution Ubuntu-20.04 --user fab1
  • Restart WSL: Get-Service LxssManager | Restart-Service orwsl --shutdown
  • Change distro to version 2: wsl --set-version kali-linux 2*

wsl --distribution Ubuntu-20.04 --user fab1

Note that the root password is set random and needs to be updated using sudo passwd

*This may require installing the following

(New-Object System.Net.WebClient).DownloadFile("", "wsl_update_x64.msi") 
Start-Process msiexec.exe -Wait -ArgumentList '/I wsl_update_x64.msi /quiet'

Mount Linux File System

List devices (choose the drive you want to mount) wmic diskdrive list brief, then mount partition 1 of "PHYSICALDRIVE3" and open it:

wsl --mount \\.\PHYSICALDRIVE3 --partition 1
cd /mnt/wsl/PHYSICALDRIVE3p1/

To configure WSL there are 2 main config files: .wslconfig and wsl.conf

  • .wslconfig located in the Windows %UserProfile% directory to configure settings globally across all installed distributions.
  • wsl.conf located in the /etc directory of the WSL distro to configure settings per-distribution.

In this wsl.conf example, the distribution is Ubuntu-20.04 and the file path is \\wsl.localhost\Ubuntu-20.04\etc\wsl.conf.

# Automatically mount Windows drive when the distribution is launched

# Set to true will automount fixed drives (C:/ or D:/) with DrvFs under the root directory set above. Set to false means drives won't be mounted automatically, but need to be mounted manually or with fstab.
enabled = true

# Sets the directory where fixed drives will be automatically mounted. This example changes the mount location, so your C-drive would be /c, rather than the default /mnt/c. 
root = /

# DrvFs-specific options can be specified.  
options = "metadata,uid=1003,gid=1003,umask=077,fmask=11,case=off"

# Sets the `/etc/fstab` file to be processed when a WSL distribution is launched.
mountFsTab = true

# Network host settings that enable the DNS server used by WSL 2. This example changes the hostname, sets generateHosts to false, preventing WSL from the default behavior of auto-generating /etc/hosts, and sets generateResolvConf to false, preventing WSL from auto-generating /etc/resolv.conf, so that you can create your own (ie. nameserver
hostname = wslvm
generateHosts = false
generateResolvConf = false

# Set whether WSL supports interop process like launching Windows apps and adding path variables. Setting these to false will block the launch of Windows processes and block adding $PATH environment variables.
enabled = false
appendWindowsPath = false

# Set the user when launching a distribution with WSL.
default = 0xfab1

# Set a command to run when a new WSL instance launches. This example starts the Docker container service.
command = service docker start

By default .wslconfig is located here: C:\Users\<UserName>\.wslconfig.

# Settings apply across all Linux distros running on WSL 2

# Limits VM memory to use no more than 4 GB, this can be set as whole numbers using GB or MB

# Sets the VM to use two virtual processors

# Specify a custom Linux kernel to use with your installed distros. The default kernel used can be found at

# Sets additional kernel parameters, in this case enabling older Linux base images such as Centos 6
kernelCommandLine = vsyscall=emulate

# Sets amount of swap storage space to 8GB, default is 25% of available RAM

# Sets swapfile path location, default is %USERPROFILE%\AppData\Local\Temp\swap.vhdx

# Disable page reporting so WSL retains all allocated memory claimed from Windows and releases none back when free

# Turn off default connection to bind WSL 2 localhost to Windows localhost

# Disables nested virtualization

# Turns on output console showing contents of dmesg when opening a WSL 2 distro for debugging
Back to top