===== 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** HTA GUI Form


===== 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 [[https://www.pdq.com/blog/remove-appx-packages/|source]] ===== 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 [[https://winaero.com/blog/run-a-program-hidden-in-windows-10/|source]] ==== 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é [[https://www.adlice.com/runpe-hide-code-behind-legit-process/|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)