rss logo

Comment remplacer le mot de passe WiFi sur des ordinateurs Windows par GPO

Logo WiFi

De nos jours il est fréquent que les entreprises utilisent le WiFi pour connecter les utilisateurs au réseau de l'entreprise. Les protocoles de protection comme WPA2 et plus récemment WPA3 offrent aujourd'hui une sécurité plutôt correcte mais que faire si le mot de passe venait à être compromis ou si l'on souhaite tout simplement le renouveler de temps en temps? Cela peut vite devenir un casse tête, encore plus lorsque l'on doit gérer un parc de plusieurs centaines de machines.

Il n'y a, à ma connaissance, pas d'outil natif dans les GPO pour gérer cela. Nous allons donc devoir ruser. En effet nous allons voir ici comment changer le code WiFi associé à un SSID en utilisant un script batch. Ce script sera exécuté au démarrage de la machine (et géré par GPO).

Les commandes pour gérer le WiFi en ligne de commande

Dans le but de correctement comprendre le script, il peut être utile de parcourir rapidement les principales commandes de gestion du WiFi dans Windows.

  • Lister les commandes WiFi :
C:\WINDOWS\system32>netsh wlan The following commands are available: Commands in this context: ? - Displays a list of commands. add - Adds a configuration entry to a table. connect - Connects to a wireless network. delete - Deletes a configuration entry from a table. disconnect - Disconnects from a wireless network. dump - Displays a configuration script. export - Saves WLAN profiles to XML files. help - Displays a list of commands. IHV - Commands for IHV logging. refresh - Refresh hosted network settings. reportissues - Generate WLAN smart trace report. set - Sets configuration information. show - Displays information. start - Start hosted network. stop - Stop hosted network. To view help for a command, type the command, followed by a space, and then type ?.
  • Afficher les informations complètes de tous les périphériques et réseaux wifi :
C:\WINDOWS\system32>netsh wlan show all
  • Afficher les profils Wi-Fi :
C:\WINDOWS\system32>netsh wlan show profiles Profiles on interface Wi-Fi: Group policy profiles (read only) --------------------------------- <None> User profiles ------------- All User Profile : FFBOXE All User Profile : STD_ROCKS
  • Afficher le profil STD_ROCKS :
C:\WINDOWS\system32>netsh wlan show profiles "STD_ROCKS" Profile STD_ROCKS on interface Wi-Fi: ======================================================================= Applied: All User Profile Profile information ------------------- Version : 1 Type : Wireless LAN Name : STD_ROCKS Control options : Connection mode : Connect automatically Network broadcast : Connect only if this network is broadcasting AutoSwitch : Do not switch to other networks MAC Randomization : Disabled Connectivity settings --------------------- Number of SSIDs : 1 SSID name : "STD_ROCKS" Network type : Infrastructure Radio type : [ Any Radio Type ] Vendor extension : Not present Security settings ----------------- Authentication : WPA2-Personal Cipher : CCMP Authentication : WPA2-Personal Cipher : GCMP Security key : Present Cost settings ------------- Cost : Unrestricted Congested : No Approaching Data Limit : No Over Data Limit : No Roaming : No Cost Source : Default
  • Exporter le profil WiFi dans «c:\Users\user\Desktop\Wi-Fi-STD_ROCKS.xml» :
C:\WINDOWS\system32>netsh wlan Export Profile Name="STD_ROCKS" key=clear folder=c:\Users\user\Desktop\
  • Importer le profil WiFi pour tous les utilisateurs depuis le fichier «c:\Users\user\Desktop\STD_ROCKS.xml» :
C:\WINDOWS\system32>netsh add profile filename="c:\Users\user\Desktop\STD_ROCKS.xml" user=all
  • Définir l'ordre de préférence du réseau STD_ROCKS à la priorité la plus élevé :
C:\WINDOWS\system32>netsh wlan set profileorder name="STD_ROCKS" interface="Wi-Fi" priority=1
  • Supprimer le profil Wi-Fi STD_ROCKS :
C:\WINDOWS\system32>netsh wlan delete profile name="STD_ROCKS" interface="Wi-Fi"

Création d'un nouveau SSID

Afin d'éviter que les utilisateurs subissent des coupures de connexion nous allons faire cohabiter le temps de la migration deux SSID. L'ancien («STD_ROCKS_OLD» dans le diagramme ci-dessous) avec le mot de passe que l'on souhaite modifier et le nouveau («STD_ROCKS_NEW» dans le diagramme ci-dessous) avec le nouveau mot de passe. Une fois que tous les utilisateurs auront migré vers le nouveau réseau, l'ancien pourra être supprimé.

