2016-06-16 3 views
1

ネットワークのパスワードを検出するPowerShellスクリプトを作成しましたが、開くとすぐに終了します。私はRead-Hostコマンドを使ってみましたが、うまくいきませんでした。ここに私のスクリプトは次のとおりです。すぐに実行した後にスクリプトが終了し、Read-Host -Promptが機能しません。

$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

こんにちは、ISEを使ってPowerShellコードを書いていますか? **開始**を押して、** ise **を入力し、**を入力します**。 – sodawillow

+0

はいPowerShell ISEを使用します。すべての私の問題が解決されました –

+0

あなたが質問に答えていることを示す方法は、あなたに役立つ回答の横にあるチェックマークを使用することです。 – Matt

答えて

1

あなたは、少なくともデバッグに閉じてからそれを維持するために-noexitを使用する場合があります別の場所からPowerShellを呼び出している場合。

わずかに無関係なご質問には、ここにあなたが機能

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 
    } 
} 

にそれを作ることができる簡単な方法で、ここで私が使用するものです。確かに、それはより読みやすいかもしれませんが、私はそれが1ライナーであるのが好きです

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()}} 
} 
+0

ありがとうございます、使用しているバージョンは動作しますが、上記のバージョンは動作しません。私はとにかく1つのライナーを好む –

+0

私は小さな問題に遭遇しました。 11文字を超えるネットワークキーではフルキーが表示されないようですが、これをバイパスする方法はありますか? –

+0

netshコマンドを単独で実行して、それがそのプログラムの制限であるかどうかを確認する必要があります。 –

関連する問題