2026/09/28(月)WoL対応のSFP+ 10GbE NICを買ってWoLを実現した

以前買ったMellanox ConnectX-4でWoLができなかった話の続き。

SFP+搭載NICを使い、WindowsマシンをWoLを使ってスマホから起こすのをやる話。

やりたいこと

流れとしてはスマホからUbuntuサーバーにSSHで繋ぎ、UbuntuサーバーからWindowsデスクトップへマジックパケットを送付して起こす。Windowsが起きたらスマホからWindows側にSSH接続して扱う内容。

Cloudflare TunnelやTailscaleは使わずにSSH直結で扱い、スマホ→Ubuntu→Windowsのように踏み台を使うこともしない。

使ったもの

デバイス

Windows~L2スイッチ間で使っているもののみ。

種類 デバイス
マザボ ASRock Z890 Pro RS
NIC TXA403
DACケーブル 10Gtek CAB-10GSFP-P2M-30
スイッチ MikroTik CRS305-1G-4S+IN

ソフトウェア

Env ver
Windows Windows 11 Pro 25H2
Ubuntu Ubuntu 24.04.4 LTS
WoL wakeonlan version 0.41

ネットワーク構成

大まかにこんな感じ。図には書いてないがLAN内にはWiFi APもあり、そこからも叩ける。

やったこと

Windowsデスクトップ側

  1. BIOSでPCIe経由の起動を許可するように設定
  2. Realtek PCIe FE / GbE / 2.5GbE / 5G / 10G Family Controller Softwareから「DASH all-in-one Installer for Win10/Win11」をダウンロードし、インストール
    • ここはNICを挿す前にやっておくといいと思われる
  3. NICを挿す
  4. デバイスマネージャーでWoLが有効になっていることを確認(デフォルトで有効だった)

Ubuntuサーバー側

wakeonlanと言ういかにもそのままなパッケージを入れるだけ。入れたらMACアドレスを指定して叩くとマジックパケットを投げることができる。長いのでエイリアスを貼っておくと楽。

sudo apt install wakeonlan
wakeonlan <MACアドレス>

Android側

適当なSSHクライアントでUbuntuに繋ぎ、wakeonlan <MACアドレス>を流し、Windowsを起動させる。

開封の儀とか紆余曲折の話

SKN-8127AF-X1ではダメだった話

以前買ったMellanox ConnectX-4でWoLができなかった話ではSKN-8127AF-X1を使うことを検討していたが、DACとの相性が悪いのかこれは使えなかった。まずDACケーブルを挿してもLEDが付かず、OSから見ても当然線が刺さってない扱いだった。

SKN-8127AF-X1自体は日本語の取説まであり、いい感じのパッケージだっただけに残念だ。

しむふり生活というブログによるとオートネゴシエーションの設定が死んでいるので、手動でリンク速度を設定すれば行けるらしいが、この情報を知る前に処分したためもう分からない。

ブラケットもやたら傷まみれだったし、単純に不良品だった可能性もあるが今となっては解らない。

コネクタはPCIe4.0x1で、空きがあればどこにでも挿せるのは嬉しかった。

TXA403開封の儀とか

TXA403が届くと箱にRJ45が描かれており、封印もセロテープだったため、一抹の不安に襲われた。

しかし開けてみるとちゃんとSFP+だった。手抜きか?

SKN-8127AF-X1と比べると内容は随分簡素で、個別の袋やネジ、取説はなかったが、あっちが無駄に豪華すぎるだけで別にこれでいい気がした。

ヒートシンクをSKN-8127AF-X1と比較すると目が少なく、向きも違うので若干冷却性能は下がるかもしれないが、恐らく問題になることはないだろう。

コネクタはPCIe3.0x4で、PCIe4.0x1だったSKN-8127AF-X1と比べると大きかった。

ブラケットもピカピカで問題なかった。

取付時に思ったこととして、ゲーミングPCはよく光るため、この程度のパーツの取り付けなら懐中電灯が要らなくて便利だなと思った。

以前使っていたHuawei STL2IEA2Aと比べるとだいぶ小さい。基板が青色なのも少し珍しい気がした。

Huawei STL2IEA2Aとの比較

TXA403側は情報が少ないので一部の情報はググって出てきたのを適当につぎはぎしている。

機能 Huawei STL2IEA2A TXA403
チップセット Mellanox ConnectX-4 Lx Realtek RTL8127ATF
消費電力 12W 1W
コネクタ PCIe3.0x8 PCIe3.0x4
ポート数 2 1
WoL 非対応 対応
Linux対応 ◎ △
Windows対応 ◎ ◎

RTL8127ATFはLinux対応がイマイチらしく、UbuntuだとWoLを有効にすると問題が起きるっぽい?ので、Linuxでの使用は微妙かもしれない。

ベンチマーク

WindowsからUbuntuに飛ばす速度については、前回計測時より若干早くなっているように感じた。逆は特に変わらず。

Windows → Ubuntu

