Windows 11用のWake-on-LANアプリ「Wake My PC」を作ってみた
※この記事は一部AIを使用しています
※Amazon・楽天アフィリエイトに参加中です
※PR・アフィリエイトリンクを含む場合があります
こんにちは、Emuです。
いつもご覧くださり、ありがとうございます!
今日もガジェットをゆるっとお届け。
自宅や職場にあるPCを、別のWindows PCから遠隔で起動したいことがあります。先日、完全リモートデスクトップ化したPCとか。
今回は、Wake-on-LAN (WOL)を使って、PCを起動できるWindowsアプリ「Wake My PC」をAIと相談しながら作成しました。

📍Wake My PCの主な機能
複数PCの登録
設定項目:
PC名
MACアドレス
ブロードキャストIP
UDPポート
Magic Packetの送信
Pingによるオンライン状態確認
PC情報の編集・削除
設定の自動保存
リモートデスクトップ接続の起動
Windows 11風のダークUI
Windowsショートカット用アイコン
機能を持つWindows向けGUIアプリです。開発環境から手順などをまとめたので、興味がある方はお試しください。
開発環境

アプリを次の環境で作成しました。
Windows 11
Visual Studio
C#
WPF
.NET
Visual Studioの「.NET デスクトップ開発」ワークロード
WPFはWindows向けのデスクトップアプリをC#で作成するための仕組みです。今回のアプリはWindows専用です。Windowsとの相性がよく、単体のアプリケーションとして扱いやすいWPFを採用しました。
アプリの基本構成

アプリを起動すると、登録済みPCの一覧が表示されます。
各PCには、次のボタンがあります。
起動
状態確認
RDP
編集
削除
「PCを追加」から起動対象のPC情報を登録します。
登録する項目は次のとおりです。

