windowsXPでネットワークドライブに自動的にログインする方法

2009/11/04(水) コマンドライン部分が間違っていたので修正しました。


windows2000では、起動時に自動でネットワークドライブにログインできた。windowsの起動途中でパスワードを聞いてきて、そこでパスワードを入力すればネットワークドライブへのログインを自動でやってくれる。メールの保存先をネットワークドライブに設定していたりすると、自動でログインしておいてくれると便利だったりする。
ところが、windowsXPでは起動時にネットワークドライブに自動的にログインしてくれない。どこかで見たが、XPの起動を高速化するための仕様らしく、起動時にネットワークドライブに接続するのをやめたそうだ。ログインするには、手動でネットワークドライブのアイコンをダブルクリックして、ログインしないといけない。ログインするネットワークドライブがひとつならまあ良いが、複数あるとなかなかめんどくさい作業になる。
そこで、この作業を自動化できないか調べてみた。

実現方法

大まかに言って実現する方法は以下の2通りがある。

  • バッチファイルを使う方法
  • wshを使う方法

それぞれについて調べた方法を以下に記す。

バッチファイルを使う方法

バッチファイルの方は以下のサイトを参考に。
http://www.techworld.jp/channels/network/34301/
http://www.tkssoft.com/cmd/cmd007.html

基本的には、net use コマンドをバッチファイルに記述して、それをスタートアップに入れておくことで自動ログインを実現できる。コマンドの詳しい説明は先ほどのサイトを参照のこと。


net useコマンドでは、接続するネットワークドライブのドライブ名、パス、user ID、パスワードを指定すればログイン(というか割り当て)できる。書式は以下の通り。

net use x: \\サーバ名\共有フォルダ名 /user:ユー ザー名 パスワード

この方法だとパスワードをバッチファイルに記述しておかないといけないが、パスワードのかわりに「*」を記述しておくと、コマンド実行時にパスワードを聞いてくるようになるので、バッチファイルにパスワードを記述しなくてよくなる。パスワードをバッチファイルに書いておくのが嫌な場合はこの方法で。ちなみにこのとき入力したパスワードは画面には表示されない。
接続したいネットワークドライブが複数あるときは、それぞれ接続するコマンドを作ってバッチファイルに並べて書いておけばいい。が、上記のパスワードを聞いてくる方法の場合、すべてのネットワークドライブのパスワードが同じだとしても、それらを全部いちいち入力しないといけないので、まだめんどくささが残る。すべてのネットワークドライブのパスワードが同じであれば、バッチファイル実行時にパスワードを一度だけ入力し、それを環境変数に保存しておいて、net useコマンドでその環境変数を使う、という方法も考えられる。詳しくは以下のサイトを参照。
http://www.geocities.co.jp/SiliconValley-SanJose/1227/batinput.html
ただこの方法では、パスワードを入力するときにそのまま画面に表示されてしまうので、その点がちょっと気になる。できれば非表示だったり、****のように隠してほしい…。


以上のように、バッチファイルでもネットワークドライブへの自動接続(自動ログイン)が可能。でも、どうもかゆいところに手が届かない感じ。


wshを使う方法はまた別の機会に。