WLAN-Passwörter in Windows 10/11 exportieren und importieren


    Tags: , ,

    WiFi WLANWenn man auf einem Notebook viele WiFi-Verbindungen gespeichert hat, dann möchte man diese manchmal auch auf einem anderen Rechner nutzen. Windows sieht dafür den Export und Import mittels netsh.exe vor. PowerShell ist dazu nur mit einem Community-Modul in der Lage, alternativ kann man dafür kostenlose GUI-Tools einsetzen.

    Wenn man nur den WPA-Schlüssel des aktuell verbundenen WLAN auslesen möchte, dann kann man das über das Netzwerk- und Freigabecenter tun.

    Dort klickt man auf die WiFi-Verbindung und im daraufhin angezeigten Dialog betätigt man den Button Drahtlos­eigenschaften und wechselt anschließend zur Registerkarte Sicherheit. Durch Aktivieren der Checkbox Zeichen anzeigen kann man das Passwort sichtbar machen.

    Schlüssel für das aktuell verbundene WiFi anzeigen

    Dieses Vorgehen klappt unter Windows 10 und 11 gleichermaßen. Wenn man jedoch die Kennwörter für alle gespeicherten Verbindungen auslesen möchte, dann ist diese Methode unbrauchbar.

    In diesem Fall bieten die Bordmittel nur ein Tool für die Kommandozeile, nämlich netsh.exe. Es erfordert im Unterschied zur GUI für diesen Zweck keine erhöhten Rechte.

    Aber auch dieses Dienstprogramm zeigt mit dem Parameter show nur die Eigenschaften eines einzigen Profils an, dessen Namen man beim Aufruf übergeben muss:

    netsh wlan show profile name=<SSID> key=clear |
    findstr /i "SSID key"

    bzw. auf einem deutschen Windows filtert man die Ausgabe so:

    netsh wlan show profile name=<SSID> key=clear |
    findstr /i "SSID Schlüsselinhalt"

    SSID und Schlüssel eines WLAN-Profils anzeigen

    Man kann zwar das Auslesen aller Passwörter über PowerShell automatisieren, aber einfacher ist es, wenn man die Export­funktion von netsh.exe benutzt. Sie schreibt alle Einstellungen eines Profils in eine XML-Datei, so dass man sie dann auch auf einen anderen Rechner übertragen kann:

    netsh wlan export profile key=clear folder=.\profiles

    In diesem Beispiel speichert netsh.exe die Einstellungen aller Profile in das Verzeichnis profiles. Dieses muss existieren, es wird nicht automatisch erstellt. Verzichtet man auf den folder-Parameter, dann legt netsh.exe die XML-Dateien im aktuellen Verzeichnis ab.

    Alle WLAN-Profile in XML-Dateien exportieren

    Man könnte die Schlüssel mit

    findstr /i "<keyMaterial" .\profiles\*.xml

    oder in PowerShell mit

    select-string -Path .\profiles\*.xml -Pattern "<keyMaterial"

    aus den XML-Dateien extrahieren.

    Der Export schreibt alle Einstellungen der Profile in eine XML-Datei.

    Profile auf anderen PC übertragen

    Dazu kopiert man die XML-Dateien auf den betreffenden Rechner und führt einen Befehl nach diesem Muster aus:

    netsh wlan add profile filename="<Name-XML-Datei>" user=current

    Damit kann man aber immer nur ein Profil auf einmal importieren. Möchte man alle in einem Durchgang übernehmen, dann behilft man sich in der Eingabeaufforderung mit einer Schleife:

    for %a in (*.xml) do netsh wlan add profile filename="%a"

    In PowerShell sieht dieser Befehl so aus:

    dir *.xml | foreach {netsh wlan add profile filename="$_."}

    Ein Profil oder mittels for-Schleife mehrere importieren

    Wenn man beim Export den Parameter key=clear auslässt, dann schreibt das Tool die verschlüsselten Kennwörter in die XML-Dateien. Der Import klappt dann nicht, weil jeder Rechner einen anderen Key für die Verschlüsselung nutzt und der Zielrechner die Passwörter somit nicht dechiffrieren kann.

    Das obige Beispiel verwendet den Parameter user=current, so dass die Profile nur für den aktuell angemeldeten Benutzer übernommen werden. Lässt man ihn weg, dann erfolgt der Import für alle Konten.

    Eine weitere Bedingung für den erfolgreichen Import ist natürlich, dass auf dem Rechner ein WLAN-Interface existiert. Das lässt sich mit

    netsh.exe wlan show interfaces | findstr /i "name"

    prüfen. Hat man mehrere davon, dann kann man das gewünschte beim Import über den interface-Parameter spezifizieren:

    netsh wlan add profile filename=MyWi-Fi.xml interface="Wi-Fi"

    Alternative Methoden

    Wer statt des relativ umständlichen Dienst­programms netsh.exe lieber PowerShell verwenden möchte, der benötigt dafür ein externes Modul.

    Falls man die Kommandozeile insgesamt meiden will, kann man zu kostenlosen GUI-Tools greifen. In Frage kommen dafür WirelessKeyView oder NetSetMan.

    Zusammenfassung

    Die Exportfunktion von netsh.exe schreibt ganze WLAN-Profile in jeweils eigene XML-Dateien. Von dort kann man sie auf einen anderen Rechner übernehmen, vorausgesetzt, man hat die Passwörter im Klartext gespeichert.

    Wenn man die Kennwörter einzelner Verbindungen nur ansehen möchte, dann geht das über den show-Parameter von netsh.exe. Möchte man jedoch die Schlüssel aller Profile anzeigen, dann ist das Exportieren auch dafür die einfachste Methode.

    Täglich Know-how für IT-Pros mit unserem Newsletter

    Wir ver­wenden Ihre Mail-Adresse nur für den Ver­sand der News­letter.
    Es erfolgt keine per­sonen­be­zogene Auswertung.

    Bild von Wolfgang Sommergut

    Wolfgang Sommergut hat lang­jährige Erfahrung als Fach­autor, Berater und Kon­ferenz­sprecher zu ver­schie­denen Themen der IT. Da­ne­ben war er als System­ad­mi­ni­stra­tor und Con­sultant tätig.
    // Kontakt: E-Mail, XING, LinkedIn //

    Verwandte Beiträge

    Weitere Links