スクリーンセーバーの実行中にすべてのインターネット接続を無効にするにはどうすればいいですか?

スクリーンセーバーの実行中にすべてのインターネット接続を無効にするにはどうすればいいですか?

スクリーンセーバーを起動するときに、デスクトップ PC をインターネットから完全に切断できるかどうか疑問に思っています。また、スクリーンセーバーがシャットダウンしたときに、以前に選択したネットワーク (現在は Wi-Fi カードを使用しています) に再接続したいと思います。現在、スクリーンセーバーの起動時にバッチ ファイルを実行してバックアップを開始し、その後バッチ ファイルで作成したスクリーンセーバーを起動して、終了時に別のバッチ ファイルを呼び出すようにしています。別のオプションとして、.NET API を使用してこれを行うこともできますが、Windows の機能とのインターフェイスに関するリソースを見つけることができませんでした。Windows 8 Pro を使用しています。

ありがとう!

答え1

はい、少しスクリプトを書けば可能です。

$adaptor = Get-WmiObject -Class Win32_NetworkAdapter | Where-Object {$_.Name -like "*Intel(R) 82567LM-2 ギガビット ネットワーク接続*"}
$ssrunning = (Get-Process -name notepad -ErrorAction SilentlyContinue)
$ssrunning の場合{$adaptor.Disable()}
そうでない場合{$adaptor.Enable()}

Windows 8.1 および 2012 では、実際にはもっと簡単です。Powershell 4 というコマンドレットがありenable-netadpterdisable-netadapterこれを使用するとプロセスが簡素化されますが、これはより汎用的であり、ほとんどのマシンで動作するはずです。

Powershell プロンプトから を実行して、Get-WmiObject -Class Win32_NetworkAdapterネットワーク アダプタ名を一覧表示します。スクリプトでは、Intel(R) 82567LM-2 Gigabit Network Connectionをアダプタの名前に置き換えます。

また、スクリーンセーバーのプロセス名も知っておく必要があります。mystify.scr の場合、プロセス名は mystify になると思います。notepadスクリプト内の をプロセス名に置き換えます。

この Powershell スクリプトを管理者特権で実行する (アダプターを有効/無効にする必要があります) だけで、おそらく Windows のスケジュールされたタスクとして実行すれば、準備完了です。

関連情報