netsh wlan で作る Wi-Fi 自動接続バッチの手順とポイント

  • URLをコピーしました!
目次

はじめに

新入社員の PC キッティングや、複数拠点を行き来する社員の PC セットアップで、長く複雑な Wi-Fi パスワードを 1 台ずつ手入力していませんか。大文字・小文字の確認や入力ミスは、台数が増えるほど運用負荷を高めます。

Windows 標準の netsh コマンドを使うと、現在使っている Wi-Fi 設定をそのまま XML としてエクスポートし、他の PC にダブルクリックで適用できるバッチファイルを作成できます。本記事では、IT 部門の運用効率化に役立つ Wi-Fi 自動接続バッチの作り方と、運用上のポイントを実務目線で整理します。

参考: netsh wlan コマンド公式リファレンス(Microsoft Learn)
適用対象: Windows Server 2016〜2025、Windows 10、Windows 11、Azure Local 2311.2 以降
https://learn.microsoft.com/ja-jp/windows-server/administration/windows-commands/netsh-wlan

この記事でわかること
  • 既存の PC から Wi-Fi 設定をエクスポートする手順
  • パスワード入力不要で接続を行う配布用バッチの作り方
  • 平文パスワードのリスクとセキュリティ対策
  • 事前に知っておきたい制約事項(WPA3・EAP・GPO 優先順位など)
  • 配布方式の選定(netsh / プロビジョニングパッケージ / GPO / Intune)
  • 接続できない場合のトラブルシューティング
STEP

Wi-Fi プロファイル(XML)の用意

まずは、配布する元となる設定ファイル(XML)を用意します。XML を一から手書きする必要はありません。すでに Wi-Fi に接続できている PC から設定をエクスポートすれば、記述ミスもなく確実です。

設定済み PC でコマンドプロンプトを管理者として開く

Wi-Fi に正常に接続できている PC を用意し、コマンドプロンプトを「管理者として実行」で起動します。netsh wlan の各種コマンドはセキュリティキー(パスワード)を扱うため、管理者権限が必要です。

設定のエクスポート

以下のコマンドを実行します。SSID名 の部分は、対象のネットワーク名に置き換えてください。

netsh wlan export profile name="SSID名" folder=. key=clear
オプション意味
name="SSID名"エクスポートしたい Wi-Fi の名前
folder=.現在のフォルダに保存(. はカレントディレクトリの意味)
key=clearパスワードを平文で出力する指定。これを付けないと暗号化されたまま出力され、他の PC に取り込んでも接続できません

参考: netsh wlan export profile の構文(Microsoft Learn)
netsh wlan export profile [name=][folder=][[interface=]] [key=]
https://learn.microsoft.com/ja-jp/windows-server/administration/windows-commands/netsh-wlan

XML ファイルの確認

コマンドを実行したフォルダに、Wi-Fi-SSID名.xml というファイルが作成されます。これが配布用のプロファイルデータです。

登録済み SSID の一覧確認

対象 SSID 名を忘れた場合は、以下のコマンドで一覧表示できます。

netsh wlan show profiles
STEP

配布用バッチファイルの作成

次に、作成した XML を他の PC に読み込ませるためのバッチファイルを作成します。

メモ帳などのテキストエディタを開き、以下のコードをコピーして貼り付け、install_wifi.bat などの名前で保存してください。Wi-Fi-mytech.xml の部分は、手順①でできたファイル名に合わせて書き換えます。

@echo off
chcp 65001 > nul
setlocal

:: --- 設定項目 ---
:: XML ファイル名を指定(手順①で作成したファイル名)
set XML_FILE="Wi-Fi-mytech.xml"
:: 接続する SSID 名を指定
set SSID_NAME="mytech"
:: ----------------

:: --- 管理者権限チェック ---
net session >nul 2>&1
if %errorlevel% neq 0 (
    echo ========================================================
    echo  [エラー] 管理者権限が必要です
    echo ========================================================
    echo.
    echo  このバッチファイルを右クリックし、
    echo  「管理者として実行」を選択して再実行してください。
    echo.
    pause
    exit /b 1
)

