You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell无法将Windows无线密码存入变量及日志文件问题

解决PowerShell获取无线密码时变量引用失败的问题

问题根源

你的$SSID变量实际是数组类型(从输出能看到重复的SSID值),因为Get-NetConnectionProfile返回了多个网络连接配置。当你把数组直接传入netsh命令的name参数时,PowerShell会将数组元素拼接成空格分隔的字符串,导致netsh无法识别这个无效的SSID;同时原代码中多余的反引号"也干扰了变量的正常解析。

解决方案

1. 确保$SSID为单个值

先对Get-NetConnectionProfile的结果做去重或取单个值处理,避免数组传入命令:

# 取第一个网络连接的SSID
$SSID = (Get-NetConnectionProfile).Name | Select-Object -First 1

# 或者去重后取唯一值(适用于多个重复SSID的情况)
# $SSID = (Get-NetConnectionProfile).Name | Get-Unique

2. 修正变量引用的引号写法

PowerShell中双引号字符串内可直接解析变量,无需用反引号转义,直接写成name="$SSID"即可。

完整修正代码

$SSID = (Get-NetConnectionProfile).Name | Select-Object -First 1

$PASSPHRASE = netsh.exe wlan show profiles name="$SSID" key=clear | Select-String -Pattern ".*Key Content.*:(.*)" -AllMatches

Start-Transcript -Path "$home\Log.txt"
netsh.exe wlan show interface
Write-Output $PASSPHRASE
Stop-Transcript

验证方法

执行前可以先检查$SSID的类型和值,确认是单个字符串:

$SSID = (Get-NetConnectionProfile).Name | Select-Object -First 1
$SSID.GetType() # 输出应为System.String
Write-Output $SSID # 输出单个SSID值

内容的提问来源于stack exchange,提问作者Sgt.Foose

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 12:04:53