我制作了一个PowerShell脚本,可以找到您网络的密码,但是在打开后会立即关闭。我尝试使用Read-Host命令但它不起作用。这是我的剧本:
$Output = netsh wlan show profiles name="enter network here" key=clear
$SSIDSearchResults = $Output | Select-String -Pattern 'SSID Name'
$ProfileName = ($SSIDSearchResults -split ":")[-1].Trim() -replace '"'
$PwSearchResult = $Output | Select-String 'Key Content'
$PW = ($PwSearchResult -split ":")[-1].Trim() -replace '"'
[pscustomobject] @{
WifiProfileName = $ProfileName
Password = $PW
}
答案 0 :(得分:1)
如果您从其他位置调用powershell,则可以使用-noexit
使其至少关闭以进行调试。
与您的问题仅略微无关,这是一种简单的方法,您可以将其变为函数
function Show-WifiPassword ($network) {
$Output = netsh wlan show profiles name="$network" key=clear
$SSIDSearchResults = $Output | Select-String -Pattern 'SSID Name'
$ProfileName = ($SSIDSearchResults -split ":")[-1].Trim() -replace '"'
$PwSearchResult = $Output | Select-String 'Key Content'
$PW = ($PwSearchResult -split ':')[-1].Trim() -replace '"'
[pscustomobject] @{
WifiProfileName = $ProfileName
Password = $PW
}
}
这是我使用的那个。诚然,它可能更具可读性,但我喜欢它是一个单行
function Show-WifiPasswords {
netsh wlan show profiles | ? {$_ -match ' : '} | % {$_.split(':')[1].trim()} | % {$n = $_; netsh wlan show profile name="$_" key=clear} | ? {$_ -match 'key content'} | select @{n='Network';e={$n}}, @{n='Key';e={$_.split(':')[1].trim()}}
}