PowerShellを使用してすべてのアクティブなネットワーク接続を一時的に切断する方法

PowerShellを使用してすべてのアクティブなネットワーク接続を一時的に切断する方法という問いには、ローカルコンソールでUp一覧を保存・表示し、明示承認後にそのオブジェクト集合だけをDisable-NetAdapterへ渡すという方法で答えます。『すべてのアクティブ接続』はGet-NetAdapterでUpの全項目を意味し、Ethernet一件だけでは足りない。仮想NICやVPN関連アダプターが含まれるかも一覧で判断する。この記事ではStatus=Upだった各NetAdapterのName、InterfaceDescription、ifIndexを変更前スナップショットとして固定するを判断軸にし、実行前の確認、記事固有のコード、合否判定、戻し方を一続きで示します。

単一NICの停止ではなく、その時点でUpの全接続を列挙・承認・復旧できる手順にする。完了は「変更前にUpだった全対象がDownとなり、対象外の管理・仮想アダプターをどう扱ったか説明できる」と定義します。対象が取れない場合は「Upが0件なら既に切断済みとして終了し、Disable-NetAdapterを全Nameへ広げない」として切り分け、推測で成功扱いにしません。

日程Fit。無料・登録不要。「いつ空いてる?」を、ひとつのリンクで。リンクを送って、○△×でかんたん日程調整。無料で日程を作る。
目次

実行場所をローカルコンソールへ限定

ローカルコンソールでUp一覧を保存・表示し、明示承認後にそのオブジェクト集合だけをDisable-NetAdapterへ渡す。すべてのアクティブネットワーク接続の一時切断ではこの進め方により、操作したという事実ではなく、期待する状態へ到達したかでタイトルの問いへ答えられます。単一NICの停止ではなく、その時点でUpの全接続を列挙・承認・復旧できる手順にする。

実行場所をローカルコンソールへ限定の合格条件は、変更前にUpだった全対象がDownとなり、対象外の管理・仮想アダプターをどう扱ったか説明できることです。作業時刻、実行ユーザー、端末名を添え、判断に使った値が後から追える形にします。

Status Upの全アダプターをスナップショット

Status Upの全アダプターをスナップショットは変更前の基準点です。Status=Upだった各NetAdapterのName、InterfaceDescription、ifIndexを変更前スナップショットとして固定するを出力に含め、取得時刻と一緒に保存します。値だけを切り取ると別対象との比較になるため、識別列を省きません。

$activeAdapters = @(Get-NetAdapter | Where-Object { $_.Status -eq 'Up' } |
  Select-Object Name, InterfaceDescription, ifIndex, Status)
$activeAdapters | Format-Table
if ($activeAdapters.Count -eq 0) { Write-Output 'アクティブ接続はありません。' }

『すべてのアクティブ接続』はGet-NetAdapterでUpの全項目を意味し、Ethernet一件だけでは足りない。仮想NICやVPN関連アダプターが含まれるかも一覧で判断する。出力が多い場合も最初から無理に一件へ絞らず、候補数と除外理由を残してから対象を決めます。

Wi-Fi・Ethernet・VPN仮想NICを確認

Wi-Fi・Ethernet・VPN仮想NICを確認では、ローカルコンソールでUp一覧を保存・表示し、明示承認後にそのオブジェクト集合だけをDisable-NetAdapterへ渡す。すべてのアクティブネットワーク接続の一時切断の例中にある名前、パス、ID、時刻はサンプルなので、そのまま本番へ貼らず、直前の読み取り結果から承認値を入れます。

if ($activeAdapters.Count -eq 0) { return }
$approval = Read-Host "上記 $($activeAdapters.Count) 接続を切断する場合は DISCONNECT-ALL と入力"
if ($approval -ne 'DISCONNECT-ALL') { throw '全接続の切断は承認されませんでした。' }
$targets = @(Get-NetAdapter | Where-Object {
  $_.ifIndex -in $activeAdapters.ifIndex -and $_.Status -eq 'Up'
})
if ($targets.Count -ne $activeAdapters.Count) { throw '承認後に対象状態が変わりました。' }
$targets | Disable-NetAdapter -Confirm:$false

リモートセッションでは管理経路ごと切れて復旧不能になるため実行しない。クラスタ、Hyper-V、ストレージ通信がある端末も対象外にする。すべてのアクティブネットワーク接続の一時切断でプレビュー対応コマンドを使える場合はWhatIfを先に実行し、非対応の操作は対象一覧と引数を画面へ出して人が承認してから一度だけ実行します。

切断予定一覧を承認画面に出す

切断予定一覧を承認画面に出すでは同じ対象を別経路でもう一度読みます。判定したいのは「コマンドが終了したか」ではなく、変更前にUpだった全対象がDownとなり、対象外の管理・仮想アダプターをどう扱ったか説明できるかどうかです。

