アカウントにログインせずにPPPoE接続を自動開始する

Windowsのタスクスケジューラを使用して実行できる1つのトリックについてお話ししたいと思います。

Windows 7をインストールし、市のケーブルプロバイダーからのPPPoE接続も持っています。

タスクは、Windowsでローカルネットワークへの接続が確立された直後にこの接続を有効にし、ユーザーがまだ自分のアカウントにログインしていないことです。

Runetにあるほとんどの指示は、起動への接続ショートカットの作成に要約されています。 別のケースがあります。 ユーザーアカウントを入力する前でも接続が確立されている必要があります。

今後は、他のコマンドを同じ方法で実行できます。有線ネットワークだけでなく、Wi-Fiにも接続できます。

初心者向けに、スクリーンショットの完全な説明を提供します。



だから私たちが持っているもの:

•Windows。複数のアカウントがあり(わかりやすくするために別のアカウントを作成しました)、どのアカウントにも自動ログインしたくない場合。



•PPPoEを使用した接続。目的のネットワークの初期化直後に有効にする必要があります。

•ローカルネットワーク上のインターネットコンピュータを個別に接続および配布することにより、ルートにこの問題を解決するルーターはありません。 まあ、または原則としてルーターは必要ありません。



接続の一意の識別子を見つける(GUID)



[スタート]-[コントロールパネル]-[システムとセキュリティ]-[管理]の下の[イベントログの表示]を選択します。



左側に開くウィンドウで、「アプリケーションとサービスログ」/「Microsoft」/「Windows」/「ネットワークプロファイル」/「実行中」というパスに沿って進みます。イベントコード「10000」の行があります。



その中で、目的のネットワークに関連するものを見つけました。「ネットワーク2」です。 [詳細]タブに切り替えます。ここに、必要なGUIDがあります。



すぐに、XMLモードを有効にして、「 ...



」のXML表現の一部を表示できます。



別のオプションとして、次の方法でレジストリに目的のGUIDを見つけることができます。

HKEY_LOCAL_MACHINE \ソフトウェア\ Microsoft \ Windows NT \ CurrentVersion \ NetworkList \プロファイル



必要なGUIDは「{80362A4A-DAFB-4B7E-B00C-22AC773E35A3}」です。

イベントのXML表現の例:

 <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event"> <System> <Provider Name="Microsoft-Windows-NetworkProfile" Guid="{FBCFAC3F-8459-419F-8E48-1F0B49CDB85E}" /> <EventID>10000</EventID> <Version>0</Version> <Level>4</Level> <Task>0</Task> <Opcode>0</Opcode> <Keywords>0x4000200000000000</Keywords> <TimeCreated SystemTime="2013-04-28T11:26:41.252839400Z" /> <EventRecordID>157</EventRecordID> <Correlation /> <Execution ProcessID="572" ThreadID="1664" /> <Channel>Microsoft-Windows-NetworkProfile/Operational</Channel> <Computer>HWin7VM0-PC</Computer> <Security UserID="S-1-5-19" /> </System> <EventData> <Data Name="Name"> 2</Data> <Data Name="Description"></Data> <Data Name="Guid">{80362A4A-DAFB-4B7E-B00C-22AC773E35A3}</Data> <Data Name="Type">0</Data> <Data Name="State">17</Data> <Data Name="Category">1</Data> </EventData> </Event>
      
      





ここで、ネットワーク2ネットワークプロファイルが接続されていることがわかり、そのGUIDが「 {80362A4A-DAFB-4B7E-B00C-22AC773E35A3}



」行に表示されています。



.batファイルを作成する



システムユーザーまたは別のアカウントから接続を確立する場合は、すべてのユーザーが使用できるようにPPPoE接続が構成されていることを確認する必要があります。 これは、通常使用するアカウントにログインパスワードがない場合に必要です。 これについては後でお知らせします。

接続がすでに設定されていると仮定します。あなたがする必要があるのは、書く必要がある.batファイルを作成することだけです