echo ========================================================
echo  Wi-Fi 自動接続ツール
echo ========================================================
echo.
echo  対象の SSID: %SSID_NAME% に設定を行います。
echo.
echo  設定を開始してよろしいですか?
pause
echo.

echo [処理中] Wi-Fi 設定を読み込んでいます...
netsh wlan add profile filename=%XML_FILE% user=all
if %errorlevel% neq 0 (
    echo [エラー] 設定ファイルの読み込みに失敗しました。
    echo XML ファイルが存在するか確認してください。
    pause
    exit /b 1
)

echo [処理中] Wi-Fi に接続を試みています...
netsh wlan connect name=%SSID_NAME%

echo.
echo [確認中] 接続状態を確認しています(最大 30 秒)...

:: 30 秒間の接続チェックループ(2 秒間隔 × 15 回)
set /a count=0
:CHECK_LOOP
set /a count+=1
timeout /t 2 > nul

:: 「状態」が「接続されています」かをチェック
netsh wlan show interfaces | findstr /C:"接続されています" > nul
if %errorlevel%==0 (
    :: 対象 SSID に接続しているかも併せて確認
    netsh wlan show interfaces | findstr /C:"%SSID_NAME%" > nul
    if %errorlevel%==0 goto SUCCESS
)

if %count% geq 15 (
    goto TIMEOUT
)
goto CHECK_LOOP

:SUCCESS
echo.
echo ========================================================
echo  [成功] 正常に Wi-Fi に接続されました
echo ========================================================
echo.
echo  何かキーを押すと終了します...
pause > nul
exit /b 0

:TIMEOUT
echo.
echo ========================================================
echo  [失敗] 時間内に接続を確認できませんでした
echo ========================================================
echo.
echo  確認ポイント:
echo  - 対象 SSID の電波が届いているか
echo  - パスワードが変更されていないか
echo  - 無線アダプタが有効になっているか
echo.
pause
exit /b 1

バッチファイルのポイント

このバッチには、現場運用を想定した以下の工夫を盛り込んでいます。

