質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

Q&A

解決済

1回答

11627閲覧

イーサネットの切り替えをスクリプトで実行したい

kaisen

総合スコア28

PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

0グッド

0クリップ

投稿2018/06/12 17:51

編集2018/06/12 22:12

こんばんは。
powershellスクリプトを使ってやりたいことがあるので質問させていただきます。

###前提
最近、そこそこの頻度でネットワークの切断と接続を繰り返しています。
なので、
タスクバーにスクリプトをピン止めして、
いつでも切断と接続の切り替えができるようにしたいと思うようになりました。
しかし、ネットでいくら調べても、
切断と接続の両方を切り替えられる方法は見つからず、
一つのスクリプトで切断、もう一つのスクリプトで接続、
といったような情報しか見つかりませんでした。

イメージとしては下記のようなスクリプトを作りたいです。

if(netsh interface show interface イーサネット admin == disabled){netsh interface set interface イーサネット enabled} else{netsh interface set interface イーサネット disabled}

当然、このスクリプトは動きません。

###そこで質問
if(netsh interface show interface イーサネット admin == disabled)という
部分で
イーサネットの接続、切断情報の取得と判定ができれば
このスクリプトは動くはずです。
このような情報の取得コマンドについて教えていただきたいと思い、
質問を投稿させていただきました。

###環境
windows10

powershellについては経験ほぼ皆無です。
独力で解決できると思って、想像以上に検索に時間を溶かしてしまいました。

知恵をお貸しいただければ幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

こんにちは。
Windows 10のPowerShellであれば、Get-NetAdapterでネットワークアダプタの情報を取得できます。(netsh interface show interfaceに相当)
そして取得した情報からDisable-NetAdapterEnable-NetAdapterを使うことでアダプタの無効化、有効化を行えます。

細かい説明は省きますが、以下の様なスクリプトを「管理者として実行」してください。

# 要管理者権限 # 「管理者として実行」してください。 $adapterName = 'イーサネット' # 無効にする $adapter = Get-NetAdapter -Name $adapterName if ($adapter.Status -eq 'Up') { $adapter | Disable-NetAdapter -Confirm:$false -Verbose } # 有効にする $adapter = Get-NetAdapter -Name $adapterName if ($adapter.Status -eq 'Disabled') { $adapter | Enable-NetAdapter -Verbose }

ちょっと追記

バッチファイルは苦手なんですがfindstrで頑張ればnetshコマンドでも何とかできそうです。
お好きな方を選んでいただければと。

REM 日本語環境が前提。 REM ほかの言語だとnetsh interfaceコマンドの結果が変わる REM 無効にする netsh interface show interface イーサネット | findstr /r "接続状態:.*接続" if %ERRORLEVEL% == 0 ( netsh interface set interface イーサネット disabled ) REM 有効にする netsh interface show interface イーサネット | findstr /r "接続状態:.*切断" if %ERRORLEVEL% == 0 ( netsh interface set interface イーサネット enabled )

投稿2018/06/13 00:28

編集2018/06/13 00:58
stknohg

総合スコア796

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kaisen

2018/06/13 01:00 編集

stknohg様、こんにちは。 回答ありがとうございます。 そうです!まさにこれが欲しかったのです。 教えていただいたスクリプトに合わせて、 http://www.atmarkit.co.jp/fwin2k/win2ktips/1024psshrtct/psshrtct.html このページに書かれていることをして さらにタスクバーにドラッグアンドドロップでピン止めすることで、 ネットワークの接続/切断が素早くできるようになりました。 非常に助かりました。 また機会がありましたらよろしくおねがいします。 追記: バッチファイルに関する情報もありがとうございます。 powershellでうまくいったので、今後もこれで使わせていただきます。
kaisen

2018/06/14 15:58 編集

再追記: どうやら私、早とちっていたみたいなので更に追記です。 頂いたスクリプトを ``` # 要管理者権限 # 「管理者として実行」してください。 $adapterName = 'イーサネット' # 変更点->有効と無効を切り替える $adapter = Get-NetAdapter -Name $adapterName if ($adapter.Status -eq 'Up') { $adapter | Disable-NetAdapter -Confirm:$false -Verbose }else{ $adapter | Enable-NetAdapter -Verbose } ``` と変更することで 有効時は無効に、 無効時は有効に、という切り替えが可能になりました。 私と同じことを誰かが調べたときのための再追記でした。。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問