I am trying to learn some powershell. I want to get only the SSID from a connected network.
My code is : netsh wlan sh int | select-string SSID | select -First 1
.
The output is SSID : ABCDEFG
. My output must be just ABCDEFG
. SSID
doesn't have a title so I don't know how I can select his value ABCDEFG
.
My first question: How can I select the value ABCDEFG
from my object SSID
and put only the value in my output?
My second question: Is the output from my code always a connect network or not?
CodePudding user response:
netsh is a traditional command line tool. In contrast to PowerShell cmdlets, which output structured objects, it outputs lines of text.
Select-String
gets you one of those lines (the one that has "SSID" on it).
You could split it at the colon and take the latter part.
$ssid_line = netsh wlan sh int | select-string SSID | select -First 1
$ssid = $ssid_line -split ':' | select -Last 1
Write-Host $ssid
Use $ssid.Trim()
to remove any excess whitespace.
CodePudding user response:
You can use:
(Get-NetConnectionProfile).Name
which will return just the name of the profile as:
SSIDNAME
If there's more than one network connection then you'd need to specify which one you want.
You can grabbing the Wi-Fi interface names with:
(Get-NetConnectionProfile | Where-Object InterfaceAlias -eq "Wi-Fi").Name
which will also return the name of the profile (if found) as:
SSIDNAME
These are a few ways you can do it using strictly powershell's netadapter
and netconnection
.
https://docs.microsoft.com/en-us/powershell/module/netadapter/?view=windowsserver2022-ps