windows查看WiFi密码脚本


很多时候我们会忘记已经连接过的 WiFi 密码,需要查看的时候运行一下这个 python 脚本就可以显示已经 windows 上已经连接过的所有 WiFi 密码。

python 版本:

import subprocess
 
# 获取wifi列表
output = subprocess.run(['netsh', 'wlan', 'show', 'profiles'], capture_output=True).stdout.decode('gbk').split('\n')
wifis = [line.split(':')[1][1:-1] for line in output if "所有用户配置文件" in line]
 
# 查看每个wifi对应的密码
for wifi in wifis:
    results = subprocess.run(['netsh', 'wlan', 'show', 'profile', wifi, 'key=clear'],
                             capture_output=True).stdout.decode('gbk', errors='ignore').split('\n')
    results = [line.split(':')[1][1:-1] for line in results if "关键内容" in line]
    try:
        print(f'wifi名:{wifi},密码:{results[0]}')
    except IndexError:
        print(f'wifi名:{wifi},密码:无法提取')
input('按enter确认并退出')

还有一个 bat 版本:

@echo off & setlocal EnableDelayedExpansion
chcp 65001 >nul

echo Fetching saved WiFi accounts and passwords...
echo ==================================
for /f "tokens=2 delims=:" %%i in ('netsh wlan show profiles ^| findstr "All User Profile"') do (
    set "ssid=%%i"
    set "ssid=!ssid:~1!"
    set "password="
    for /f "tokens=2 delims=:" %%j in ('netsh wlan show profile name^="!ssid!" key^=clear ^| findstr /C:"Key Content"') do (
        set "password=%%j"
        set "password=!password:~1!"
    )
    set "output=!ssid!                         "
    echo wifi名:!output:~0,25! 密码:!password!
)
echo ==================================
echo All WiFi passwords have been displayed.

pause   

注:python 版本需要先安装 python 才能运行。