Tags: Netzwerk, Kommandozeile, Windows 10
Verbindet man einen PC mit einem neuen Netzwerk, dann legt Windows dafür ein eigenes Profil an. Es enthält Einstellungen für die Firewall, die SSID oder den WPA-Key für WLANs. Das Management der Netzwerkprofile über die GUI hat Microsoft in Windows 10 eingeschränkt. PowerShell kann das nur zum Teil ausgleichen.
Besonders bei mobilen Anwendern, die sich häufig in verschiedene Netzwerke einbuchen, sammelt sich schnell eine größere Zahl an Profilen (Network Locations in der englischen Version) an. Das gilt nicht nur für WLANs, wo deren Notwendigkeit offensichtlich ist, etwa um Passwörter zu speichern. Auch LANs werden über Profile definiert, etwa um sie als öffentlich oder privat zu kategorisieren.
Rückschritt gegenüber Windows 7
Bei LANs reicht es oft aus, den Adapter oder Switch zu wechseln, und schon legt Windows ein neues Profil an. In diesem Fall möchte man wahrscheinlich die verschiedenen Profile für ein und dasselbe Netzwerk zusammenlegen, wogegen man nicht mehr benötigte Einträge aus einer langen Liste von WLANs einfach löschen wird.
Windows 7 bot im Netzwerk- und Freigabecenter eine bequeme, wenn auch etwas versteckte Möglichkeit, um Profile für LAN-Verbindungen zu bearbeiten. Diese existiert seit Windows 8 nicht mehr und gleichwertige Alternativen für die Kommandozeile fehlen. Einzig das Umbenennen ist vorgesehen, und zwar unter Adaptereinstellungen ändern.
Mit PowerShell zwischen privat und öffentlich wechseln
Das Gespann aus Get- und Set-NetConnectionProfile ist darüber hinaus in der Lage, die Kategorie der Netzwerkprofile von privat auf öffentlich und umgekehrt zu ändern. Der Wert Domäne lässt sich auf diese Weise nicht setzen, er wird automatisch vergeben.
Möchte man Netzwerkprofile mit Get-NetConnectionProfile auflisten, dann erweist sich schnell, dass es nur das aktuelle Profil anzeigen kann. Die solcherart gewonnenen Informationen wie Name oder InterfaceAlias kann man anschließend nutzen, um das betreffende Profil mit Set-NetConnectionProfile einer anderen Kategorie zuzuordnen:
Set-NetConnectionProfile -InterfaceAlias Ethernet -NetworkCategory Public
Profile in der Registry löschen
Weitergehende Operationen wie das Löschen oder Zusammenführen von Netzwerkprofilen erfordern ein Editieren der Registry. Die betreffenden Schlüssel finden sich unter HKLM => SOFTWARE => Microsoft => Windows NT => CurrentVersion => NetworkList => Profiles.
In regedit.exe kann man zwei Profile verschmelzen, indem man die GUID des einen in das zu verschmelzende Profil übernimmt.
WLAN-Profile verwalten
Einfacher ist die Situation bei WLAN-Profilen. Windows 10 sieht für ihr Management die App Einstellungen vor. Dort wechselt man zu Netzwerk und Internet => WLAN und folgt dem Link WLAN-Einstellungen verwalten.
Dort findet man im Abschnitt Bekannte Netzwerke verwalten die Profile aller Drahtlosnetzwerke, mit denen der PC bereits verbunden war. Hier kann man einzelne Profile entfernen, indem man auf die Schaltfläche Nicht speichern klickt.
WLAN-Profile auf der Kommandozeile bearbeiten
Ist die Liste der WLANs lang und man möchte zusätzliche Informationen wie etwa die Passwörter anzeigen, dann wechselt man besser zur Kommandozeile. PowerShell alleine reicht hier aber nicht aus, weil Get-NetConnectionProfile immer nur das aktive Profil anzeigt. Deshalb muss man in diesem Fall netsh.exe zu Hilfe nehmen:
$profiles = netsh wlan show profiles |
sls -Pattern " : .*" |% {($_ -replace "^.* : ","")}
Die Ausgabe von netsh leiten wir hier über eine Pipe an Select-String (Alias sls) weiter, wo ein regulärer Ausdruck die Namen der Profile ausfiltert. Anschließend geben wir in einer Schleife den Namen und den Key für jedes Profil aus:
foreach($p in $profiles){netsh wlan show profile name=$p key=clear |
sls "(SSID-Name|Schl.sselinhalt)"}
Den zweiten Befehl könnte man auch so modifizieren, dass man im Schleifenkörper etwa Set-NetConnectionProfile verwendet, um die Kategorie der Netzwerke zu ändern.
Profile löschen mit netsh.exe
Ebenfalls schneller geht das Löschen von Profilen mit netsh.exe, besonders wenn es sich um eine lange Liste handelt. Dafür eignet sich der Aufruf
netsh wlan delete profile name="<Profilname>"
Der Parameter name akzeptiert auch Wildcards, so dass man theoretisch auch alle Profile in einem Aufwasch entfernen könnte.
Täglich Know-how für IT-Pros mit unserem Newsletter
Verwandte Beiträge
- Windows Terminal 1.9: Standardkonsole für Windows 10, weitere Einstellungen über die GUI
- VPN-Client unter Windows 10 einrichten
- Konsole für alle Shells: Windows Terminal ist als Version 1.0 verfügbar
- Windows Terminal: teilbare Fenster, Integration mit WSL, Release im April 2020
- Windows Terminal: Microsofts Konsole für alle Kommandozeilen
Weitere Links
1 Kommentar
Ist in der Tat schade, dass keine vernünftige Verwaltung der Netzwerkprofile möglich ist. Besonders schade finde ich zudem, dass es die aus Windows 7 bekannte Drahtlosnetzwerkverwaltung nicht mehr gibt. Über die Einstellungen-App ist lediglich das Löschen von WLAN-Profilen möglich (immerhin - zu Anfangszeiten von Windows 8 ging selbst das nicht). Wenn man allerdings erweiterte Einstellungen (z.B. eine 802.1X-Konfiguration mit Zertifikaten etc.) vornehmen möchte, muss man die Adaptereinstellungen in der Systemsteuerung bemühen, was ja an sich nicht schlimm ist. Allerdings kann man die Einstellungen für ein WLAN-Profil nur dann ändern, während man mit dem WLAN verbunden ist. Um Einstellungen für ein entferntes WLAN zu ändern, muss man dieses löschen und über den Assistenten im Netzwerk- und Freigabecenter neu anlegen. Dies ist verglichen mit Windows 7 ein Rückschritt.