Spegnere, riavviare e sospendere Windows da WSL

Alla fine ho sempre WSL aperto o a portata di mano ed avendo usato Linux per vent’anni sono abituato a fare la maggior parte delle cose da terminale, tra cui riavviare, spegnere e sospendere il sistema. Essendo virtualizzato ovviamente WSL non può interagire direttamente con Windows per fare queste tre operazioni ma può lanciare e passare comandi a cmd.exe inglobati i degli shell aliases.

Dunque ho messo questi alias in ~/.bash_aliases:

alias poweroff='cmd.exe /C "shutdown /p"'
alias reboot='cmd.exe /C "shutdown /r /t 2"'
alias sospendi='sleep 6 ; cmd.exe /C "rundll32.exe powrprof.dll,SetSuspendState 0,1,0"'

Per la sospensione ho aggiunto un wait di 6 secondi che mi servono a spegnere tastiera e mouse wireless, altrimenti è immediato ed appena sollevo il mouse per spegnerlo si innesca il wake dalla sospensione.