Script: Gespeicherte WLAN Passwörter auslesen [PowerShell]

Hallo,
letztens wollte ich gerne das WLAN-Passwort eines gespeicherten Profils auslesen.
Jedoch war ich mit diesem nicht verbunden, aber mit dem Windows-Default-Programm Netsh.exe ist dies möglich.
Dafür benötigt man die SSID des WLANs, diese hatte ich natürlich nicht mehr genau im Kopf aber auch hier kann einem Netsh helfen (leider nicht in einem Schritt).

Da die Ausgabe des Netsh-Befehls etwas viel ist und ich nur einen Teil der Informationen brauche, werte ich die Ausgabe aus und behalte nur das relevante: SSID und Passwort.

Dazu habe ich folgendes Script geschrieben:

Es werden alle SSIDs in einem Array gespeichert und anschließend das jeweilige Passwort ermittelt. Sollte das Passwort nicht im Profil hinterlegt sein, wird eine Warnung ausgegeben.

Vielleicht findet der ein oder andere dies nützlich, Aktualisierung/Erweiterungen findet man unter: https://github.com/blackboxcoder/Get-WLANPassword

In dem Sinne: Frohes Erinnern!

 

Ein Kommentar

  • Karl-Heinz Schulz

    Hab Die Skript angepaßt an Win10 deutsch üner Variable $KeyPattern (könnte man noch als Parameter mitgeben)
    und das Break im Git-Repo bricht die Ausgabe ab. Daher etwas umgestellt und break entfernt

    #——————————————————————————————————————–

    Function Get-WLANPassword{

    #$keyPattern = „Key Content“ # englisch
    $KeyPattern = „inhalt“ # Deutsch

    $WLANProfileNames =@()
    #Get all the WLAN profile names
    $Output = netsh.exe wlan show profiles | Select-String -pattern “ : “
    #Trim the output to receive only the name
    Foreach($WLANProfileName in $Output){
    $WLANProfileNames += (($WLANProfileName -split „:“)[1]).Trim()
    }
    $WLANProfileObjects =@()
    #Bind the WLAN profile names and also the password to a custom object
    Foreach($WLANProfileName in $WLANProfileNames){
    #get the output for the specified profile name and trim the output to receive the password if there is no password it will inform the user
    try{
    $WLANProfilePassword = (((netsh.exe wlan show profiles name=“$WLANProfileName“ key=clear | select-string -Pattern $KeyPattern) -split „:“)[1]).Trim()
    $WLANProfileObject = New-Object PSCustomobject
    $WLANProfileObject | Add-Member -Type NoteProperty -Name „ProfileName“ -Value $WLANProfileName
    $WLANProfileObject | Add-Member -Type NoteProperty -Name „ProfilePassword“ -Value $WLANProfilePassword
    $WLANProfileObjects += $WLANProfileObject
    Remove-Variable WLANProfileObject
    }Catch{
    Write-Warning „The password for $WLANProfileName is not stored in this profile, so it will be skipped“
    }
    }
    Write-Output $WLANProfileObjects
    } # end fn Get-WLANPassword

    Get-WLANPassword

    #——————————————————————————————————————–

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.