rasdial MyDearProvider login password





ここで、rasdialは接続を確立できるコンソールアプリケーション、「MyDearProvider」は接続するPPPoE接続の名前、「login」と「password」はそれぞれ、接続のログインとパスワードです。 コンソールですぐに、このファイルを実行してインターネットに接続しているかどうかを確認できます。または、次の行でpauseコマンドを設定してファイルを起動することにより、コンソールなしで実行できます。ただし、後で一時停止コマンドを削除することを忘れないでください.batファイルを実行して実行すると、インターネットに接続されます。



スケジューラーでタスクを作成する



[スタート]-[コントロールパネル]-[システムとセキュリティ]-[管理]の下の[タスクスケジュール]を選択します。



タスクスケジューラが起動します。左側で[タスクスケジューラライブラリ]を選択する必要があります。ウィンドウの右側で[タスクの作成...]をクリックします。



開いたウィンドウの[全般]タブで、[名前](たとえば、[セキュリティ設定]の下にある[Autoconnect_MyDearProvider])を入力します。接続が行われる目的のユーザーを選択し、[ユーザー登録に関係なく実行する]ユーザーはアカウントを入力するためのパスワードを持っていないため、ユーザーがログインしていない場合、接続は確立されません。 アカウントのパスワードがない場合は、ユーザーとして「システム」を選択します。 タスクの最高の権限は必要ありません。



「トリガー」タブが最も興味深いでしょう。 開いたウィンドウの[作成]ボタンをクリックし、ドロップダウンリストの[タスクの開始:]で[イベントが発生したとき]を選択します。

「詳細設定」で遅延開始を設定できます。15秒に設定しましたが、この値を5秒に変更しました。これをすべてテストするのを待つのにうんざりしていました。

[パラメータ]で[カスタム]を選択し、少し右にある[イベントフィルターの作成]をクリックします。



イベントフィルタを作成するためのウィンドウが表示されます。 [フィルター]タブに表示されるツールでフィルターフレームを埋めてから、作成されたフィルターのXML表現に移動できます。

イベントログのフィールドで、「アプリケーションとサービスログ」/「Microsoft」/「Windows」/「ネットワークプロファイル」/「実行中」を選択します。 私たちは「ランニング」ドーの近くに置きました。



次に、イベントソースとして「NetworkProfile」を選択します。

イベントコードは「10000」を示します。

次のようになります。



「XML」タブに移動して、次を確認します。



これを編集する必要があります。そうしないと、トリガーはPPPoE接続自体を接続する場合でも、一般にネットワークを接続するときに機能します。

「リクエストを手動で変更する」チェックボックスをクリックします。

今後、「フィルター」タブを使用してこのフィルターを構成できないという警告が表示されます。「はい」をクリックして続行することに同意します。 次のものが得られます。



カーソルがある場所(終了タグの直前)で、もう1つの条件を追加する必要があります。

and *[EventData[Data[@Name='Guid']='{80362A4A-DAFB-4B7E-B00C-22AC773E35A3}']]



」を追加し、GUID "{80362A4A-DAFB-4B7E-B00C-22AC773E35A3}を変更します「彼自身の一部で。



[OK]をクリックしてフィルター設定ウィンドウを閉じ、もう一度[OK]をクリックしてトリガー設定を閉じます。 新しく作成されたトリガーを選択し、「変更...」をクリックして、必要な時間の「延期:」設定が追加パラメーターに残っていることを確認できます。何らかの理由で、このオプションは初めて保存されませんでした。

[アクション]タブで[作成]をクリックし、開いたウィンドウで[プログラムの実行]を選択してから[参照...]をクリックして、.batファイルの場所を指定します。 ところで、.batファイルを作成する代わりに、単に[プログラムまたはスクリプト]フィールドにrasdialコマンドを記述し、引数フィールドに「MyDearProviderログインパスワード」を入力することができます。これは.batファイルを実行するのと同じです。 ただし、目的のフィールドを検索するためにタスクスケジューラの設定を確認するよりも、テキストファイルを編集する方が便利だと思われます。



