如何在 powershell 中从 object 中获取没有标题的项目?

How can I get an item from an object without title in powershell?

我正在尝试学习一些 powershell。我只想从连接的网络中获取 SSID。
我的代码是:netsh wlan sh int | select-string SSID | select -First 1.
输出是 SSID : ABCDEFG。我的输出必须只是 ABCDEFGSSID 没有标题所以我不知道如何 select 他的价值 ABCDEFG.

我的第一个问题:如何从 object SSID 中 select 值 ABCDEFG 并仅将值放入我的输出中?
我的第二个问题:我的代码的输出是否总是连接网络?

netsh 是一个传统的命令行工具。与输出结构化对象的 PowerShell cmdlet 相比,它输出文本行。

Select-String 为您提供这些线路之一(上面有“SSID”的线路)。

你可以把它在冒号处分开,然后取后面的部分。

$ssid_line = netsh wlan sh int | select-string SSID | select -First 1
$ssid = $ssid_line -split ':' | select -Last 1

Write-Host $ssid

使用 $ssid.Trim() 删除多余的空格。

您可以使用:

(Get-NetConnectionProfile).Name

这将 return 只是配置文件的名称:

SSIDNAME

如果有多个网络连接,那么您需要指定您想要的网络连接。

您可以通过以下方式获取 Wi-Fi 接口名称:

(Get-NetConnectionProfile | Where-Object InterfaceAlias -eq "Wi-Fi").Name

这也将 return 配置文件的名称(如果找到)为:

SSIDNAME

这些是您可以严格使用 powershell 的 netadapternetconnection.

实现的几种方法

https://docs.microsoft.com/en-us/powershell/module/netadapter/?view=windowsserver2022-ps

https://docs.microsoft.com/en-us/powershell/module/netconnection/?view=windowsserver2022-ps#netconnection