1
votes

Comment trouver automatiquement les mots de passe WiFi sur Windows en utilisant Batch?

Je remercie ce site (allemand) conscient de la commande batch

netsh wlan show profile <Name> key=clear

pour afficher les noms de tous les réseaux WiFi sécurisés comme ceci:

...
Benutzerprofile
---------------
    Profil fr alle Benutzer : <wifi network name 1>
    Profil fr alle Benutzer : <wifi network name 2>
...

Après cela, on peut utiliser p>

netsh wlan show profile 

représente le nom du réseau respectif obtenu par exemple ci-dessus.

Est-il possible de combiner automatiquement les deux?


1 commentaires

Essayez ce lot testé sur des machines françaises Wifi Passwords Recovery.bat


3 Réponses :


0
votes

Pour le pour un peu ci-dessous et la partie : Trim ( merci à 1 ou 2 ), une expansion différée est nécessaire pour que les variables de ce fichier de commandes soient développées au moment de l'exécution plutôt qu'à temps d'analyse. Utilisation: les variables délimitées par des points d'exclamation (!) Sont évaluées à l'exécution. Cela garantira le bon comportement dans ce cas.

echo | set / p = "test text" donne un texte sans nouvelle ligne ( merci ).

for / F" tokens = 2 delims =: "%% i in (SavedNetworks.temp) do (...) vous donne le deuxième jeton de chaque ligne, séparé par un : ( source ).

SetLocal EnableDelayedExpansion
@echo|set /p="Lese die existierenden Netzwerke ein:"
netsh wlan show profile > SavedNetworks.temp
@echo|set /p="Verarbeite die eingelesenen Netzwerke (1):"
@echo off
for /F "tokens=2 delims=:" %%i in (SavedNetworks.temp) do (
call :Trim Actual %%i
netsh wlan show profile "!Actual!" key=clear >> SavedNetworks2.temp 
) 
@echo on
move SavedNetworks2.temp SavedNetworks.temp 
@echo|set /p="Verarbeite die eingelesenen Netzwerke (2):"
findstr "SSID-Name Sicherheitsschlssel Schlsselinhalt" SavedNetworks.temp >> SavedNetworks.txt
::notepad SavedNetworks.temp 
del SavedNetworks.temp 
notepad SavedNetworks.txt
::pause
exit /b

:Trim
::Line below already at the top.
::SetLocal EnableDelayedExpansion
set Params=%*
for /f "tokens=1*" %%a in ("!Params!") do EndLocal & set %1=%%b
exit /b

Malheureusement, ce script ne fonctionne pas pour toutes les langues, à savoir ici: findstr "SSID-Name Sicherheitsschlssel Schlsselinhalt" SavedNetworks.temp >> SavedNetworks.txt (trouvé ici , la commande et la sortie sont en version allemande). Pour trouver les bons mots pour votre langue, décommentez :: notepad SavedNetworks.temp et placez un :: devant la ligne suivante. Exécutez-le et remplacez correctement "SSID-Name Sicherheitsschlssel Schlsselinhalt" .


1 commentaires

Il manque tous les SSID avec un point d'exclamation! C'est tout le WiFi de FRITZ! Box ...



0
votes

Voici comment je l'ai écrit:

Fichier: ShowWiFi.bat

C:\>ShowWiFi
 Fiber5G :  SomePassword
 Courtyard_GUEST :
 redroof :
 Axon :  Password2
 Taco Bell WiFi :
 abelenkWiFi :  January
 SPS Internal :
C:\>

Exemple de sortie

@echo off
setlocal enabledelayedexpansion

for /F "tokens=2 delims=:" %%a in ('netsh wlan show profile') do (
    set wifi_pwd=
    for /F "tokens=2 delims=: usebackq" %%F IN (`netsh wlan show profile %%a key^=clear ^| find "Key Content"`) do (
        set wifi_pwd=%%F
    )
    echo %%a : !wifi_pwd!
)

Ceci n'a pas montré tous les mots de passe pour une raison quelconque, mais en a montré plusieurs.


1 commentaires

Cela échoue pour les SSID avec des espaces, comme le montre votre propre exemple pour Taco Bell WiFi . Vous devez utiliser nestsh wlan show profile name = "%% a" key = clear . Il échoue toujours pour les SSID avec des points d'exclamation



2
votes

5 commentaires

@jeb Merci pour la modification, mon fichu clavier met toujours en majuscule stand alone I :)


Fonctionne pour tous mes Wifi avec des noms étranges, mais ce n'est pas indépendant de la langue. Le premier FIND peut être changé en findstr ":" , qui devrait fonctionner avec la plupart des langues. Seul le second semble être un peu délicat


@jeb ouais vrai, laissez-moi penser à des moyens indépendants de la langue


Votre appel: getpwd %% ssid: ~ 1 %% semble être risqué pour du contenu comme &|<> et ainsi de suite. Et il semble être autorisé dans les noms SSID ! Heureusement, je n'ai pas de tels noms, jusqu'à présent


@jeb a fait le changement pour les caractères spéciaux possibles. Passera un peu de temps plus tard pour rendre cette langue indépendante.