[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec  1.11 GBytes  9.52 Gbits/sec
[  5]   1.00-2.01   sec  1.11 GBytes  9.49 Gbits/sec
[  5]   2.01-3.00   sec  1.10 GBytes  9.49 Gbits/sec
[  5]   3.00-4.01   sec  1.12 GBytes  9.49 Gbits/sec
[  5]   4.01-5.00   sec  1.09 GBytes  9.49 Gbits/sec
[  5]   5.00-6.02   sec  1.12 GBytes  9.49 Gbits/sec
[  5]   6.02-7.00   sec  1.09 GBytes  9.49 Gbits/sec
[  5]   7.00-8.01   sec  1.11 GBytes  9.49 Gbits/sec
[  5]   8.01-9.02   sec  1.11 GBytes  9.49 Gbits/sec
[  5]   9.02-10.01  sec  1.10 GBytes  9.49 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-10.01  sec  11.1 GBytes  9.49 Gbits/sec                  sender
[  5]   0.00-10.01  sec  11.1 GBytes  9.49 Gbits/sec                  receiver

Ubuntu → Windows

[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.01   sec  1.09 GBytes  9.26 Gbits/sec
[  5]   1.01-2.00   sec  1.07 GBytes  9.27 Gbits/sec
[  5]   2.00-3.01   sec  1.09 GBytes  9.27 Gbits/sec
[  5]   3.01-4.00   sec  1.07 GBytes  9.28 Gbits/sec
[  5]   4.00-5.01   sec  1.09 GBytes  9.28 Gbits/sec
[  5]   5.01-6.01   sec  1.07 GBytes  9.28 Gbits/sec
[  5]   6.01-7.01   sec  1.09 GBytes  9.29 Gbits/sec
[  5]   7.01-8.00   sec  1.07 GBytes  9.29 Gbits/sec
[  5]   8.00-9.01   sec  1.09 GBytes  9.28 Gbits/sec
[  5]   9.01-10.00  sec  1.07 GBytes  9.28 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-10.00  sec  10.8 GBytes  9.28 Gbits/sec                  receiver

あとがき

R86S U1のNICを交換したのと今回の作業でSFP+対応のNICが2枚も余ってしまった。

まさかこんなニッチなNICを早くも二枚も余らせてしまうとは…。ひとまずは予備に持っているが、どうしたものか。

2026/07/10(金)Windows 11でウィンドウが切り替わりづらい問題を解消したような気がする

投稿日:

Alt+Tabやタスクバーからのマウス操作で上手く切り替わらないことがあったので、その対策。

この問題自体の再現性が低い問題があり、これで完全に解消するかどうかは不明だ。そのため、まだ検証中である。

確認環境

  • Windows 11 Pro 25H2 (OSビルド26200.8737)

前提条件

  • タスクバーを自動で隠す設定にしている
  • タスクバーのボタンをまとめる設定にしている
  • タスクバーのボタンにラベルを出していない
  • タスクバー関係のユーティリティソフトを使っておらず、Windows標準の状態

解決する問題

こういう面倒な状態を解消する。

  • Alt+Tabでウィンドウを切り替えたのに切り替わってない
  • タスクバーからウィンドウをクリックしたのに切り替わらない
  • 前面にあるウィンドウをすべて最小化することでどうにか切り替えている状況

解決した方法

タスクバーを自動で隠す設定をやめるだけで解決した。

推定原因

タスクバーを自動で隠す設定でも切り替わる切り替わらないウィンドウがあるが、恐らくタスクバーを自動で隠す設定で、タスクバーの裏に回っているウィンドウがいるとそこに切り替わりづらくなると思う。

ただ、隠す設定をON/OFFすると、その瞬間は改善し再発しなくなったため、確証はない。

2026/06/16(火)WSL2の中からPowershellでOSへ通知トーストを投げる

投稿日:

PowerShellはWSL2の中から叩けるため、WSL2の中から通知を出したいときに使える。

PowerShellなのでホスト側のWindowsからも使える。

確認環境

PowerShell 7では動かないので注意。

Env Ver
OS Windows 11 Pro 25H2 (OSビルド 26200.8655)
PowerShell 5.1.26100.8655

やり方

  1. この内容をtoast.ps1など適当な名前で保存する。文字コードはUTF-8 BOM, 改行コードはLFにしておく

    param (
        [String]$subject = "WSL Notice",
        [String]$title   = "たいとるですー",
        [String]$message = "お知らせでーす",
        [String]$icon    = "C:/env/1e1b9fdf82a6a544.png",
        [switch]$keep
    )
    
    [Windows.UI.Notifications.ToastNotificationManager, Windows.UI.Notifications, ContentType = WindowsRuntime] > $null
    $template = [Windows.UI.Notifications.ToastNotificationManager]::GetTemplateContent([Windows.UI.Notifications.ToastTemplateType]::ToastImageAndText04)
    $xml = New-Object Windows.Data.Xml.Dom.XmlDocument
    
    $xml.LoadXml($template.GetXml())
    $toastTextElements = $xml.GetElementsByTagName("text")
    $toastTextElements.Item(0).AppendChild($xml.CreateTextNode($title)) > $null
    $toastTextElements.Item(1).AppendChild($xml.CreateTextNode($message)) > $null
    $toastImageElements = $xml.GetElementsByTagName("image")
    $toastImageElements.Item(0).SetAttribute("src", $icon) > $null
    
    if ($keep) {
        $xml.DocumentElement.SetAttribute("scenario", "reminder") > $null
        $actions = $xml.CreateElement("actions")
        $action = $xml.CreateElement("action")
        $action.SetAttribute("content", "閉じる") > $null
        $action.SetAttribute("arguments", "dismiss") > $null
        $action.SetAttribute("activationType", "background") > $null
        $actions.AppendChild($action) > $null
        $xml.DocumentElement.AppendChild($actions) > $null
    }
    
    $toast = [Windows.UI.Notifications.ToastNotification]::new($xml)
    $appId = $subject
    $notifier = [Windows.UI.Notifications.ToastNotificationManager]::CreateToastNotifier($appId)
    
    $notifier.Show($toast)
    
  2. 次の書式で叩くと通知トーストが出る
    powershell.exe -File 'C:/path/to/toast.ps1' -subject hoge -title fuga -message piyo -icon C:/path/to/icon.png -keep
    

このスクリプトのオプション

オプション 役割
-subject 通知の表題。ここを変えると別の通知として扱われる
-title 通知のタイトル
-message メッセージ本文。一行のみ
-icon アイコン。Windowsホストの絶対パスで指定
-keep このフラグを立てると通知が消えなくなる

-subjectを変えると別の通知扱いになるため、通知を別々に貯めることができるようになる。

Windows側から叩く方法

powershell 'C:/path/to/toast.ps1' -subject hoge -title fuga -message piyo -icon C:/path/to/icon.png -keep

Windows側から叩く場合、-Fileは省略できる。

参考情報

あとがき

Claude Codeの確認と終了のイベントで通知が出ると便利かなと思って作ってみたが、まだ試せていない。

取りあえずWSL2の中と、Windowsホスト側から叩いたときに通知が出ることは確認している。

PowerShell 7で動かそうと思ったらエラーまみれで動かず、PowerShell 7の場合、NuGetパッケージを取得するか、DLLのパスを直に指定するか、サードパーティの通知ライブラリを使うかということで、諦めた。

2026/06/05(金)Windows 11のEdgeでTLS証明書のキャッシュをクリアする方法

TLS証明書を更新したらキャッシュの証明書とずれてエラーが出ることがあるので、キャッシュクリアでこの不整合を解除する方法。

確認環境

  • Microsoft Edge 148.0.3967.96
  • Windows 11 Pro 25H2 (OSビルド 26200.8457)

やり方

  1. あらかじめEdgeを落としておく
  2. コントロールパネルを開き、インターネットオプションを開く
    • inetcpl.cplをコマンド実行しても開く
    • コントロールパネルはスタートメニューを開き「kon」と入力すると出てくる
  3. コンテンツタブを開き「SSLキャッシュのクリア」ボタンを押す
  4. Edgeを起動するとエラーが消えているはず

あとがき

Edgeを再起動しなくても反映される可能性はあるがそこまで見ていない。

2026/06/04(木)Windows 11でコマンドを使って標準のブラウザを変更する

投稿日:

どこぞのやつはライセンスが面倒なのと、無料利用だと課金誘導のポップアップが出て面倒そうなので完全無償のPS-SFTAを使って解決する。

確認環境

  • Windows 11 Pro 25H2 (OSビルド 26200.8457)
  • SFTA.ps1 22a3229

やり方

  1. PS-SFTAにあるSFTA.ps1を拾ってきてどっかに置く
  2. 標準ブラウザ変更保護プログラムであるUCPDとかいうのを殺す
    New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\UCPD" -Name "Start" -Value 4 -PropertyType DWORD -Force
    schtasks /change /disable /tn "\Microsoft\Windows\AppxDeploymentClient\UCPD velocity"
    
  3. 管理者権限のPowerShellでこれを流す
    powershell -ExecutionPolicy Bypass -command "& { . C:/path/to/SFTA.ps1; Set-PTA MSEdgeHTM http; Set-PTA MSEdgeHTM https; Set-FTA MSEdgeHTM .htm; Set-FTA MSEdgeHTM .html }"
    

あとがき

Windows 11には標準のブラウザを変更するコマンドは用意されておらず、レジストリの操作も単純ではないようなので、やるとしたらWindowsの設定を開き、アプリ→既定のアプリ→Edge→標準ブラウザにするという手間のかかる作業が必要だが、今回の方式ならコマンドを一発叩くだけなので非常に楽である。

しかもWindowsの設定にあるアプリ→既定のアプリはレイアウトシフトが酷く、少し待たないと操作できないのも面倒なので、そういったフラストレーションから解放されるのも大きい。