ネットワークを切断して作業
PCで作業してると、一時的にネットワークを切断しなきゃいけないことってよくありますよね。え?ない?わたしの仕事では、よくあるんですよ。
いちいちLANケーブルを抜いて、作業が済んだら挿してたんですけど、面倒だしLANケーブルもLANポートもゆるゆるになっちゃうし、嫌ですよね。
そこで物理的に切断せず、ネットワークデバイスを停止して簡単に切断できる方法があったんで、ここに記しておきます。
デバイスの値を調べる
スタートメニュー を 右クリック で デバイスマネージャー を開く。
ネットワーク アダプター から LANに接続しているデバイスを右クリック、プロパティを開く。
詳細タブ の プロパティ から デバイス インスタンス パス を選択。
表示された 値 を右クリックでコピーする。
(今回の場合 PCI\~ で始まる文字列)
PowerShell の実行ファイル PS1 を作成
テキストエディタで以下のように 値 を入れて記述し、拡張子 ps1 で保存する。
(今回の場合 LanKill.ps1 とする)
# LanKill.ps1
Get-PnpDevice | ? {$_.InstanceId -eq 'PCI\~文字列'} | Disable-PnpDevice -Confirm:$false
コマンドプロンプト の実行ファイル BAT を作成
テキストエディタで以下のように 先ほどの ps1 を起動する コマンド を記述し、拡張子 bat で保存する。
(今回の場合 LanKill.bat とする)
rem Run administrator privileges.
net session >NUL 2>nul
if %errorlevel% neq 0 (
@powershell start-process %~0 -verb runas
exit
)
rem Launch LanKill.ps1
PowerShell -ExecutionPolicy RemoteSigned %~dp0\LanKill.ps1
最初に PowerShell を administrator権限 で実行するように記述されている。
ps1と同じフォルダに置き、batファイル をダブルクリックすると、LANに接続しているデバイスが停止する。
デバイスを起動する
停止しているデバイスを起動するには、以下のように ps1、bat を記述し、bat をダブルクリックで実行する。
ps1
(今回の場合 LanBoot.ps1 とする)
# LanBoot.ps1
Get-PnpDevice | ? {$_.InstanceId -eq 'PCI\~文字列'} | Enable-PnpDevice -Confirm:$false
bat
(今回の場合 LanBoot.bat とする)
rem Run administrator privileges.
net session >NUL 2>nul
if %errorlevel% neq 0 (
@powershell start-process %~0 -verb runas
exit
)
rem Launch LanBoot.ps1
PowerShell -ExecutionPolicy RemoteSigned %~dp0\LanBoot.ps1
確認のダイアログが出ちゃう
bat を実行すると このアプリがデバイスに変更を加えることを許可しますか? と出るのがちょっと鬱陶しくて、出ないようにする方法はあるみたいなんだけど、ま、こんくらいいいか。
参照
Windows10 デバイスの有効・無効化を自動処理(PowerShell) (我が家の流儀)
バッチを自動で管理者権限で実行する方法 (@kokosan60)