可通过三种管理员命令行方案批量导出windows 11已保存wi-fi明文密码:一、cmd用netsh导出至桌面文本;二、powershell脚本格式化输出ssid与密码;三、cmd批处理循环追加提取结果。

如果您已在 Windows 11 中连接并保存过多个 Wi-Fi 网络,但需要一次性获取全部历史网络的明文密码用于备份或迁移,则可通过系统原生命令行工具批量导出。以下是多种互不依赖、可立即执行的一键导出方案:
一、使用命令提示符(管理员)批量导出至桌面文本文件
该方法调用 netsh 工具将所有已保存无线配置的明文密钥重定向输出为纯文本文件,路径固定在桌面,无需手动遍历,结果包含完整 SSID 与对应密码字段,便于人工查阅。
1、右键点击【开始】按钮,选择【终端(管理员)】或【命令提示符(管理员)】。
2、在用户账户控制弹窗中点击【是】,授予管理员权限。
3、输入以下命令并回车,列出全部已保存网络名称以确认范围:netsh wlan show profiles。
4、执行完整导出命令,将全部密钥写入桌面文件:netsh wlan show profiles key=clear > "%USERPROFILE%\Desktop\WiFi_Passwords.txt"。
5、打开桌面生成的 WiFi_Passwords.txt 文件,在每个配置文件的【安全设置】段落中查找【关键内容】字段后的值,即为对应 Wi-Fi 密码。
二、使用 PowerShell(管理员)一键提取并格式化输出
该方法利用 PowerShell 的字符串解析能力,自动遍历所有已保存配置文件,精准提取 SSID 与密码,并按标准两行结构输出至桌面文本,跳过无法解密项,避免冗余信息干扰。
1、右键点击【开始】按钮,选择【Windows PowerShell(管理员)】或【终端(管理员)】。
2、复制粘贴以下完整脚本并回车执行:$profiles = (netsh wlan show profiles) | Select-String '所有用户配置文件' | ForEach-Object { ($_ -split ':')[1].Trim() }; $profiles | ForEach-Object { $pass = (netsh wlan show profile name=$_ key=clear | Select-String '关键内容') -split ':'; if ($pass.Count -gt 1) { Write-Output "SSID: $_`nPassword: $($pass[1].Trim())`n---" } else { Write-Output "SSID: $_`nPassword: [无法读取]`n---" } } | Out-File "$env:USERPROFILE\Desktop\WiFi_Export.txt" -Encoding UTF8。
3、脚本运行完毕后,打开桌面生成的 WiFi_Export.txt 文件,每组信息以“---”分隔,格式为“SSID: 网络名”与“Password: 密码”两行清晰呈现。
三、使用 CMD 批处理命令循环导出所有密码到单个汇总文件
该方法通过 for 循环逐个调用 netsh 命令,对每个已保存网络执行密钥提取,并将结果追加写入同一文本文件,确保即使部分网络因权限或加密策略限制未返回密码,其余有效条目仍完整保留。
1、以管理员身份打开【命令提示符(管理员)】。
2、依次执行以下两条命令(注意换行与空格):echo. > "%USERPROFILE%\Desktop\All_WiFi_Pass.txt"。
3、执行循环导出命令:for /f "skip=9 tokens=1,2 delims=:" %i in ('netsh wlan show profiles') do @echo %j | findstr -i -v "所有用户配置文件" && netsh wlan show profile name="%j" key=clear | findstr "SSID 关键内容" >> "%USERPROFILE%\Desktop\All_WiFi_Pass.txt"。
4、打开桌面生成的 All_WiFi_Pass.txt 文件,筛选含“关键内容”的行,其后紧跟的值即为各网络明文密码。











