Table des matières
Application HTA
Un fichier .hta est une application web. On peut intercaler du code batch dedans, j'ai trouvé ce fichier en farfouillant sur le net, à adapter selon vos besoins. Ce script permet de saisir la nouvelle clé windows via une petite fenêtre web, la clé est ensuite récupérée par le script batch et envoyée à windows via slmgr (qui est lui même un script VB…).
- test.hta
<!-- :: Batch section @echo off Title Passer une variable de la GUI HTA vers un batch for /F "delims=" %%a in ('mshta.exe "%~F0"') do set "cle=%%a" echo cscript.exe c:\windows\system32\slmgr.vbs /ipk %cle% pause>nul goto :EOF --> <HTML> <HEAD> <HTA:APPLICATION SCROLL="no" SYSMENU="no" > <TITLE>HTA GUI Form</TITLE> <SCRIPT language="Vbscript"> Sub window_onload() CenterWindow 400,150 Focus End Sub Sub CenterWindow(x,y) window.resizeTo x, y iLeft = window.screen.availWidth/2 - x/2 itop = window.screen.availHeight/2 - y/2 window.moveTo ileft, itop End Sub Function closeHTA(reply) Set fso = CreateObject("Scripting.FileSystemObject") fso.GetStandardStream(1).WriteLine(reply) window.close() End Function Sub Focus() txt.Focus End Sub </SCRIPT> </HEAD> <BODY> <center> <label for="dest">Tapez le numero de serie windows</label> <br> <input type="text" id="txt" size="50" Value="XXXXX-XXXX-XXXXX-XXXXX-XXXXX"> <br><Input type="Submit" onclick="closeHTA(txt.value)" value="Valider"> </center> </BODY> </HTML>
Réactiver le "menu F8" sur Windows 10
Système courant
bcdedit /set {default} bootmenupolicy legacy
Système "offline"
C'est à dire depuis un WinPE par exemple. Ne pas oublier de mettre la lettre de lecteur qui correspond à la partition “Réservé au système” du système cible.
bcdedit /store C:\Boot\BCD /set {default} bootmenupolicy legacy
Définir le fond d'écran via CMD
La première ligne défini le fond d'écran, la deuxième actualise.
reg add "HKEY_CURRENT_USER\Control Panel\Desktop" /v Wallpaper /t REG_SZ /d "X:\chemin\image.jpg" /f RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters
Nettoyer windows
Attention, il vaut mieux fermer toutes vos applications avant d'effectuer un nettoyage de Windows.
Temporaires avec PowerShell
Cette commande va supprimer tous le contenu (récursivement) des dossiers indiqués dans la variable $tempfolder.
$tempfolders = @("C:\Windows\Temp\*", "C:\Windows\Prefetch\*", "C:\Documents and Settings\*\Local Settings\temp\*", "C:\Users\*\Appdata\Local\Temp\*") Remove-Item $tempfolders -force -recurse
Désinstaller les AppX
Ouvrir PowerShell en tant qu'admin
Désinstaller toutes les appx, pour tous les users
Get-AppxPackage -allusers * | Remove-AppxPackage -allusers
Désinstaller toutes les appx, pour l'user courant
Get-AppxPackage * | Remove-AppxPackage
Désinstaller définitivement les appx, pour tous les users
# commande originale Get-AppxProvisionedPackage -Online | where {$_.PackageName -like $app} | Remove-AppxProvisionedPackage -Online -ErrorAction SilentlyContinue # commande à tester Get-AppxProvisionedPackage -Online * | Remove-AppxProvisionedPackage -Online -ErrorAction SilentlyContinue
Purger le spooler d'impression
Ca peut arriver que la couche impression soit buguée sur Windows. Une des astuces consiste à nettoyer le spooler en stopant le service, supprimant le contenu du tampon, et redémarrer le service. Le tout se fait dans un CMD lancé en Administrateur.
net stop spooler DEL /F /S /Q %systemroot%\System32\spool\PRINTERS\* net start spooler
Réseau
Réinitialiser la couche réseau
netsh winsock reset all netsh int ip reset
Voir son IP publique
Méthode “normale” (on voit le serveur DNS, et l'IP publique)
nslookup myip.opendns.com resolver1.opendns.com
Méthode plus complexe (on ne voit que l'IP publique, peut être utile dans un script)
for /F "tokens=2 skip=4 delims= " %a in ('nslookup myip.opendns.com resolver1.opendns.com ^2^>NUL') do @echo %a
Utilisateurs et mots de passe
CMDs
Action | Commande |
---|---|
Créer un utilisateur et son mot de passe (idem changement mdp) | net user [login] [pass] /add |
Créer un utilisateur et son mot de passe sur le domaine | net user [login] [pass] /add /domain |
Passer l'utilisateur admin du poste | net localgroup administrators [login] /add |
Activer le compte administrateur | net user administrateur /active:yes |
Supprimer un utilisateur | net user [login] /delete |
switch | action |
---|---|
/fullname:“Nom Prenom” | Créer un user dont le nom complet est “Nom Prenom” |
Supprimer un mot de passe inconnu
Méthode "utilman"
À partir de Windows Vista.
- démarrer sur un live usb/cd de linux ou windows
- aller dans c:\windows\system32\
- renommer cmd.exe > cmd.old
- renommer utilman.exe > cmd.exe
- renommer cmd.old > utilman.exe
- redémarrer sur windows
- Windows + U cela va ouvrir utilman.exe qui est en fait le cmd.exe qu’on a renommé
- taper net user [username] “” pour définir un mot de passe vide (= le supprimer).
- C’est terminé. Redémarrer sur le live pour renommer les fichiers dans le sens inverse.
- Si cette technique n'a pas fonctionner on peut aussi créer un utilisateur admin en suivant les commandes ci-dessous…
Méthode linux (avec chntpw)
Cette technique peut être effectuée depuis une distro installée ou démarrée en Live (CD/USB).
Installation de chntpw
Archlinux / Manjaro
sudo pacman -Sy chntpw
Debian / Ubuntu / Mint
sudo apt install chntpw
Monter la partition
Si vous démarrer sur un Live, la partition Windows sera probablement /dev/sda2 (la sda1 étant celle “Réservé au système”). Attention si c'est un Windows installé en GPT/EFI il y a de forte chance pour que ce soit la sda3 ou sda4, je suggère donc de commencer par lister avec fdisk.
sudo mkdir /mnt/windows # création du point de montage sudo fdisk -l # on repère la partition windows (c'est généralement la plus grosse) sudo mount /dev/sda2 /mnt/windows
chntpw
sudo chntpw /mnt/windows/Windows/System32/config/SAM -i
Autre
Cacher une fenêtre
Le processus reste visible dans le gestionnaire des tâches, mais la fenêtre est complètement cachée. Nous prenons dans tous les exemples le programme notepad.exe
Méthode VB
Utiliser le script VB suivant :
- hide-notepad.vbs
Dim WShell Set WShell = CreateObject("WScript.Shell") WShell.Run "Notepad.exe", 0 Set WShell = Nothing
Méthode PS
La méthode powershell s’effectue avec la commande PS suivante :
Start-Process -WindowStyle hidden -FilePath Notepad.exe
Cacher un processus
Le processus ne serait pas visible par le gestionnaire de tache…. par contre je galère vraiment à trouver des infos la dessus. J'ai trouvé ce code mais je ne sais pas du tout comment l'exploiter. Apparemment Sony avait développé un rootkit pour ça… mais je ne trouve pas grand chose d'exploitable non plus.
Taille d'un dossier (PS)
"{0:N2} MB" -f ((Get-ChildItem .\DOSSIER -Recurse | Measure-Object -Property Length -Sum -ErrorAction Stop).Sum / 1MB)