lennox2844
Goto Top

Powershell netsh wlan Werte in Variable speichern und weiter verwenden

Hallo Zusammen,

ich habe ein Problem in der Powershell.

Ich möchte in der Powershell meinen aktuellen WLAN-Namen anzeigen lassen, aber nur meinen WLAN-Namen. Diesen möchte ich in eine Variable speichern und dann weiter verwenden.

Ich habe bis jetzt nur herausgefunden, dass ich mit
netsh wlan show interfaces
mein aktuell verbundenes WLAN anzeigen lassen kann. Folgendes kommt dabei raus:
Name                   : WLAN
    Beschreibung           : Intel(R) Wi-Fi 6 AX201 160MHz
    GUID                   : XXXXXXXX
    Physische Adresse      : XXXXXXXX
    Status                 : Verbunden
    SSID                   : Test-WLAN
    BSSID                  : XXXXXXXX
    Netzwerktyp            : Infrastruktur
    Funktyp                   : 802.11n
    Authentifizierung   : WPA2-Enterprise
    Verschlsselung        : CCMP
    Verbindungsmodus          : Automat. Verbindung
    Kanal               : 6
    Empfangsrate (MBit/s)  : 130
    šbertragungsrate (MBit/s) : 144.4
    Signal              : 91% 
    Profil                 :TEST-WLAN

    Hosted network status  : Nicht verfgbar

Ich möchte praktisch jetzt die SSID in eine Variable speichern und weiter verwenden. Mit select-object komme ich hier nicht weiter.

Kann mir jemand helfen?

Danke und viele Grüße

Content-ID: 3080978299

Url: https://administrator.de/forum/powershell-netsh-wlan-werte-in-variable-speichern-und-weiter-verwenden-3080978299.html

Ausgedruckt am: 31.01.2025 um 00:01 Uhr

148523
148523 15.06.2022 um 12:57:43 Uhr
Goto Top
colinardo
Lösung colinardo 15.06.2022 aktualisiert um 13:03:56 Uhr
Goto Top
$ssid = netsh wlan show interfaces | ?{$_ -match '\s+SSID\s*:\s*([^\r\n]+)'} | %{$matches[1]}  
oder
$ssid = [regex]::match((netsh wlan show interfaces | out-string),'(?i)\s+SSID\s*:\s*([^\r\n]+)').Groups[1].Value  
oder
$ssid = netsh wlan show interfaces | sls -Pattern '\s+SSID\s+:\s*(.+)' | %{$_.matches.Groups[1].Value}  
usw. ...

Grüße Uwe
3063370895
3063370895 15.06.2022 um 13:11:49 Uhr
Goto Top
$ssid = (Get-NetConnectionProfile).Name
colinardo
colinardo 15.06.2022 aktualisiert um 13:22:50 Uhr
Goto Top
Zitat von @chaot1coz:

$ssid = (Get-NetConnectionProfile).Name

Achtung, das NetConnectionProfile kann durch GPO umbenannt sein, des weiteren liefert es auch Namen von evt. LAN-Verbindungen wenn man diese nicht filtert.
LennoX2844
LennoX2844 15.06.2022 um 13:16:14 Uhr
Goto Top
Hi Uwe,

vielen Dank für deine Antwort. Hat soweit auch mit
$ssid = netsh wlan show interfaces | ?{$_ -match '\s+SSID\s*:\s*(.*)'} | %{$matches[1]}  
funktioniert. In meinem WLAN-Namen ist noch ein - enthalten, der leider nicht mit angezeigt wird. Kann man das noch ändern?

dank
VG face-smile
colinardo
colinardo 15.06.2022 aktualisiert um 13:36:40 Uhr
Goto Top
s.o. Hier im Test aber kein Problem mit dashes.
Wenn man's aber genau nimmt und auch Umlaute in einer SSID supporten möchte (sollte man ja per best practice eigentlich nie machen) muss man das Encoding der netsh Ausgabe beachten
function ConvertFrom-CP850([string[]]$string){
    $cp850 = [System.Text.Encoding]::GetEncoding(850)
    $string | %{$cp850.GetString([System.Console]::OutputEncoding.GetBytes($_))}
}
$ssid = ConvertFrom-CP850 (netsh wlan show interfaces) | ?{$_ -match '\s+SSID\s*:\s*([^\r\n]+)'} | %{$matches[1]}  
LennoX2844
LennoX2844 15.06.2022 um 13:40:47 Uhr
Goto Top
Hat leider nicht funktioniert ist noch ohne - :/
colinardo
colinardo 15.06.2022 aktualisiert um 13:47:08 Uhr
Goto Top
Zitat von @m.c.trust:

Hat leider nicht funktioniert ist noch ohne - :/
Kann ich nicht bestätigen, funktioniert hier im Test problemlos. [^\r\n]+ matcht alles was kein CR oder LF ist, wäre hier zwar auch nicht extra nötig da Zeilen-Array und ein .* würde es auch tun.
3063370895
3063370895 15.06.2022 um 13:47:24 Uhr
Goto Top
screenshot 2022-06-15 134702
Klappt auch hier wunderbar
LennoX2844
LennoX2844 15.06.2022 um 14:01:52 Uhr
Goto Top
Ich nehme alles zurück, hat funktioniert.
Mein Test-WLAN hatte lediglich im Profil einen "-" und nicht im Namen. Habs jetzt umbenannt, jetzt gehts. Danke euch!