Outils pour utilisateurs

Outils du site


win:cmd

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

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

ActionCommande
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
switchaction
/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

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é 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)
win/cmd.txt · Dernière modification: 2021/10/13 13:44 par t0mux