$activeAdapters | ForEach-Object {
  Get-NetAdapter -InterfaceIndex $_.ifIndex -ErrorAction SilentlyContinue |
    Select-Object Name, ifIndex, Status
}
# 復旧時は保存済みNameだけを再有効化する
# $activeAdapters.Name | ForEach-Object { Enable-NetAdapter -Name $_ -Confirm:$false }

Upが0件なら既に切断済みとして終了し、Disable-NetAdapterを全Nameへ広げない。すべてのアクティブネットワーク接続の一時切断の期待値と実測値が一致しないときは追加変更を重ねず、対象識別、権限、ポリシー、時間差の順で原因を分けます。

保存したオブジェクトだけを無効化

リモートセッションでは管理経路ごと切れて復旧不能になるため実行しない。クラスタ、Hyper-V、ストレージ通信がある端末も対象外にする。保存したオブジェクトだけを無効化に該当したら、警告を消して継続するのではなく、どの条件で止まったかを記録します。

Upが0件なら既に切断済みとして終了し、Disable-NetAdapterを全Nameへ広げない。すべてのアクティブネットワーク接続の一時切断ではエラー本文、FullyQualifiedErrorId、対象ID、直前に成功した段階を残すと、別担当者が安全な地点から調査できます。

全接続がDownになったか照合

変更前スナップショットに入っていたNameだけをEnable-NetAdapterへ渡し、IP、DNS、既定経路を再確認する。復旧操作にも同じ識別条件を使い、名前が似た別対象へ戻し処理を適用しません。

  • すべてのアクティブネットワーク接続の一時切断の変更前値と取得時刻
  • 復旧対象: Status=Upだった各NetAdapterのName、InterfaceDescription、ifIndexを変更前スナップショットとして固定する
  • 復旧後の判定: 変更前にUpだった全対象がDownとなり、対象外の管理・仮想アダプターをどう扱ったか説明できる
  • 再実行を止める条件: リモートセッションでは管理経路ごと切れて復旧不能になるため実行しない。クラスタ、Hyper-V、ストレージ通信がある端末も対象外にする

元のName一覧だけを再有効化

Wi-Fiと有線を同時に切る目的、切断時間、現地復旧者を決め、作業完了後は保存一覧を証跡へ残す。すべてのアクティブネットワーク接続の一時切断を繰り返す場合は、正常、対象なし、要承認、失敗を異なる終了状態として記録し、前回値との比較だけで異常を決めません。

元のName一覧だけを再有効化の識別軸Status=Upだった各NetAdapterのName、InterfaceDescription、ifIndexを変更前スナップショットとして固定する
採用する実測変更前にUpだった全対象がDownとなり、対象外の管理・仮想アダプターをどう扱ったか説明できる
0件時の扱いUpが0件なら既に切断済みとして終了し、Disable-NetAdapterを全Nameへ広げない
保留にする兆候リモートセッションでは管理経路ごと切れて復旧不能になるため実行しない。クラスタ、Hyper-V、ストレージ通信がある端末も対象外にする

質問:リモートから実行できるか

Q. すべてのアクティブネットワーク接続の一時切断は管理者PowerShellなら必ず成功しますか。A. いいえ。『すべてのアクティブ接続』はGet-NetAdapterでUpの全項目を意味し、Ethernet一件だけでは足りない。仮想NICやVPN関連アダプターが含まれるかも一覧で判断する。管理者権限は対象や製品仕様の不一致を解消しません。

Q. 0件を正常終了にできますか。A. Upが0件なら既に切断済みとして終了し、Disable-NetAdapterを全Nameへ広げない。要件上0件が許される場合だけ正常とし、検出できなかった状態とは分けて報告します。

すべてのアクティブネットワーク接続の一時切断の実行記録には、開始前の対象候補、採用した識別値、実行したコード、終了後の実測、除外した候補と理由を同じ作業番号で残します。特に「Status=Upだった各NetAdapterのName、InterfaceDescription、ifIndexを変更前スナップショットとして固定する」を省くと、後日の再確認で別対象の値を比較するおそれがあります。画面コピーだけでなく、日時と端末名を含む構造化した出力も保存します。

PowerShellを使用してすべてのアクティブなネットワーク接続を一時的に切断する方法を定期手順へ組み込む場合も、初回は対話的に候補を確認します。正常時は「変更前にUpだった全対象がDownとなり、対象外の管理・仮想アダプターをどう扱ったか説明できる」、判定不能時は「Upが0件なら既に切断済みとして終了し、Disable-NetAdapterを全Nameへ広げない」、中止時は「リモートセッションでは管理経路ごと切れて復旧不能になるため実行しない。クラスタ、Hyper-V、ストレージ通信がある端末も対象外にする」をそれぞれ別の結果として扱います。これにより、0件や例外を都合よく成功へ丸めず、次の担当者が同じ対象と条件で追試できます。

公式情報・参考資料

すべてのアクティブネットワーク接続の一時切断で使うコマンド名、引数、対応環境は次のMicrosoft一次資料で確認しました。記事の確認日は2026年7月17日です。OSやモジュール更新後は、実行端末のGet-Helpと併せて再確認してください。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次