2014年2月22日土曜日

net useコマンドでファイルサーバに接続できなくなった

Windowsでネットワークドライブの追加を行うコマンドとして、net useコマンドがあります。
これで先日ハマったことを書き残しておく。

ネットワークドライブ接続をバッチ化しており、net useコマンドを利用していました。
バッチを書いておきこれをスタートアップに登録しておくことで、
マシン起動時にネットワークドライブを自動で接続するようにしていました。
例えば以下みたいな感じで。

> net use Z: \\hogehoge.com\hogehoge /user:USERNAME PASSWORD

最近ファイルサーバに接続できなくなる現象が発生し、原因を調査。
ファイルサーバにpingで確認したり、
他マシンから接続できることを確認したり、
ネットワークドライブを切断→再接続をしたり、
マシンを再起動したり、
...

通信/環境に問題なさそうだったので、
バッチのコマンドをよーく確認していると、
余計なスペースが入っていたことが判明。
↓例えばこんな感じ(サーバ名とユーザー名とパスワードの間に半角空白が2つ入っています)
>net use Z: \\hogehoge.com\hogehoge  /user:USERNAME  PASSWORD
これを直したあとにバッチを実行すると、なぜか接続できた。
まさか空白が多いと問題ある?とか思い、少し調べると、
以下の仕様が見つかりました。

接続時に認証情報を指定する際、パスワードが存在しないユーザー名を指定したい場合、パスワードを指定しない(=空白文字を指定)する

つまり、空白文字を余計に入れることで、パスワードが省略され、
なおかつ、PASSWORDって余計なオプションが付加されてコマンドが実行されたっぽい。

うーん、この仕様...

0 件のコメント:

コメントを投稿