以下の内容はhttps://tech.guitarrapc.com/entry/2013/06/16/210637より取得しました。


PowerShellでWi-Fi Adaptorに紐づけられたSSIDを確認する

802.11 acの登場で、一般家庭や中小企業でよく使われているであろう有線LAN1G BASE/Tに無線がスループットで迫ってきています。 このままacが成熟すればスループットで抜かれる、無線も進化しました。

さて、そうなるとご自分のPCに登録されたSSIDは何なのか、把握したい時にする手段が欲しいですね? GUIでツールはあるのですが、PowerShellでも同じ要領なので参考にどうぞ。

概要

GitHubにソースをおいておきます。

guitarrapc/PowerShellUtil - Get-WifiSSID/Get-WifiSSID.ps1| GitHub

WindowsのWi-Fi情報は、SSID毎にXMLで補完されています。そこで、ネットワークアダプターから与えられた名前でアダプタを検索、GUIDを調べます。 あとは、XMLは調べたGUIDいあるパス直下のフォルダ内部に存在するので取得してxmlをパースするだけです。

GUIDの取得

ここで、functionに渡された$WifiAdaptorNameをヒントにアダプタを探します。 何も指示しなければwi-fi* と多くに機器で当てはまるであろう名前にしています。 が、もし指定があれば、どうぞ。

$WifiGUIDs = (Get-NetAdapter -Name $WifiAdaptorName).InterfaceGuid

WifiのGUIDからパスを取得

C:\ProgramData\Microsoft\Wlansvc\Profiles\Interfaces\ から、wifiに関するパスを取得します。

$InsterfacePath = "C:\ProgramData\Microsoft\Wlansvc\Profiles\Interfaces\"
      foreach ($WifiGUID in $WifiGUIDs)
      {
        $WifiPath = Join-Path $InsterfacePath $WifiGUID
.....

SSIDファイルを取得

WifiGUID直下のファイルをRecurseで取得します。

$WifiXmls = Get-ChildItem -Path $WifiPath -Recurse

カスタムオブジェクトにプロパティを入れる

出力用にカスタムオブジェクトを入れます。

foreach ($wifixml in $WifiXmls)
{
  [xml]$x = Get-Content -Path $wifixml.FullName

  [PSCustomObject]@{
  FileName = $WifiXml.FullName
  WifiName = $x.WLANProfile.Name
  ConnectionMode = $x.WLANProfile.ConnectionMode
  SSIDName = $x.WLANProfile.SSIDConfig.SSID.Name
  SSIDHex = $x.WLANProfile.SSIDConfig.SSID.Hex
  }
}

出力サンプル

filenameがいらないなら取得結果をFormt-Tableしてもいいです。

FileName       : C:\ProgramData\Microsoft\Wlansvc\Profiles\Interfaces\{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx}\{xxxxxxxxxxxxxx-xxxx-xxxx-xxxxxxxxx}.xml
WifiName       : SSIDName
ConnectionMode : auto
SSIDName       : SSIDName
SSIDHex        : xxxxxxxxxxxxxxxxxxxxxxxxxx



以上の内容はhttps://tech.guitarrapc.com/entry/2013/06/16/210637より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14