2026年10月3日土曜日

SMB1.0自然消滅?Windowsのおせっかい機能で酷い目に遭ったよ

どうも皆様ぐーてんもるげん。

10月になったのに全然涼しくならなくて、さっさと夏にログアウトして頂きたいなとか思っている私です。

今回のネタもWindowsトラブル関係。またかよー、いい加減にしろよ?だって?
大丈夫です、私も同じくらい憤ってますから。ハイ。

きっかけは久々の起動
 あんまりお話する機会ありませんでしたが、私SE業務で飯食ってます。業務内容は多岐にわたるんですが、たまにある依頼で、外部機器とWindowsを連携してほしい、ってのがあるんです。
 昔はRS232C接続で連携するってモノも多かったんですが、最近は機器からWindowsの共有フォルダにアクセスして、機器からのデータをファイルにして共有フォルダに出力したり、共有フォルダ経由でデータを送り込んだりするパターンのが最近は大半を占めてたりします。
 現場にいらっしゃる方はご理解頂けると思いますが、機器の中にはむかーしから使いまわされているようなものも少なくなくて、何だこれは?化石なんじゃないか?なんてシロモノが現役だったり普通にします。
 こういう「枯れた」機器は悪いことばかりじゃなく、トラブルが出尽くしていることが大半なので、殆どの場合一度稼働してしまえばトラブルなしで信じられない程安定稼働してくれます。

 特に止まったら激困る環境とかだと、性能評価は機器そのものの処理能力より「安定して動き続けること」が高く評価されることも珍しくないので、古い機器は結構好意的に受け入れられることもあったりするんですよね。
 んで、今回連携した機器ってのもそういう昔ながらの機器だったんですよ。今風の機器にありがちな自動設定なんて気の利いたものは存在しないので、オールマニュアル設定、まぁだから事前に準備して、設定も仕込んで、しこたまテストして本番を迎える、って対応をよくやるわけです。

 まー今回も同じで、ずいぶん前に徹底的にテストやってたので一ミリも心配してなかったんですよね。で、端末の電源を入れて、連携システムを起動!すると

ええ、動かない。

 はっはっは、慌てちゃいけません。LANケーブルが半挿しだったとか、経路上のHUBの電源が切れてたとか、ありがちな原因はゴロゴロ転がってますからね。

結果、共有フォルダがある端末へのPING応答問題なし。

共有フォルダがある端末から、共有しようとしている端末へのPINGも問題なし。

うん、動かない。

一体どうしたの!?

(このとき、連携処理本番開始1時間前)

今回の機器も、先ほど記載した「最近よくあるパターン」で連携するタイプで、要はWindowsの共有フォルダを使用してデータをやり取りするパターンのもの。

共有フォルダの設定なんてものは当然されていて、他端末からも共有フォルダに問題なくアクセスできることを確認済み。つまり、共有フォルダの設定が失われたわけじゃあない。

でも連携出来ない。。。えぇ。

ファイアウォールの一時無効化、セキュリティ対策ソフトの無効化を行っても効果なし。

というかね、セキュリティソフト関連が問題だったら、他クライアントからアクセスできる訳ないじゃないか。

特定の機器との連携「だけ」失敗する。なんだこれは。。

ちなみに、問題を起こしたのはむかーしから使われているふるーい機器のみ。

ええ?これじゃあまるでSMB1.0を入れ忘れているみたいじゃないかwww

その通りだった
いや、そんなはず無いんですよ。だって半月ほど前にやったテストは完璧にパスしてるんですから。もし入れ忘れてたらそこを突破出来る訳がない。

でもSMB1.0が消えてる。何でぇ!?

試しにSMB1.0を導入しなおして連携させると、すんなり成功。いや、原因コレじゃんかよ!?何でこんなことになるのよ!!

この状況で可能性は3つ。

・誰かがSMB1.0を削除した
・実は私が夢を見ていて、半月前の連携成功自体が間違っていた
・妖精の仕業

犯人は妖精だった!?
正確にはWindowsなんですけどね。うん。

Windowsには「SMB1.0自動削除」なる機能が搭載されていて、15日間SMB1.0が使われないと「何だよー、有効にしといて使わないのかよー。じゃあ消すわ」って動きをするらしいんですよね。今回、連携試験してから2週間以上放置してたので、この条件にドンピシャ当てはまった訳です。こんな機能あったのか、知らなかったな。

再発防止策を考える
こんなん再発されたらたまったもんじゃない。原因が判明したので再発防止策を考えます。といっても、やることはコマンドをPowerShellで送るだけ。

「Disable-WindowsOptionalFeature -Online -FeatureName "SMB1Protocol-Deprecation" 」

これでOK。

使用頻度のそこまでない機器が相手で、しかも長期連休挟んだりしたら、15日って意外と長くない。これはねー、放置すると普通に再発するよね。うん。

まとめ

 今回の件、Microsoftの言い分もわからなくはないんですよね。数年前に「SMB1.0終息させるよ」宣言出してるし、何だったらサポートしませんよーってアナウンスもしてるし。
それでも使う人たちがいるもんだから、危なっかしいのわかってて搭載はしてるけどさ、使わなかったら危ないから塞ぐからね!ってことだもんね。

 普段だったら「こんな機能サイレント実装するんじゃねぇ!」とおらび倒す所なんですが、今回ばかりは常識的にも道徳的にも敗北です。ハイ。

正直、「非推奨だし終息宣言してるけど、仕方がないから残してるよ」ってこの状況をいいことに、移行を進めない周辺機器メーカやベンダにも、ある程度の責任はあるんじゃあないかな。

ある日突然、それこそ明日起きたら「SMB1.0オワタ」ってなってても不思議じゃないんだから。

ではまた!(・ω・)ノ