コマンドプロンプトでネットワークアダプタを有効/無効化したいと思っています。

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
ユーザー

コマンドプロンプトでネットワークアダプタを有効/無効化したいと思っています。

#1

投稿記事 by ユーザー » 8年前

コマンドプロンプトでネットワークアダプタを有効/無効化したいと思っています。

Windows10を使っています。

コマンドプロンプトを管理者権限で立ち上げて(下の参考を参照)、以下のコマンドを入力するとうまくオンオフはできています。

C:\WINDOWS\system32>netsh interface set interface "イーサネット" disabled

C:\WINDOWS\system32>netsh interface set interface "イーサネット" enabled




しかし、バッチファイルにした瞬間にうまく動かなくなります。

下の参考のように、詳細プロパティの「管理者として実行」にチェックを付けてもダメでした。

バッチファイルで一瞬立ち上がったコマンドプロンプトにエラーメッセージが出てきているようですが、一瞬なので読めません。

また「netsh」という拡張子のない白いファイルが生成されます。




ちなみに、エクスプローラーで特定のフォルダを開くコードも、コマンドプロンプト開いて以下のように打つとできますが、バッチファイルにした途端にできなくなります。この場合も、「explorer」という拡張子のない白いファイルが生成されます。共通したミスがあるのかと思っていますが、よくわかりません。

C:\Users\ユーザー名>explorer /e ,/root, D:\ABC




バッチファイルをダブルクリックなどで実行するだけで、簡単にネットワークアダプタを有効/無効化したいと思っているのですが、どうすればよいでしょうか?

どうぞよろしくおねがいします。




参考

コマンドプロンプトからネットワークアダプタを有効/無効化する | Logs
http://l.inolv.jp/2013/02/27/disable-an ... by-comman/

(Windows7) コマンドでネットワークIFの有効化、無効化を行う - Qiita
http://qiita.com/redpanda/items/2746f63ff0d29bba4ee2

バッチファイルを常に管理者として実行する方法 - 気になったこと日記
http://aquablue7.blogspot.jp/2013/04/blog-post.html

Windows 7 __管理者権限でcmd.exeを実行したい、素早く!____ - マイクロソフト コミュニティ
http://answers.microsoft.com/ja-jp/wind ... 0fa?auth=1

スタートメニューに cmd と入力して Ctrl+Shift+Enter は如何でしょうか?

YuO
記事: 947
登録日時: 13年前
住所: 東京都世田谷区

Re: コマンドプロンプトでネットワークアダプタを有効/無効化したいと思っています。

#2

投稿記事 by YuO » 8年前

ユーザー さんが書きました:コマンドプロンプトを管理者権限で立ち上げて(下の参考を参照)、以下のコマンドを入力するとうまくオンオフはできています。

C:\WINDOWS\system32>netsh interface set interface "イーサネット" disabled

C:\WINDOWS\system32>netsh interface set interface "イーサネット" enabled




しかし、バッチファイルにした瞬間にうまく動かなくなります。

下の参考のように、詳細プロパティの「管理者として実行」にチェックを付けてもダメでした。

バッチファイルで一瞬立ち上がったコマンドプロンプトにエラーメッセージが出てきているようですが、一瞬なので読めません。

また「netsh」という拡張子のない白いファイルが生成されます。
バッチファイルにプロンプト (「C:\WINDOWS\system32>」の部分) まで書いていませんか。
普通に書けば,

コード:

@ECHO OFF
netsh interface set interface "イーサネット" disabled
IF ERRORLEVEL 1 PAUSE
のようなバッチファイルになると思うのですが。

ユーザー

Re: コマンドプロンプトでネットワークアダプタを有効/無効化したいと思っています。

#3

投稿記事 by ユーザー » 8年前

ありがとうございます。

できました!

ただ2点ほど疑問があります。

まず、以下の画像のように、「このアプリがpcに変更を加えることを許可しますか」というメッセージが出てきます。

Windowsのセキュリティレベル全体を下げるのではなく、このバッチファイルだけ、メッセージを表示しないようにできないでしょうか。

PC_thumb3.png (PNG 画像, 452x242 px)
http://nelog.jp/wp-content/uploads/2015 ... thumb3.png

014023h.png (PNG 画像, 466x235 px)
http://121ware.com/qasearch/1007/doc/an ... 14023h.png

ユーザーアカウント制御の有効 / 無効を設定する方法を教えてほしい。(Windows 10) | 会員サポート > Q&A(よくあるご質問) : @nifty
http://qa.nifty.com/cs/catalog/faq_nqa/qid_15384/1.htm


もうひとつ、(「C:\WINDOWS\system32>」の部分)を書かないと、バッチファイルを直接ダブルクリックしても、「権限の昇格が必要です」というメッセージが出てきます。バッチファイルのショートカットを作り、前の質問にもあるように、そのショートカットを管理者権限で実行することはできますが、直接ダブルクリックしても管理者権限で、実行する方法はないでしょうか?バッチファイル内に何か記述するとかでできmさえんか?

