Windowsのシステムエラー1219の対応策

Windowsでネットワークドライブに接続する際に発生するシステムエラー1219について解決策を探ってみたのでメモしておく。

Windowsでエラー(1219)が発生

問題が起きたのは、クライアント(Windows7 Pro 32bit)からサーバ(Centos 6.5 32bitで動くsamba3.x)へアクセス時。

Windowsのコマンドプロンプトへ次のnet use コマンドを打ち込んでネットワークドライブを割り当て(マウント)をしてみる。

[shell]

net use N: \192.168.0.10share password /USER:user01

[/shell]

通常であれば「コマンドは正常に終了しました」と表示される。また、認証に問題がある場合は「システムエラー5が発生しました。」と表示される。だが、「システムエラー1219が発生しました。」と表示された。

システムエラー1219とは一体何か

エラーメッセージには次のように書かれている。

システム エラー 1219 が発生しました。

同じユーザーによる、サーバーまたは共有リソースへの複数のユーザー名での複数の接続は許可されません。サーバーまたは共有リソースへの以前の接続をすべて切断してから、再試行してください。

つまり、「コンピュータの1ユーザから1台のサーバへ複数の認証情報(ユーザ名とパスワード)でアクセスしようとしていること」に対するエラーを表している。しかし、現象が起きた時はメッセージに書かれているようにあらかじめnet useコマンドで切断を行っていた。

[shell]

net use N: /DELETE

[/shell]

原因はWindows

切断を行っているのに認証情報が残ってしまうのはWindowsが原因として考えられた。何が原因なのか断言できないが個人的にはWindowsのキャッシュが影響している可能性が考えられた。

@ITの記事にも「smbプロトコルの仕様ではない。クライアント側の制限によるもの。」と書かれていた。

基礎から学ぶWindowsネットワーク:第21回 ファイル共有プロトコルSMB/CIFS(その2) (3/3) – @IT

解決策

調べてみたものの根本的に解決する方法(切断して別の資格情報で再接続)が見つからなかった。見つかった解決策は名前解決で別サーバとして認識させること。

〇lmhostを編集してホスト名を割り当てる(管理者権限が必要)

Windowsにはコンピュータごとにホスト名をIPに対して割り当てられるのでこれを使う。編集の方法は検索すれば出てくる。

〇DNSサーバでホスト名割り当てる

特にコンピュータの台数が多い場合は個々のコンピュータの設定を変更せずに可能。一般の家庭向けルータでDNS機能があるものは少ないと思う。

〇NetBIOSで名前解決してアクセスする

サーバ側で事前に設定が必要。Sambaでファイルサーバを構築しているならsmb.confにnetbios nameで設定可能。UDP/137の解放をすることも忘れずに。

最近のWindowsだとこの現象が起きないからバージョンとかアップデートの兼ね合いもあるのかもしれない。自分でも起きる条件がつかみきれていない昨今。難しい。

青梅ライナーで快適に東京まで行った

先日、朝早く出かける諸用があり以前から気になっていた青梅ライナーに乗ってみることにしました。
JR公式のダイヤを見ればわかる通り朝早く出発します。

料金は乗車券の他に特急券(500円)が必要でした。特に申し込みもしなかったので、当日券で乗車することにしました。

oume

特急券を無事に購入して乗車しました。指定席であるため落ち着けます。車内が静かなこともあり気がつくと眠っていました..。

特急券500円で快適に東京まで行けたのでたまには利用してみたいと思います。

Firefoxの例外証明書の設定をする

FirefoxのSSL証明書の例外を設定する必要があったのでメモをしておきます。プロファイルを別のパソコンにコピーするとき等に便利かとは思います。再起動後に設定を起動前の状態に復元される環境などでも便利かとは思います。

FirefoxのProfileIDを取得するのはdirをfindに渡して検索結果を一度、環境変数に代入してから作業したほうがよいみたいです。予めネットワークかローカルに設置しておいて実行すると便利です。

ネットワークの場合はcopyコマンドでコピーするとOKだと思いますね。ファイルのパスは以下のとおりです。

C:Users【ユーザー名】AppDataRoamingMozillaFirefoxProfiles【任意のID】.defaultcert_override.txt

cert_override

Cert override.txt | MDN

Bitcasa(Beta)をUbuntuに導入してみた

ここ最近、注目されているクラウドサービスのBitcasaですがLinux版も公開されたという記事を前に読んだことを思いだしたので、この機会にど導入することにしました。公式サイトに飛ぶと導入方法が記載されているのでそれに従えばかんたんに導入出来ました。

bitcasa

インストールが終わってカレントディレクトリを覗いてみてもそれらしいディレクトリができていないのでbitcasaと端末で入力してみるとちゃんとヘルプが表示されました。

[shell]
koyama@ubuntu:~$ bitcasa
エラー: 引数が少なすぎます
使い方: mount -tbitcasa <アカウント> <マウントポイント> [-o <オプション>]
<アカウント> Bitcasa ユーザー名
<マウントポイント> Bitcasa ファイルシステムをマウントするディレクトリ
オプション:
cachedir=<パス> – キャッシュディレクトリの場所
cachereset – キャッシュをリセット
cachesize=<サイズ> – 最大キャッシュサイズ(GB)
cred=<path> – ログイン情報を含む .ini ファイルの場所
password=<パスワード> – Bitcasa アカウントのパスワード
または mount.bitcasa –version
現在のバージョン番号を表示
または mount.bitcasa –help
ヘルプを表示
[/shell]

これにそってmountコマンド入力してみます。以下は例です。マウントポイントを/mntにしておきました。任意の場所に変更することもできます。実行するときにsudo(root権限)をつけてください。

[shell] koyama@ubuntu:~$ sudo mount -tbitcasa mail@dottab.com /mnt -o password="yourpassword" [/shell]

パスワードを入力するのに抵抗があるなら入力を求めるshellscriptを組んでみてもいいかもしれません。ただ実行権限が一般ユーザーにはないと思うので気をつけてください。