管理者権限チェック(net session
  • 管理者権限がない場合は冒頭で停止し、エラーメッセージで案内します。netsh wlan add profile は管理者権限がないと「アクセスが拒否されました」と失敗するため、事前判定によりトラブルを未然に防ぐ効果があります。
  • chcp 65001: 日本語の文字化けを防ぐ UTF-8 切替コマンドです。バッチファイル自体も UTF-8 で保存することをおすすめします。
user=all

自分だけでなく、その PC を使う全ユーザーに設定を適用します。

接続判定の二重チェック

netsh wlan show interfaces の出力で「接続されています」という状態行を確認したうえで、対象 SSID に接続できているかも併せて検証します。SSID 名の部分一致だけで判定するよりも、誤検知(実際は別 SSID に接続)を抑えられます。

参考: バッチでの管理者権限判定(Microsoft 公式コマンドの応用)
net session は管理者権限がないと「アクセスが拒否されました」を返し、%ERRORLEVEL% が 0 以外になります。これを利用した権限判定は、バッチスクリプトで広く使われている標準的な手法です。
https://learn.microsoft.com/ja-jp/windows-server/administration/windows-commands/net-session

実際の運用シーンとメリット

シーン A|新入社員の PC キッティング

新しい PC をセットアップする際、複雑なパスワードを手入力するのは入力ミスのもとになります。このバッチファイルを USB メモリに入れておけば、USB を挿してダブルクリックするだけで Wi-Fi 設定が完了します。10 台、20 台と台数が増えるほど、その時短効果は大きくなります。

シーン B|複数拠点(東京・大阪など)への一括登録

営業担当者など、拠点を頻繁に行き来する社員の PC で有効です。「東京本社」「大阪支店」「福岡営業所」など、全拠点のプロファイルを 1 つのバッチファイルでまとめて適用しておけば、出張先で PC を開くだけで自動的に現地の Wi-Fi に接続されます。

複数 SSID を登録する場合、バッチ内で netsh wlan add profile を SSID 分繰り返し実行する形に拡張できます。

セキュリティ上の注意点と対策

便利な手法ですが、運用には注意が必要です。手順①で使用した key=clear オプションにより、エクスポートされた XML ファイルの中には Wi-Fi のパスワードが平文で記述されています

この XML ファイルが外部に流出すると、Wi-Fi パスワードが第三者に知られるリスクがあります。以下の対策をおすすめします。

対策 ①|ファイルサーバーに置きっぱなしにしない

「誰でもアクセスできる共有フォルダ」にバッチファイルと XML を放置するのは推奨できません。必要なときだけ共有し、作業が終わったら速やかに削除する運用が望ましい形です。なお、PC に設定が取り込まれた後は、バッチファイルや XML を削除しても Wi-Fi 接続設定は維持されます。

対策 ②|配布規模に応じたツールの使い分け

netsh と XML の組み合わせは、数台〜数十台規模の配布には適しています。一方、PC が 100 台を超えるような大規模環境では、より管理性の高い手段への切り替えをおすすめします。各手段の特徴は、後述の比較表で整理しています。

対策 ③|不要になったプロファイルの削除

PC を別の社員に引き継ぐ場合や、Wi-Fi パスワードを変更した場合は、古いプロファイルを削除することをおすすめします。

netsh wlan delete profile name="SSID名"

事前に把握しておきたい制約事項

netsh wlan を使った Wi-Fi 設定の配布は手軽な反面、いくつかの制約があります。トラブルや想定外の挙動を避けるため、事前に押さえておくことをおすすめします。

① 管理者権限が必要

netsh wlan add profilenetsh wlan export profilekey=clear 付き)は、いずれも管理者権限がないと「アクセスが拒否されました」と表示されて失敗します。配布先 PC の利用者が標準ユーザーで運用されている場合、バッチを「管理者として実行」する手順を案内するか、手順②で紹介した管理者権限チェックを組み込むと運用負荷を下げられます。

② WPA3-Enterprise は GUI から作成できない

Windows 11 22H2 以降、WPA3-Enterprise の Wi-Fi プロファイルは Windows の設定画面から作成できません。エクスポートする元プロファイルは XML を手動で編集するか、別環境で作成したプロファイルを取り込む必要があります。WPA3-Personal(SAE)であれば、<authentication>WPA3SAE</authentication> を XML に記述する形で対応可能です。

参考: Wi-Fi 7 と WPA3 のサポート状況(Microsoft サポート)
Wi-Fi 7 は Windows 11 バージョン 24H2 以降で利用可能。Wi-Fi 7 / Wi-Fi 6/6E / WPA3 をサポートするワイヤレスネットワークアダプターが必要です。
https://support.microsoft.com/ja-jp/windows/windows-%E3%81%A7%E3%81%AE-wi-fi-%E3%81%AE%E9%AB%98%E9%80%9F%E5%8C%96%E3%81%A8%E3%82%BB%E3%82%AD%E3%83%A5%E3%83%AA%E3%83%86%E3%82%A3%E5%BC%B7%E5%8C%96-26177a28-38ed-1a8e-7eca-66f24dc63f09

③ 802.1X / EAP 環境は別途証明書配布が必要

社内 RADIUS サーバーを利用した 802.1X / EAP-TLS 認証の Wi-Fi では、Wi-Fi プロファイルの XML に加えてクライアント証明書の配布が別途必要です。netsh 単独で完結させるのは難しく、Intune や GPO との併用が現実的な選択肢になります。

④ 隠し SSID(非ブロードキャスト)への接続

