特にセキュリティの厳しい無線 LAN 環境ではログインしてから実際にネットワークに繋がるのにいろいろ検査をするらしく時間がかかります. 結果, ネットワークドライブの自動接続がタイムアウトで失敗することがあります. 私はメールログをネットワークドライブ上に置いて違う PC からでも既読情報やログを扱うようにしているのですが, タイムアウトしてしまうとメーラがログのあるドライブにアクセスできません. いちいちファイルエクスプローラから該当ドライブを覗く (ファイル一覧情報を取得するタイミングで再接続するらしい) 必要があり手間です.
ネットワークに繋がったタイミングが分かれば, その段階で net use コマンドを発行すれば済むはずです. というわけでそういうコマンドを作ってみました. こちらです. 第一引数にネットワークコンピュータで繋げようとする PC の IP アドレスなど適当なホスト名を指定すると, 繋がるまで待ってくれます. 接続確認は samba のポート (tcp 445 番) ですが 第二引数で別の番号を指定することもできます. また第三引数はタイムアウトの時間です. 5 秒単位で指定します. 省略時は 30, およそ二分半です. タイムアウトした場合は 1 (接続確認した場合は 0) を返すので, 適当にバッチファイルで
d:\tools\cui\tcpconnect 192.168.0.3 if %ERRORLEVEL% == 1 exit net use L: \\192.168.0.3\hoge |
とでも書いておくとネットワークにつながったら 自動でネットワークドライブに再接続するようになります. スタートアップに仕込んでもいいですし, メーラ起動スクリプトにしこんでいてもいいでしょう.
ところでセキュリティが厳しすぎる環境だと, ログインしてからネットワークにつながり実際に使えるまで長い時間がかかります. すなわち PC の前に座ってから
これをくぐり抜けるにはどうすれば考えてみました. 自動ログインでログインした後スタートアップで自動ログインを無効にして 4. の セキュリティチェックをかいくぐればいいはずです. すなわち
3 や 6 の自動ログイン設定・解除の方法ですが, そういうプログラムを作れば済むはずです. こちらです. これはレジストリの AutoAdminLogon あたりをいじるだけなのですが, 設定時に自分のログイン ID, パスワードをレジストリに書き込む必要があります. そのため, まずそれらの情報を
autologin -f [ID] [pass] > pass.txt |
というわけで, 上述のスタートアップで動かすバッチファイルの先頭に
d:\tools\cui\autologin -u %windir%\system32\rundll32.exe user32.dll,LockWorkStation |
d:\tools\cui\autologin -s pass.txt |
なお, あくまでそうやったら回避できるということを示しただけです. 自動ログインをチェックしているということは, それをさせたくないというネットワークポリシーがあるはずです. 守りましょう ;-p