web-dev-qa-db-ja.com

ネットワーク接続/切断時にコマンドを起動する方法

ワイヤレスリンクが確立されたら、Webフォームを使用して認証する必要があるWiFi接続があります。 curl / curlIE を使用するスクリプトを使用して認証を自動化する方法を知っています。

しかし、特定のネットワーク接続に接続するたびにスクリプトを呼び出すようにWindowsに依頼するにはどうすればよいですか。

スクリプトのコマンドラインでワイヤレスプロファイルの名前またはESSIDを受け取ることにも興味があります。

58
dolmen

Windows Vista以降では、スケジュールされたタスクとイベントログトリガーを使用してこれを実行できます。最初のイベントはネットワークに接続することによってトリガーされ、それを実行するためにどのネットワークに接続しなければならないかを指定します。 2番目のイベントは、ネットワークから切断されたときに発生します。各イベントは指定した特定のタスクを実行します。おそらくあなたが書いたスクリプトが書かれています。

ネットワークに接続したときのイベントを設定する

  1. タスクスケジューラを開きます。スタートメニューの検索ボックスにTask Schedulerと入力するか、Programs | Accessories | System Toolsの下に表示されます。
  2. タスクスケジューラライブラリで、右側の[アクション]パネルの[Create Task]をクリックして新しいタスクを作成します。

    add task

  3. タスクに「ネットワーク接続の検出」などの名前を付けます。

  4. Triggersタブで、New...をクリックし、ドロップダウンボックスからOn an Eventを選択します。

    dropdown trigger

  5. 以下の設定を選択してください。

    • ログ:Microsoft-Windows-NetworkProfile/Operational
    • ソース:NetworkProfile
    • イベントID:10000
  6. 「OK」をクリックしてから、「Conditions」タブに進みます。
  7. Start only if the following network connection is availableのボックスをチェックして、スクリプトを実行したいネットワークを選択します。
  8. Actionsタブで、New...をクリックしてStart a programを選択します。実行するスクリプトファイルの場所を入力してから、OKをクリックします。
  9. 必要な他のタスク設定を設定してから、OKをクリックします。

ネットワークから切断したときのイベントを設定する

  1. 上記のステップ2〜4に従ってください
  2. 以下のイベントトリガー設定を使用してください。
    • ログ:Microsoft-Windows-NetworkProfile/Operational
    • ソース:NetworkProfile
    • イベントID:10001
  3. まったくネットワークに接続されなくなるため、手順6〜7はスキップしてください。したがって、このイベントはあなたがanyネットワークから切断するとany実行されます。
  4. 手順8〜9をもう一度実行してください。
78
nhinkle

Start only if the following network connection is availableは、Windows 10周年記念アップデート後に壊れているようです。代わりにこのカスタムトリガーを使用してください。

<QueryList>
  <Query Id="0" Path="System">
    <Select Path="Microsoft-Windows-NetworkProfile/Operational">
     *[System[(EventID=10000)]] and *[EventData[(Data[@Name="Name"]="YOUR-SSID-HERE")]]
    </Select>
  </Query>
</QueryList>

企業ネットワークでは、SSIDの代わりにドメインの名前を使用してください。この場合、イベントのカテゴリは「Domain Authenticated」であり、「Private」ではありません。

9
krrr

Thinkpadを使用している場合は、Windows 7、Vista、およびXPで使用可能なThinkVantage Access Connectionを利用できます。

ThinkVantage Access Connectionは、ThinkPadに付属のネットワーク接続管理ソフトウェアです。そうでない場合は、サポートサイトからダウンロードできます。あなたの場所のための新しいプロフィールを作るとき、その場所があるときに開始するためにプログラムのリストを構成したいかどうかを尋ねるウィザードがあります。それはネットが出ているときにもプログラムを殺すことを申し出る。

ソフトウェアはまったくロケーションプロファイルなしで動作するように設定することができ、それがおそらく初期状態です - その場合、wifiが接続されたときに起動するプログラムのリストを設定する方法はありません。接続を作成する必要があります。リストを含むプロファイル。

私自身の経験上、私はソフトウェアの使用を避けようとしています - 接続しない場合よりも接続に時間がかかり、起動時に新しい接続を確立できない場合があります(手動で再接続することで解決できます)。

このソフトウェアは、シンクパッドに付属のWIFIドライバでのみ動作します。

ちなみに、このソフトウェアは、プロファイルを作成する際のオプションとして、ユーザーがログインする前に接続を確立することを提案します。これがなければ可能であるかどうか私は知りません。

4
Tankman六四