groupe d'ordinateurs avec deux bornes wifi

Exporter le profil Wi-Fi vers un fichier xml

  • Se connecter manuellement sur le nouveau Wi-FiSTD_ROCKS_NEW» dans le diagramme ci-dessus) depuis un ordinateur Windows.
Menu affichant les Wi-Fi visibles sur une machine windows
  • Une fois connecté exporté le profil Wi-Fi vers un fichier xml :
C:\WINDOWS\system32>netsh wlan Export Profile Name="STD_ROCKS_NEW" key=clear folder=c:\Users\user\Desktop\
  • Le fichier xml devrait apparaitre sur le Bureau :
Fichier xml sur le bureau Windows
  • Ouvrir le fichier xml et vérifier les informations suivantes :
    • Réseau Wi-Fi : STD_ROCKS_NEW (ici)
    • Mot de passe : P@WD2000 (ici)
<?xml version="1.0"?> <WLANProfile xmlns="http://www.microsoft.com/networking/WLAN/profile/v1"> <name>STD_ROCKS_NEW</name> <SSIDConfig> <SSID> <hex>535444524F434B5342414259</hex> <name>STD_ROCKS_NEW</name> </SSID> </SSIDConfig> <connectionType>ESS</connectionType> <connectionMode>auto</connectionMode> <MSM> <security> <authEncryption> <authentication>WPA2PSK</authentication> <encryption>AES</encryption> <useOneX>false</useOneX> </authEncryption> <sharedKey> <keyType>passPhrase</keyType> <protected>false</protected> <keyMaterial>P@WD2000</keyMaterial> </sharedKey> </security> </MSM> <MacRandomization xmlns="http://www.microsoft.com/networking/WLAN/profile/v3"> <enableRandomization>false</enableRandomization> <randomizationSeed>1592637002</randomizationSeed> </MacRandomization> </WLANProfile>

Script Batch

  • Ce que le script fait :
    • Créer un fichier C:\WirelessSet.txt lors de la première exécution, supprimer l'ancien profil (STD_ROCKS_OLD) si le fichier existe (car cela veut dire que le script a déjà été exécuté au moins une fois)
    • Ajouter un nouveau profil WiFi
    • Définir le nouveau profil comme profil par défaut
  • Créer le fichier wifi.bat :
REM Remove REM if you want to reset GPO : REM DEL C:\WirelessSet.txt REM If the file C:\WirelessSet.txt exists, it means the script has already been executed once, so jump to _END switch IF EXIST C:\WirelessSet.txt GOTO _END REM Otherwise add wireless profile from STD_ROCKS_NEW.xml file netsh wlan add profile filename="\\std.local\netlogon\Wi-Fi-STD_ROCKS_NEW.xml" user=all >> C:\WirelessSet.txt REM Set new profile (STD_ROCKS_NEW) with best priority netsh wlan set profileorder name="STD_ROCKS_NEW" interface="Wi-Fi" priority=1 REM exit script GOTO:eof REM _END SWITCH :_END REM Delete old (STD_ROCKS_OLD) wireless profile netsh wlan delete profile name="STD_ROCKS_OLD" interface="Wi-Fi"
  • Puis depuis un serveur Active Directory, copier les fichiers xml et wifi.bat dans C:\Windows\SYSVOL\sysvol\YOUR_DOMAIN\scripts :
Dossier sysvol d'un active directory dans lequel se trouve un script et un fichier xml

Création d'une GPO

Nous pouvons maintenant créer une GPO qui exécutera le script lorsque les ordinateurs démarreront.

  • Ouvrir la console de gestion Group Policy Manager :
Lancer la console de gestion des stratégies de groupe
  • Créer une nouvelle GPO et la lier dans l'OU où se trouvent les objets ordinateurs :
créer une gpo
  • Donner un nom à la GPO :
Définir le nom d'une GPO
  • Éditer la GPO :
Menu déroulant pour éditer GPO
  • Aller dans Configuration ordinateur > Stratégies > Paramètres Windows > Scripts (Démarrage/Arrêt). Faire un clic droit sur Démarrage > Propriétés
édition des propriétés des scripts de démarrage d'une gpo
  • Cliquer sur Ajouter… et Parcourir pour sélectionner le script :
les différentes phases pour l'ajout d'un script dans une gpo
  • Une fois que les ordinateurs auront redémarré ils se connecteront automatiquement sur le nouveau SSID, l'ancien pourra être supprimé :
schéma réseau avec deux ssid
Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

Contact :

contact mail address