m.c.trust
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-Key: 3080978299

Url: https://administrator.de/contentid/3080978299

Printed on: April 25, 2024 at 14:04 o'clock

Mitglied: 148523
148523 Jun 15, 2022 at 10:57:43 (UTC)
Goto Top
Member: colinardo
Solution colinardo Jun 15, 2022 updated at 11:03:56 (UTC)
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
Mitglied: 3063370895
3063370895 Jun 15, 2022 at 11:11:49 (UTC)
Goto Top
$ssid = (Get-NetConnectionProfile).Name
Member: colinardo
colinardo Jun 15, 2022 updated at 11:22:50 (UTC)
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.
Member: M.C.Trust
M.C.Trust Jun 15, 2022 at 11:16:14 (UTC)
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
Member: colinardo
colinardo Jun 15, 2022 updated at 11:36:40 (UTC)
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]}  
Member: M.C.Trust
M.C.Trust Jun 15, 2022 at 11:40:47 (UTC)
Goto Top
Hat leider nicht funktioniert ist noch ohne - :/
Member: colinardo
colinardo Jun 15, 2022 updated at 11:47:08 (UTC)
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.
Mitglied: 3063370895
3063370895 Jun 15, 2022 at 11:47:24 (UTC)
Goto Top
screenshot 2022-06-15 134702
Klappt auch hier wunderbar
Member: M.C.Trust
M.C.Trust Jun 15, 2022 at 12:01:52 (UTC)
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!