もう一度、よろしくおねがいします。

YuO
記事: 947
登録日時: 13年前
住所: 東京都世田谷区

Re: コマンドプロンプトでネットワークアダプタを有効/無効化したいと思っています。

#4

投稿記事 by YuO » 8年前

ユーザー さんが書きました:まず、以下の画像のように、「このアプリがpcに変更を加えることを許可しますか」というメッセージが出てきます。
Windowsのセキュリティレベル全体を下げるのではなく、このバッチファイルだけ、メッセージを表示しないようにできないでしょうか。
特定のソフトウェアに対して,自動的にHigh Integrityで実行できるようにするのは,UACの意義がなくなるため,当然ながらできません。
力業による回避策としては,タスクスケジューラに登録しておき,schtasks /runで実行する,というものがあります。
ユーザー さんが書きました:もうひとつ、(「C:\WINDOWS\system32>」の部分)を書かないと、バッチファイルを直接ダブルクリックしても、「権限の昇格が必要です」というメッセージが出てきます。バッチファイルのショートカットを作り、前の質問にもあるように、そのショートカットを管理者権限で実行することはできますが、直接ダブルクリックしても管理者権限で、実行する方法はないでしょうか?バッチファイル内に何か記述するとかでできmさえんか?
まず,
ユーザー さんが書きました:(「C:\WINDOWS\system32>」の部分)を書かないと
について。
根本的なところの知識が不足しているように見えますが,「C:\WINDOWS\system32>」はコマンドプロセッサが出すプロンプトであって,ユーザーが入力する部分ではありません。
つまり,バッチファイルに記述する物ではありません。
バッチファイルに書いた場合,
  • 「C:\WINDOWS\system32」というプログラムを実行する
  • 標準出力を,>の後に指定されるファイルに書き出す
という動作になります。

次に,昇格要求のメッセージが出るのは,エクスプローラーからバッチファイルを起動した場合,バッチファイルはMedium Integrityで実行されるのに対し,netshがHigh Integrityを要求するためです。
現在実行しているIntegrityは,ユーザーがどのグループに属しているかを調べればわかります。
そして,コマンドラインから直接的に昇格を要求する方法はないのですが,PowerShellのStart-Processコマンドレットに引数-Verb runasを与えることで,昇格して実行するように要求することができます。
ざっと纏めると,こんな感じでしょうか。

コード:

WHOAMI /GROUPS | FIND "S-1-16-12288" > NUL
IF ERRORLEVEL 1 (
    powershell -Command "Start-Process -Verb runas '%~dpnx0'"
    EXIT /B
)
実際にバッチファイルを書いて試したわけではないので,ちゃんと動作することを保証しませんが。
オフトピック
まとまりがある文章の真ん中に空行を入れられると読みにくいので,空行は段落を分ける為以外に使わないことをお薦めします。
行間の調整は,本来的にはユーザースタイルシートの役割なので。

ユーザー

Re: コマンドプロンプトでネットワークアダプタを有効/無効化したいと思っています。

#5

投稿記事 by ユーザー » 8年前

丁寧にありがとうございます。

ご迷惑をおかけして、申し訳ありません。最近コマンドプロンプトの便利さや面白さに気づいたので、まだまだド素人です。

大変勉強になりましたが、バッチファイルを直接ダブルクリックするのは、実用上必須ではないので、あきらめました。

>力業による回避策としては,タスクスケジューラに登録しておき,schtasks /runで実行する,というものがあります。
これの具体的なコードを教えていただけないでしょうか?

よろしくおねがいします。

YuO
記事: 947
登録日時: 13年前
住所: 東京都世田谷区

Re: コマンドプロンプトでネットワークアダプタを有効/無効化したいと思っています。

#6

投稿記事 by YuO » 8年前

ユーザー さんが書きました:>力業による回避策としては,タスクスケジューラに登録しておき,schtasks /runで実行する,というものがあります。
これの具体的なコードを教えていただけないでしょうか?
何を調べて,何がわからなかったのですか。
特別ややこしいことはないと思いますが。

sleep

Re: コマンドプロンプトでネットワークアダプタを有効/無効化したいと思っています。

#7

投稿記事 by sleep » 8年前

ユーザー さんが書きました: Windowsのセキュリティレベル全体を下げるのではなく、このバッチファイルだけ、メッセージを表示しないようにできないでしょうか。
Windows10って・・・ どのエディションでもローカルセキュリティポリシーを開けましたっけ?

もし、ご使用の環境でローカルセキュリティポリシーが開けるなら
そのバッチファイルのみというのは無理ですが、UACの機能自体は設定レベルのまま有効で 管理者権限昇格の確認を問うプロンプトのみ(バッチに限らず全体的に)表示させなくすることはできます。

1、ローカルセキュリティポリシーを起動 (管理ツール or secpol.msc を実行)
2、セキュリティの設定 ⇒ ローカルポリシー ⇒ セキュリティオプション を開く
3、「ユーザーアカウント制御:管理者承認モードでの管理者に対する昇格時のプロンプト動作」 を選択して右クリックし「プロパティ」を開く
4、プロパティのコンボボックスで 「確認をしないで昇格する」 を選択

