立即运行后脚本关闭,并且Read-Host -Prompt不起作用

时间:2016-06-16 13:57:42

标签: powershell

我制作了一个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 

}

1 个答案:

答案 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()}}
}