SSID をブロードキャストしないアクセスポイントに接続する場合、XML 内で <nonBroadcast>true</nonBroadcast> を指定する必要があります。エクスポート時の元 PC が公開 SSID として接続していた場合、この値を手動で書き換えることをおすすめします。

⑤ PSK パスフレーズの文字数制約

WPA2/WPA3-Personal の事前共有キー(PSK)は 8〜63 文字の ASCII 文字列という公式仕様があります。この範囲を外れたパスフレーズは、XML を読み込めても接続に失敗します。

⑥ GPO で配布されたプロファイルが優先される

ドメイン参加 PC で GPO(グループポリシー)から Wi-Fi プロファイルが配布されている場合、GPO のプロファイルが優先され、netsh wlan add profile で追加したプロファイルが上書きまたは無視されることがあります。AD 環境で本手法を使う場合は、GPO 側の設定状況を事前に確認することをおすすめします。

⑦ MAC アドレスランダム化との関係

Windows 10 以降には MAC アドレスランダム化機能があり、SSID ごとに MAC アドレスを変える設定が可能です。MAC アドレスフィルタリングを行っている環境では、ランダム化を無効にする設定を XML に含める必要があります(<MacRandomization> 配下の <enableRandomization>false</enableRandomization>)。

配布方式の比較|netsh / プロビジョニングパッケージ / GPO / Intune

netsh バッチによる配布は手軽ですが、規模やセキュリティ要件によっては別の手段を選ぶべきケースもあります。代表的な 4 つの方式を比較します。

配布方式適用規模の目安WPA2WPA3-PersonalWPA3-Enterprise必要環境コスト
netsh + バッチ〜数十台△(XML 手動編集)Windows 標準無償
プロビジョニングパッケージ〜数百台Windows Pro 以上無償
GPO(Active Directory)AD 配下△(XML インポート)AD ドメイン環境既存 AD 環境
Microsoft Intune規模を問わず△(カスタム OMA-URI)サブスクリプション有償

選定の考え方

数台〜数十台規模・単発の配布

netsh + バッチが最も短時間で着手できます。USB メモリやネットワーク経由でファイルを渡すだけで運用できます

数十〜数百台・AD ドメイン環境

GPO(無線ネットワーク(IEEE 802.11)ポリシー)が管理性とのバランスで現実的な選択肢です

クラウド管理・モバイル中心

Intune が向いています。既定のテンプレートでは WPA3 や EAP の細かな設定に制約があるため、カスタム OMA-URI と XML を組み合わせるパターンが一般的です

AD なし・クラウド未契約・台数多め

プロビジョニングパッケージで初期導入時に一括反映する方式が向いています

なお、netsh 方式と GPO/Intune は併用も可能ですが、GPO のプロファイルが優先されるため、競合しないよう SSID 単位で配布元を整理することをおすすめします。

参考: Windows での EAP プロファイルと設定の構成(Microsoft Learn)
MDM やグループポリシーを構成できない場合、netsh コマンドを手動実行またはスクリプト化することが最も簡単な選択肢です。
https://learn.microsoft.com/ja-jp/windows-server/networking/technologies/extensible-authentication-protocol/configure-eap-profiles

トラブルシューティング|接続できない場合の切り分け

バッチを実行しても接続できない場合、以下のチェックポイントを順番に確認することをおすすめします。

① 管理者権限で実行されているか

最も多い原因のひとつです。バッチファイルを右クリックして「管理者として実行」を選択しているか確認してください。手順②で追加した管理者権限チェックがあれば、冒頭で検出できます。

② XML ファイルの文字コードを確認する

XML ファイルが Shift_JIS で保存されている場合、SSID 名やプロファイル名に日本語や特殊文字が含まれていると正しく読み込めないことがあります。UTF-8(BOM なし)で保存することをおすすめします。

③ 無線アダプタとサービスの状態を確認する

netsh wlan show interfaces

「ワイヤレス自動構成サービス(wlansvc)が実行されていません」と表示される場合、サービスが停止しています。以下で起動できます。

