Powershell 获取电脑保存的所有wifi密码
一. 知识点
netsh wlan show profiles
- 用于显示计算机上已保存的无线网络配置文件
Measure-Object
- 用于统计数量
[PSCustomObject]@{ }
- 用于创建Powershell对象
[math]::Round
- 四舍五入
Write-Progress
- 显示进度条
二. 代码
- 只能获取中文Windows操作系统的wifi密码
- 如果想获取英文获取日文,需要把
Select-String
后面的汉字改为对应系统的语言的文字
Write-Host '脚本执行开始...' -ForegroundColor Red
# 获取出所有的wifi名称
$wifi_name_list = netsh wlan show profiles | Select-String "所有用户配置文件" | ForEach-Object {
# 过滤出所有wifi名称(将wifi名之外的部分替换为空字符串)
$_ -replace ".*:\s+", ""
}
# 获取wifi名称的总数量
$wifi_list_count = ($wifi_name_list | Measure-Object).Count
# 存放wifi信息的数组
$wifi_object_array = @()
# 根基wifi名称获取wifi信息
for ($i = 1; $i -le $wifi_list_count; $i++) {
# 创建一个Powershell自定义对象,并添加到数组中
$wifi_object_array += [PSCustomObject]@{
wifi名称 = $wifi_name_list[$i]
# 根据wifi名称获取wifi密码
wifi密码 = netsh wlan show profile name="$($wifi_name_list[$i])" key=clear | Select-String "关键内容" | ForEach-Object { $_ -replace ".*:\s+", "" }
}
# 计算当前进度
$progress = [math]::Round(($i / $wifi_list_count) * 100)
# 更新进度条
Write-Progress -Activity "ヾ(•ω•`)oWiFi密码获取ヾ(•ω•`)o" -Status "当前进度: $progress%" -PercentComplete $progress
}
# 完成时清除进度条
Write-Progress -Activity "ヾ(•ω•`)oWiFi密码获取ヾ(•ω•`)o" -Status "Completed!" -Completed
# 打印wifi对象信息
$wifi_object_array | Format-Table -AutoSize
Write-Host '脚本执行结束...' -ForegroundColor Red
# 暂停脚本执行
Pause
三. 效果
原文地址:https://blog.csdn.net/feyehong/article/details/140168121
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!