PC名
一覧に表示する名前です。
例:
リビングPC
作業用PC
OptiPlex 3050MACアドレス
対象PCのネットワークアダプターに割り当てられている物理アドレスです。
例:
AA-BB-CC-DD-EE-FF対象PCでコマンドプロンプトを開き、次のコマンドを実行すると確認できます。
ipconfig /all表示されたネットワークアダプターの「物理アドレス」がMACアドレスです。
ブロードキャストIP
Magic Packetを送信するネットワークのブロードキャストアドレスです。対象PCのIPアドレスに合わせて設定します。
例えば、対象PCのIPアドレスが次の場合、
192.168.0.20一般的なサブネット設定では、ブロードキャストIPは次になります。
192.168.0.255同様に、対象PCが192.168.1.xのネットワークにある場合は、通常、次を指定します。
192.168.1.255UDPポート
Wake-on-LANでは、一般的にUDPポート7または9が使われます。今回は初期値として次を使用しました。
9確認先IPまたはホスト名
対象PCが起動したかどうかを、Pingで確認するために使います。
例:
192.168.0.20この値は、リモートデスクトップ接続の起動先としても使用されます。
Magic Packetの送信
Wake-on-LANでは、「Magic Packet」と呼ばれる特殊なデータをネットワークへ送信します。
Magic Packetは、次のような構造になっています。
FFを6バイト
対象PCのMACアドレスを16回繰り返す
Wake My PCでは、このMagic Packetを指定されたブロードキャストIPと、UDPポートへ送信します。
一覧にある「起動」ボタンを押すだけで送信できるため、毎回コマンドを入力する必要はありません。
起動後のオンライン確認
Magic Packetを送信しても、PCが実際に起動するまでには少し時間がかかります。
そこで、Wake My PCではMagic Packet送信後、登録された確認先IPへ一定間隔でPingを送ります。応答があれば、状態を「オンライン」に変更します。手動で確認したい場合は、一覧の「確認」ボタンも使用できます。
ただし、対象PCのWindowsファイアウォールで、Pingへの応答が無効になっていると、PCが起動していてもオフライン表示される場合があります。
リモートデスクトップ接続
対象PCが起動したあと、そのまま操作できるように「RDP」ボタンも追加しました。
このボタンを押すと、Windows標準のリモートデスクトップ接続が起動します。接続先には、登録した確認先IPまたはホスト名が使用されます。
対象PC側では、あらかじめリモートデスクトップを有効にしておく必要があり。なお、Windows Homeは通常、リモートデスクトップの接続先として使用できません。接続を受け付ける側には、Windows Proなどが必要です。
設定の自動保存
登録したPC情報は、JSON形式で自動保存されます。
保存場所は次のとおりです。
%LOCALAPPDATA%\WakeMyPC\profiles.jsonアプリを終了しても、次回起動時に登録内容が自動的に読み込まれます。保存される主な情報は次のとおりです。
PC名
MACアドレス
ブロードキャストIP
UDPポート
確認先IPまたはホスト名
Visual StudioでReleaseビルド
普段使いできるアプリケーションを作成するため、Visual StudioでReleaseビルドを行います。
Visual Studio上部のビルド構成を、次のように変更します。
Debug → Releaseその後、メニューから次を選択します。
ビルド → ソリューションのビルドショートカットキーを使う場合は、
次でも実行できます。
Ctrl + Shift + Bビルドが成功すると、実行用ファイルが次のようなフォルダーに生成されます。
WakeMyPC\bin\Release\net10.0-windows\この中にあるWakeMyPC.exeが、Windowsから起動するアプリケーションです。
Windowsアプリとして使う
生成されたフォルダーには、EXE以外にも実行に必要なファイルが含まれています。
そのため、WakeMyPC.exeだけを移動するのではなく、フォルダー内のファイルをまとめて保管します。
デスクトップから起動したい場合は、WakeMyPC.exeのショートカットを作成します。
手順は次のとおりです。
WakeMyPC.exeを右クリック
「その他のオプションを確認」を選択
「送る」を選択
「デスクトップ(ショートカットを作成)」を選択
作成したショートカットには、Wake My PC用に作成したICO形式のアイコンを設定しました。ショートカットのプロパティから「アイコンの変更」を選び、作成した.icoファイルを指定します。
別のPCで使う
別のWindows PCで使用する場合は、アプリのフォルダー一式をUSBメモリなどでコピーします。コピー先でWakeMyPC.exeを起動すれば使用できます。
実行先のPCに対応する.NET Desktop Runtimeが、入っていない場合はMicrosoft公式からインストールします。
登録情報も移行したい場合は、次のファイルをコピーします。
%LOCALAPPDATA%\WakeMyPC\profiles.jsonコピー先のPCでも、同じ場所へ配置します。
ただし、使用するネットワークが変わる場合は、ブロードキャストIPを新しいネットワークに合わせて変更する必要があります。
対象PC側で必要なWake-on-LAN設定
アプリを作成しただけでは、Wake-on-LANは利用できません。起動される側のPCでも設定が必要です。
BIOSまたはUEFI
BIOSまたはUEFIの電源管理設定で、次のような項目を有効にします。
Wake on LAN
Power On By PCI-E
Resume By LAN名称はメーカーや機種によって異なります。
また、ErPなどの省電力設定が有効になっていると、シャットダウン時にLANアダプターへの給電が止まり、Wake-on-LANが利用できない場合があります。
Windowsのネットワークアダプター
デバイスマネージャーから、有線LANアダプターのプロパティを開きます。「詳細設定」で、次の項目を有効にします。
Wake on Magic Packet「電源の管理」では、次の項目を有効にします。
このデバイスで、コンピューターのスタンバイ状態を解除できるようにする必要に応じて、次の項目も有効にします。
Magic Packetでのみ、コンピューターのスタンバイ状態を解除できるようにするシャットダウン状態から起動できない場合は、Windowsの「高速スタートアップ」を無効にすると、改善することがあります。
有線LANと無線LAN
Wake-on-LANは、有線LANでの利用が最も確実です。無線LANで起動するWake on Wireless LANは、次のすべてが対応している必要があります。
PC本体
無線LANアダプター
BIOSまたはUEFI
アクセスポイント
そのため、最初は有線LANを使って、動作確認するのがオススメです。
ルーター越しのWake-on-LAN
通常のルーターは、ブロードキャストパケットを別のネットワークへ転送しません。
そのため、インターネット越しに、Wake-on-LANを利用する場合は追加設定が必要です。
方法としては、次のようなものがあります。
VPNで自宅や社内のLANへ接続する
ルーターのWake-on-LAN機能を利用する
Directed Broadcastを設定する
静的ARPとUDPポート転送を組み合わせる
セキュリティと安定性を考えると、VPN経由で家庭内LANへ接続してから、Magic Packetを送る方法が比較的安全です。
UDPポートをインターネットへ直接公開する方法はセキュリティ上おすすめできません。
完成したアプリ

最終的に、Wake My PCは次の流れで、利用できるようになりました。
アプリを起動
対象PCを登録
「起動」ボタンでMagic Packet送信
Pingでオンライン状態を確認
「RDP」ボタンでリモートデスクトップ接続
PCを起動してからリモート操作へ移るまでを、1つのアプリから行えます。
登録情報は自動保存されるため、普段はWake My PCを起動して、「起動」ボタンを押すだけです。

アイコンはこんな感じに作成してもらいました。
まとめ

今回は、Windows 11向けのWake-on-LANアプリ、「Wake My PC」を作成しました。
Wake-on-LAN自体はコマンドや既存ツールでも利用できますが、自分の環境に合わせたGUIアプリにすることで、操作が非常に簡単になりました。
特に便利だった機能は次のとおりです。
複数PCを一覧管理できる
ボタン1つでMagic Packetを送信できる
PCが起動したか確認できる
そのままリモートデスクトップを起動できる
登録内容が自動保存される
小規模なWindowsアプリであれば、AIと相談しながら動作する形まで作成できることも分かりました。
Wake-on-LANを日常的に使っている人や、別室のPC・小型PC・サーバーを遠隔運用したい人には、使いやすいツールになったと思います。
最後までお読みいただき感謝です。
スキとフォローしていただけると嬉しいです。
皆様も良いガジェットライフを!
ではでは。
🔗オススメ・関連記事👇
いいなと思ったら応援しよう!
応援ありがとうございます!
いただいたチップはブログ運営に充てさせていただきます😉
今後ともよろしくお願いします!