Network Profile Switcherは、Windows環境でネットワーク設定を簡単に切り替えることができるデスクトップアプリケーションです。複数のネットワーク設定(IPアドレス、サブネットマスク、ゲートウェイ、DNSサーバー)をプリセットとして保存し、ワンクリックで切り替えることができます。
- 静的IP設定: 固定IPアドレス、サブネットマスク、ゲートウェイ、DNSサーバーの設定
- DHCP設定: 自動IP取得設定への切り替え(netsh + WMIフォールバック)
- プリセット保存: 複数のネットワーク設定を名前付きで保存
- プリセット編集: 保存された設定の編集・削除・複製
- プリセット管理: 重複名チェック、自動ソート、自動複製名生成
- ネットワークアダプタ一覧: システム上の全ネットワークアダプタを表示
- プリセット一覧: 保存された設定の一覧表示(名前順自動ソート)
- 現在の設定表示: 選択されたアダプタの現在のIP設定を表示
- 視覚的フィードバック: アダプタの状態(有効/無効)を色分け表示
- アダプタ詳細情報: アダプタの種類、速度、MACアドレスを表示
- グループ化レイアウト: GroupBoxによる論理的なUIグループ化
- ステータスバー: アダプタ・プリセット数とキーボードショートカット表示
- Ctrl+N: 新しいプリセット追加
- Ctrl+E: プリセット編集
- Delete: プリセット削除
- F5: アダプタリスト更新
- Enter: 設定適用
- 管理者権限: ネットワーク設定変更のため管理者権限で実行
- 自動権限昇格: 管理者権限なしで起動時に自動的に権限昇格を提案
- エラーハンドリング: 包括的な例外処理とユーザーフレンドリーなエラーメッセージ
- 入力検証: IPアドレス形式チェック、文字数制限(プリセット名50文字、コメント200文字)
- LANケーブル未接続対応: アダプタがDown状態の場合の適切な処理と詳細な情報提供
- 文字化け対策: netshコマンド出力の文字エンコーディング問題を解決
- アダプタ詳細情報: エラー時にアダプタの詳細情報(速度、MACアドレス等)を表示
- 自動アダプタ有効化: Down状態のアダプタの自動有効化試行機能
- バージョン情報表示: アプリケーションとライブラリのバージョン情報
- ライセンス情報表示: 使用ライブラリのライセンス詳細表示
- OS: Windows 10/11
- .NET: .NET 6.0 Runtime
- 権限: 管理者権限(ネットワーク設定変更のため)
- メモリ: 4GB以上
- ディスク容量: 100MB以上の空き容量
- Releasesページから最新版をダウンロード
NetworkProfileSwitcher-Release.zipを任意のフォルダに展開
- 展開したフォルダ内の
NetworkProfileSwitcher.exeを右クリック - 「管理者として実行」を選択
- 管理者権限の確認ダイアログで「はい」を選択
# 必要なツール
- Visual Studio 2022 または Visual Studio Code
- .NET 6.0 SDK
- Windows 10/11git clone https://github.com/your-username/Network_Profile_Switcher.git
cd Network_Profile_Switcher# デバッグビルド
dotnet build NetworkProfileSwitcher/NetworkProfileSwitcher.csproj
# リリースビルド(推奨)
dotnet build NetworkProfileSwitcher/NetworkProfileSwitcher.csproj --configuration Release
# 単一ファイルビルド(推奨)
dotnet publish -c Release -r win-x64 --self-contained false -p:PublishSingleFile=true# ビルドされたファイルを実行
NetworkProfileSwitcher/bin/Release/net6.0-windows/NetworkProfileSwitcher.exe
# 管理者権限で実行(推奨)
# アプリケーションを右クリックして「管理者として実行」を選択- アプリケーションを起動
- 「追加」ボタンをクリック(または Ctrl+N)
- 以下の情報を入力:
- 名前: プリセットの識別名(例:「自宅」「会社」「DHCP」)- 最大50文字
- IPアドレス: 固定IPアドレス(例:192.168.1.100)または「DHCP」
- サブネットマスク: ネットワークマスク(例:255.255.255.0)
- ゲートウェイ: デフォルトゲートウェイ(例:192.168.1.1)
- DNS1: プライマリDNSサーバー(例:8.8.8.8)
- DNS2: セカンダリDNSサーバー(例:8.8.4.4)
- コメント: プリセットの説明(任意)- 最大200文字
- 左側のリストからネットワークアダプタを選択
- 右側のリストから適用したいプリセットを選択
- 「適用」ボタンをクリック(または Enter)
- 管理者権限の確認ダイアログで「はい」を選択
- 編集: プリセットを選択して「編集」ボタンをクリック(または Ctrl+E)
- 削除: プリセットを選択して「削除」ボタンをクリック(または Delete)
- 複製: プリセットを選択して「複製」ボタンをクリック(自動的に「(コピー)」が付加)
- IPアドレス欄に「DHCP」と入力することで自動IP取得設定に切り替え
- アプリケーションはnetshコマンドを試行し、失敗した場合はWMIを使用
- より詳細なエラー情報が表示されるようになりました
- エラー発生時にアダプタの詳細情報(速度、MACアドレス等)を表示
- 物理的な接続状態の確認機能
- トラブルシューティングの効率化
- 重複名チェック: 同じ名前のプリセット作成を防止
- 自動ソート: プリセット一覧が名前順で自動ソート
- 自動複製名生成: 複製時に自動的に「(コピー)」「(コピー 2)」等を付加
- 入力検証: IPアドレス形式、文字数制限の自動チェック
- 症状: 「管理者権限が必要です」というエラーが表示される
- 解決方法:
- アプリケーションを右クリックして「管理者として実行」を選択
- または、管理者権限でコマンドプロンプトを開いて実行
- 症状: アダプタがDown状態でエラーが発生する
- 解決方法:
- LANケーブルが正しく接続されているか確認
- ネットワークアダプタのドライバーを更新
- デバイスマネージャーでアダプタの状態を確認
- 物理的な接続に問題がないか確認
- 症状: エラーメッセージが文字化けして表示される
- 解決方法:
- アプリケーションは自動的に文字化け対策を実行
- 複数のエンコーディング方式を自動的に試行
- 文字化けが発生しても機能に影響しないよう改善済み
- 症状: DHCP設定の適用に失敗する
- 解決方法:
- アプリケーションはnetshコマンドを試行し、失敗した場合はWMIを使用
- より詳細なエラー情報が表示されるようになりました
- アダプタの状態、種類、エラー詳細が含まれます
- 症状: 「.NET 6.0 Runtimeが必要です」というエラーが表示される
- 解決方法:
- .NET 6.0 Runtimeが正しくインストールされているか確認
- システムを再起動
- アプリケーションを再インストール
- 症状: 特定のアダプタでDHCP設定が失敗する
- 解決方法:
- ドライバーの更新: 最新のドライバーに更新
- 手動設定: コントロールパネルから手動でDHCP設定を確認
- アダプタの再接続: 物理的にアダプタを再接続
- 管理者権限の確認: 管理者権限で実行されているか確認
- 症状: ウイルス対策ソフトがアプリケーションをウイルスとして検出する
- 原因:
- 管理者権限を要求するアプリケーション
- ネットワーク設定を変更する機能
- 未署名の実行ファイル
- 解決方法:
- ウイルス対策ソフトの除外設定: アプリケーションのフォルダを除外リストに追加
- Windows Defenderの除外設定: Windows Defenderの設定で除外フォルダを追加
- 信頼できるアプリケーションとして追加: ウイルス対策ソフトの設定で信頼リストに追加
- ソースコードからのビルド: ソースコードをダウンロードして自分でビルド
- 管理者権限での実行: 管理者権限で実行することで信頼性を向上
- 方法1: 自己完結型ビルド
# 自己完結型ビルド(推奨) dotnet publish --configuration Release --self-contained false --runtime win-x64 --output bin/Release/SingleFile
- 方法2: ソースコードからのビルド
# ソースコードをダウンロード git clone https://github.com/your-username/Network_Profile_Switcher.git cd Network_Profile_Switcher/NetworkProfileSwitcher # ビルド dotnet build --configuration Release
- 方法3: ウイルス対策ソフトの設定変更
- Windows Defender: 除外フォルダに追加
- その他のウイルス対策ソフト: 信頼リストに追加
- 方法4: 管理者権限での実行
- アプリケーションを右クリック→「管理者として実行」
- 管理者権限で実行することで信頼性を向上
予防策:
- アプリケーションはnetshコマンドを試行し、失敗した場合はWMIを使用
- より詳細なエラー情報が表示されるようになりました
- アダプタの状態、種類、エラー詳細が含まれます
- 言語: C# (.NET 6.0)
- UI: Windows Forms
- 設定保存: JSON (System.Text.Json 8.0.5)
- ネットワーク操作: netshコマンド + WMI (System.Management 8.0.0)
- 文字エンコーディング: System.Text.Encoding.CodePages 8.0.0
- ビルド: MSBuild
- MVVMパターン: モデルとビューの分離
- 静的クラス: NetworkManagerでネットワーク操作を集約
- イベント駆動: UI操作による非同期処理
- Null安全性: C# 8.0のNullable Reference Typesを活用
- エラーハンドリング: DHCP設定の改善とWMIフォールバック機能
- 文字化け対策: 複数エンコーディング方式の自動試行
- キーボードショートカット: グローバルキーボードイベント処理
- 管理者権限: ネットワーク設定変更のため必要
- UAC対応: ユーザーアカウント制御との連携
- エラーハンドリング: 包括的な例外処理
- 入力検証: IPアドレス形式、文字数制限の自動チェック
- 総行数: 約1,500行
- メインフォーム: 873行
- ネットワーク管理: 244行
- プログラムエントリ: 172行
- プリセットモデル: 25行
- メイン実行ファイル:
NetworkProfileSwitcher.exe(2.0MB - 単一ファイル) - 設定ファイル:
NetworkProfileSwitcher.json(プリセット保存用) - 最小実行環境: .NET 6.0 Runtimeが必要
このプロジェクトはMITライセンスの下で公開されています。
- バグ報告
- 機能要望
- 改善提案
- 使用体験の共有
すべてのフィードバックを歓迎いたします!
- ファイル名変更: プリセットファイル名を
presets.jsonからNetworkProfileSwitcher.jsonに変更 - UI改善: ボタンサイズ調整、レイアウト最適化、プリセットリストの最大化
- キーボードショートカット: Ctrl+N(追加)、Ctrl+E(編集)、Delete(削除)、F5(更新)、Enter(適用)
- プリセット管理強化: 重複名チェック、自動ソート、自動複製名生成
- 入力検証: プリセット名50文字、コメント200文字の制限
- ステータスバー: アダプタ・プリセット数とショートカット表示
- 警告修正: すべてのコンパイル警告を修正し、クリーンなビルドを実現
- null安全性向上: より安全なnullチェックとパターンマッチングを実装
- 単一ファイル対応: AppContext.BaseDirectoryを使用して単一ファイルアプリに対応
- コード品質向上: 不要なusing文の削除とコードの最適化
- レイアウト改善: UIレイアウトの改善とGroupBoxによる論理的なグループ化
- LANケーブル未接続対応: アダプタがDown状態の場合の適切な処理と詳細な情報提供
- 文字化け対策: netshコマンド出力の文字エンコーディング問題を解決
- アダプタ詳細情報: エラー時にアダプタの詳細情報(速度、MACアドレス等)を表示
- 自動アダプタ有効化: Down状態のアダプタの自動有効化試行機能
- 改善されたエラーメッセージ: より詳細で分かりやすいエラー情報の提供
- DHCP設定の改善: 「DHCP is already enabled」エラーの適切な処理
- WMIフォールバック機能: netsh失敗時の自動WMI使用
- エラーハンドリング強化: System.Managementアセンブリエラーの詳細対応
- 実行ファイル最適化: 不要なファイルの削除と最小構成の実現
- .gitignore設定: 不要ファイルの除外設定を追加
- README更新: 詳細な使用方法とトラブルシューティングを追加