sc start wlansvc

④ 対象 SSID の電波が届いているか確認する

netsh wlan show networks

現在受信できている SSID の一覧が表示されます。対象 SSID が表示されない場合は、電波が届いていない、SSID が非ブロードキャスト、またはアクセスポイントが 5 GHz 帯のみ提供しているのに PC が 2.4 GHz 帯しか対応していないといった原因が考えられます。

⑤ ドライバが Wi-Fi 規格に対応しているか確認する

netsh wlan show drivers

「サポートされている無線の種類」と「サポートされている認証と暗号」の項目で、対象 SSID の規格(例: 802.11axWPA3 Personal)が含まれているかを確認します。古いドライバや低価格帯の USB Wi-Fi アダプタでは、WPA3 や Wi-Fi 6E に未対応のケースがあります。

⑥ プロファイルが正しく登録されているか確認する

netsh wlan show profiles
netsh wlan show profile name="SSID名" key=clear

登録済みプロファイルの一覧と、登録されたパスワードを確認できます。XML を読み込んだ直後にこのコマンドで内容を確認すると、add profile の成否を判断できます。

⑦ Windows 標準のレポート機能で一括収集する

ここまでの個別チェックで原因が絞り込めない場合、Windows 標準のレポート機能が有効です。

netsh wlan show wlanreport

過去 3 日間の Wi-Fi 接続状況、エラー、ドライバ情報、プロファイル一覧などを HTML レポートとして自動出力します。出力先は %ProgramData%\Microsoft\Windows\WlanReport\wlan-report-latest.html です。

参考: ワイヤレスネットワークレポートの使用(Dell サポートドキュメント)
netsh wlan show wlanreport は過去 3 日間の Wi-Fi イベントをセッション単位でグラフ化し、ドライバ情報・プロファイル・コンピュータ情報を含む HTML レポートを生成します。
https://www.dell.com/support/kbdoc/ja-jp/000141419/

⑧ 複数 SSID を登録した場合の優先順位を確認する

複数のプロファイルを登録した場合、想定外の SSID(例: 会議室の AP)に接続することがあります。優先順位は以下のコマンドで明示的に指定できます。

netsh wlan set profileorder name="SSID名" interface="Wi-Fi" priority=1

まとめ

netsh wlan を使った Wi-Fi バッチ配布は、Windows 標準機能だけで完結する手軽さが強みです。一方で、管理者権限、WPA3-Enterprise の GUI 制約、GPO との優先順位など、事前に把握しておくべきポイントもあります。本記事の手順と制約事項を踏まえて設計することで、現場でのトラブルを減らせます。

  • netsh wlan export profile key=clear で既存 PC から XML をエクスポートする
  • バッチに管理者権限チェック(net session)を組み込み、権限不足を冒頭で検出する
  • XML と バッチは使用後に削除し、平文パスワードの流出リスクを抑える
  • WPA3-Enterprise は GUI で作成できないため、XML の手動編集または別環境からの取り込みが必要
  • AD 環境では GPO プロファイルが優先されるため、配布前に GPO 側の設定状況を確認する
  • 接続できない場合は netsh wlan show wlanreport で HTML レポートを生成し、原因を切り分ける
  • 数十台を超える規模では GPO / Intune への移行を検討する

以上、最後までお読みいただきありがとうございました。

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

関西を拠点に活動する、現役インフラエンジニア。経験20年超。

大手通信キャリアにて、中〜大規模インフラ(ネットワーク・サーバ・クラウド・セキュリティ)の設計・構築およびプロジェクトマネジメントに従事。現場で直面した技術課題への対処や、最新の脆弱性情報への実務対応を、一次情報として発信しています。

保有資格
CCIE Lifetime Emeritus(取得から20年以上)/ VCAP-DCA / Azure Solutions Architect Expert

▶ 運営者プロフィール(詳細)

目次