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).
Dans le but de correctement comprendre le script, il peut ĂȘtre utile de parcourir rapidement les principales commandes de gestion du WiFi dans Windows.
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 ?.
C:\WINDOWS\system32>netsh wlan show all
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
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
C:\WINDOWS\system32>netsh wlan Export Profile Name="STD_ROCKS" key=clear folder=c:\Users\user\Desktop\
C:\WINDOWS\system32>netsh add profile filename="c:\Users\user\Desktop\STD_ROCKS.xml" user=all
C:\WINDOWS\system32>netsh wlan set profileorder name="STD_ROCKS" interface="Wi-Fi" priority=1
C:\WINDOWS\system32>netsh wlan delete profile name="STD_ROCKS" interface="Wi-Fi"
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Ă©.
C:\WINDOWS\system32>netsh wlan Export Profile Name="STD_ROCKS_NEW" key=clear folder=c:\Users\user\Desktop\
<?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>
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"
Nous pouvons maintenant créer une GPO qui exécutera le script lorsque les ordinateurs démarreront.
Contact :