Windowsのログオン前にVPN接続する anchor.png

外部のネットワークと社内のローカルネットワークを接続出来るVPN接続は便利な機能です。

社内のローカルネットワークのActive Directoryを使用してドメイン接続するWindowsノートPC(ローカルアカウントが使えない)を自宅に持っていき,ドメインアカウント(ADアカウント)でログオンしようとすると,この時にはVPN接続されていないため当然ドメインアカウントでWindowsにログオン出来ない。

これは,Active Directory環境が社内ローカルネットワークでしか使用出来ないから。

つまり,このようなPCを自宅に持って行ってADアカウントでWindowsにログオンする場合,前もってそのPCを社内のローカルネットワークにVPN接続しておく必要がある。

しかし,Windows PCのVPN接続操作はログオン後に操作できるようになっているので,このままではVPNに接続して社内ドメインのADアカウントでWindowsにログオンするという手順が実現できない。

この問題に対応するにはいくつかの方法があるのだが,PC側でWindowsにログオンする前にVPN接続する方法で対応してみる。

注意することとして,VPN接続するためには前もってグローバル IPネットワーク(公衆回線や通信キャリアの閉域網・・・)のアクセスポイントのどこかに接続しておく必要がある。

Page Top

タスクスケジューラを使用する方法 anchor.png

タスクスケジューラは,ログオン後に定期的に処理を行ったりする場合に利用するものだが,登録する時にログオンしていなくても実行出来るようにすることが出来る。

この機能を使ってPCが電源ON後にログインしていない状況でも,VPN接続するようにしてみる。

Page Top

VPN接続するBATファイルを作成する anchor.png

まず,VPN接続をコマンドで行えるBATファイルを作成する。このとき使用するVPN接続は,既に作成されていて接続出来るようになっているのが前提。

vpndial.batを作成します。

@echo off
rasdial "VPN接続名" 接続する時のユーザー名 接続する時のパスワード

作成したvpndial.batを実行PATHが通っているディレクトリに置きます。(例:C:\WinApl\exe)
vpndial.vbsを作成して同様に実行PATHが通っているディレクトリに置きます。

CreateObject("WScript.Shell").Run "c:\WinApl\exe\vpndial.bat",0

vpndial.batをそのまま実行すると,実行している時のウィンドウ画面が表示されてしまいます。なので,vpndial.vbsからvpndial.batを実行するようにするとこのウィンドウ画面が表示しないようにすることが出来ます。

Page Top

タスクスケジューラで実行するプログラムを用意する anchor.png

タスクスケジューラでは,定期的にVPN接続されているかどうか確認し,接続されていない場合は上記のvpndial.vbsを使用してVPN接続するようにします。

このために,PowerShellスクリプトを作成します。
vpnconnect.ps1ファイルを以下の内容で作成します。

$A = ipconfig | Select-String 192.168.25
if($A.length -eq "0"){
    C:\WinApl\exe\vpndial.vbs
}else{
    echo "OK"
}

ipconfigコマンドを使って接続されているか確認しています。
192.168.25.xは,vpnで接続してアサインされるネットワークアドレスの例です。

BATファイルvpnconnect.batの場合は,

@echo off
set A=
for /f "usebackq delims=" %%i in (`ipconfig ^| findstr 192.168.25`) do set A=%%i
if not defined A (
    C:\WinApl\exe\vpndial.vbs
) else (
    echo OK
)

でも同じように動作します。

vpnconnect.vbsも作成します。

CreateObject("WScript.Shell").Run "powershell c:\winapl\exe\vpnconnect.ps1", 0

vpnconnect.ps1とvpnconnect.vbsを,実行PATHが通っているディレクトリに置きます。(例:C:\WinApl\exe)

Page Top

タスクスケジューラに登録 anchor.png

  • タスクスケジューラの起動
    Windows10では,Windows + Rキーを押して検索にタスクスケジューラと入力し,タスクスケジューラをクリックして,タスクスケジューラを起動する。
  • 右ペインのタスクの作成をクリックする
  • 名前をVPN接続として以下のように登録する
    task1.png
    「ユーザーにログオンしているかどうかに関わらず実行する」にマークする。
    「最上の特権で実行する」にマークする。
  • トリガータブをクリックして以下のように登録する
    task2.png
    開始時間は,好きな時間にする。
    繰り返し間隔は,ここでは15分にしている。15分間隔でVPN接続されているか確認し,接続されていなければVPN接続するようになります。
  • 操作タブをクリックして以下のように新規登録する
    task3.png
    プログラム/スクリプトに,上記で作成したvpnconnect.vbsを設定する。
  • OKボタンをクリックして,登録を完了する

これでタスクスケジューラに登録出来た。

PCを電源オン後は,15分間間隔で自動でVPN接続するようになります。すでに接続している場合は,そのままで何もしません。


新しくコメントをつける

題名
ゲスト名
投稿本文
より詳細なコメント入力フォームへ

トップ   凍結 差分 バックアップ 複製 名前変更 リロード   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom
Counter: 251, today: 1, yesterday: 0
最終更新: 2023-11-07 (火) 15:54:26 (JST) (173d) by yuji