[OK]をクリックし、[条件]タブに移動します。

ここで、これが必要でない場合は、「主電源で動作しているときのみ実行する」チェックボックスを削除します。 「次のネットワークに接続されている場合のみ実行する」オプションを設定します-構成したばかりのネットワークを設定します。 前に構成したフィルターにはこの条件が既に含まれているため、これは必要ありませんが、何が問題になるか分からないため、この設定を有効のままにしておくことにしました。



そして最後に、「設定」タブ。 ここでは、「要求に応じてタスクの実行を許可する」と「要求に応じて停止しない場合は強制的にタスクを停止する」を有効にしておくことができます。 「時間がかかるタスクを停止する:」のチェックを外す必要があります。

「最初に接続できない」などの状況を回避するには、「再起動後:」チェックボックスをオンにして、たとえば1分などの待機時間を設定します。 再起動の試行回数を6に設定しました。6分で接続するはずです。



最後に、「OK」をクリックして、必要な情報を取得します。



右側で「すべてのタスクのログを有効にする」という碑文をクリックする必要があります。これはタスクをデバッグするときに役立ちます。 設定後、ログを無効にすることができます。

「ネットワークと共有センター」に移動します。



左側で、「アダプター設定の変更」をクリックして、「ネットワーク接続」に入ります。 「ローカルエリア接続」を選択し、オフにします。 その後、再度オンにして、15秒(またはトリガーで設定した時間)待機します。 PPPoE接続の名前の下では、しばらくすると接続ステータスが変更され、タスクスケジューラのログのイベントの説明が多少なります。

次に、コンピューターを再起動して、ユーザーを選択するプロンプトを待つことで、コンピューターの動作を確認できます。 ユーザーを選択せず​​にしばらく待つと、ユーザーがログインしていない場合でも、WindowsはPPPoEに接続する必要があります。 静的IPアドレスがある場合、コンピューターがインターネットに接続されていることを確認する方が簡単です。 私の場合、IPアドレスは動的に発行されるため、DDNSサービスを使用します。

そのため、現在の時間を検出し、タスクログ内のログの参照先を確認して、コンピューターを再起動します。

残念ながら、システムまたは別のユーザーからタスクを実行する場合、管理者から「rasdial MyDearProvider / disconnect」コマンドを実行するだけでPPPoE接続を切断できます。



おわりに



なぜこれが必要なのか-自分で決めてください。 たとえば、VNCを介してコンピューターにログオンし、必要に応じて再起動できるようにするためにこれが必要でした。

WiFi接続を試してみたい人のために、必要なログは次のとおりです。「アプリケーションおよびサービスログ」/「Microsoft」/「Windows」/「WLAN-AutoConfig」/「操作可能」。 そこで、SSIDによってWiFiネットワークへの接続をキャッチできます。

UPD :「しかし」1つあります。Windowsが休止モードを終了した場合、10000コードはNetworkProfileログに書き込まれません。 ただし、 Windows 7はイベント番号300をMicrosoft-Windows-Diagnostics-Performanceログに書き込みます 。 別のトリガーを追加して、タスクを有効にすることができます。 これは、コンピューターが静止している場合に非常に当てはまります。



このトピックで使用された資料:



superuser.com/questions/262799/how-to-launch-a-command-on-network-connection-disconnection-独自のフィルターを使用したタスクの作成の説明。

social.technet.microsoft.com/Forums/en-US/winservergen/thread/fac16f3c-d088-4d66-83d8-7139261dea83-エラーが発生したときにネットワークをトレースする方法。 前のリンクとほぼ同じですが、もう少し説明します。

superuser.com/questions/92414/how-to-run-a-program-when-connecting-to-a-to-a-specific-network-in-windows-7-WiFi接続の場合。



All Articles