以上で、管理者権限昇格の確認を問うプロンプトは表示されなくなります。

sleep

Re: コマンドプロンプトでネットワークアダプタを有効/無効化したいと思っています。

#8

投稿記事 by sleep » 8年前

もし、この設定を適用するのであれば知っておいて欲しいことがあります。
sleep さんが書きました: UACの機能自体は設定レベルのまま有効で
ある意味本当ですが、ある意味 嘘 を言ってます。
実際、Administratorsグループに所属していてもログイン後、未昇格ユーザーですし、Limitedの制限ユーザーのままですが、当然と言えば当然ですが昇格の確認プロンプトを無視して動作させるのですから 「ユーザーアカウント制御の設定」のスライダーは一番下になります。

ユーザー

Re: コマンドプロンプトでネットワークアダプタを有効/無効化したいと思っています。

#9

投稿記事 by ユーザー » 8年前

ありがとうございます。

タスクスケジューラーのほうがセキュリティレベルが高そうなので、この方針で行きたいと思います。

C:\Users\ユーザー名>schtasks /run /tn C:\Users\ユーザー名\Desktop\バッチファイル名.bat

ド素人なのでよくわからないのですが、コマンドプロンプトを普通に立ち上げて、このように入力しても、ボリュームラベルが間違っていますみたいなエラーになります。

よろしくおねがいします。

参考にしたページです。

Tech TIPS:タスクスケジューラの基本的な使い方(Windows 7/8/8.1編) - @IT
http://www.atmarkit.co.jp/ait/articles/ ... ws049.html

Windows Server 2003 で Schtasks.exe を使用してタスクをスケジュールする方法
https://support.microsoft.com/ja-jp/kb/ ... ookmark-13

YuO
記事: 947
登録日時: 13年前
住所: 東京都世田谷区

Re: コマンドプロンプトでネットワークアダプタを有効/無効化したいと思っています。

#10

投稿記事 by YuO » 8年前

ユーザー さんが書きました:C:\Users\ユーザー名>schtasks /run /tn C:\Users\ユーザー名\Desktop\バッチファイル名.bat

ド素人なのでよくわからないのですが、コマンドプロンプトを普通に立ち上げて、このように入力しても、ボリュームラベルが間違っていますみたいなエラーになります。
「みたいなエラー」ではなく,エラーメッセージをコピーして貼り付けるようにして下さい。

で,今回の問題は,/tnの意味を理解していないことでしょう。
/tnには,タスクスケジューラに登録しているタスク名 (タスクスケジューラを起動した時に,「名前」に出てくるもの) を指定します。
例えば,

コード:

schtasks /run /tn ネットワーク有効化
のようになります。
タスクスケジューラに登録した名前は何ですか。おそらく,C:\Users……のような名前は付けられないはずです。

アバター
へにっくす
記事: 634
登録日時: 11年前
住所: 東京都

Re: コマンドプロンプトでネットワークアダプタを有効/無効化したいと思っています。

#11

投稿記事 by へにっくす » 8年前

ユーザー さんが書きました:Tech TIPS:タスクスケジューラの基本的な使い方(Windows 7/8/8.1編) - @IT
http://www.atmarkit.co.jp/ait/articles/ ... ws049.html

Windows Server 2003 で Schtasks.exe を使用してタスクをスケジュールする方法
https://support.microsoft.com/ja-jp/kb/ ... ookmark-13
2番目のリンクが直接「タスクの実行する方法」につながってる点からして、
何か勘違いしてるように見受けられます。
タスクスケジューラですよ?
まずタスクを登録する必要がありますよね。
その登録した名前で、タスクを実行するのです。
よく読みましょう。
written by へにっくす

ユーザー

Re: コマンドプロンプトでネットワークアダプタを有効/無効化したいと思っています。

#12

投稿記事 by ユーザー » 8年前

ありがとうございます。

できました!

「最上位の権限で実行する」にチェックを入れて初めて、うまくいきましたが、このタスク1つぐらいなら、これはセキュリティ的に問題ないでしょうか?




また、文章を書いているときなど、オフラインでよいときには、セキュリティ的に安全にするために、こまめにネットを切って、作業しようと思っています。ネットを切る作業がめんどくさくて、簡単にできる方法はないかと考えて、今回質問させていただきました。

しかし、公衆無線LANなど危ないスポットを使うことはない場合、
セキュリティ的に安全にするために、こまめにネットを切るというのはどのまで効果があるのでしょうか?

ほとんど意味ないが、やらないよりはマシという程度でしょうか?



どうぞよろしくおねがいします。

ユーザー

Re: コマンドプロンプトでネットワークアダプタを有効/無効化したいと思っています。

#13

投稿記事 by ユーザー » 8年前

ありがとうございました。

これで終わりにします。

閉鎖

“C言語何でも質問掲示板” へ戻る