実はサービスの状態は殆どトラブルにならない。MS公式資料やインターネット検索で行きついた情報の反対の事をしてもファイル共有できたりする。
以下に確認のポイントを述べるが、現にチェックを入れるところを外しても動作している。
そもそもファイル共有サービスはインストールされているのか
実はぱっとは分からない。しかし確認しておかないと前には進まない。
MS社のサポート「Windows と Windows Server で SMBv1、SMBv2、SMBv3 を検出する方法と有効または無効にする方法」による。
また、MS社TechNet「ファイル共有の仕組み – Server サービスと Workstation サービス また、MS社TechNet」による。
他にファイル共有 設定等チェックシートも参考になるだろう。
SMBクライアント側の確認
コマンドラインで
sc.exe qc lanmanworkstation
とする。
この中の「MRxSmb20」がポイント。MRxSmb20でSMB2とSMB3をサポートする。ここに加えて「MRxSmb10」があればSMB1もサポートする。
実はこれは上記公式資料の確認事項なのだが、当PCはSMB1.0クライアントサービスを有効にしてあるものの、MRxSmb10が出てこないが利用できている。
何か間違っているような気がする。ので下記のSMB1.0有効化の記事を見て確認してほしい。
サービスの確認
serviceでWorkstationを確認する。
コンポーネントの確認
ネットワークのプロパティに示されている「Microsoftネットワーク用クライアント」がクライアント側のコンポーネントだ。
参考情報としてこの項目にチェックを付けなくともクライアントとして接続できている。
SMBサーバー側の確認
管理者PowerShell上で下記コマンドを実行する。
Get-SmbServerConfiguration | Select EnableSMB1Protocol
Get-SmbServerConfiguration | Select EnableSMB2Protocol
この設定ではSMB1はインストールされていない事が確認できる。
ちょっと前の確認例でよくあったのが、リッスンしているポートを調べる方法である。
netstat -an |findstr ":137 :138 :139 :445"
このことから、サービスが起動していることが分かる。ESTABLISHEDと言うのは現在接続中のため表示されている。
その他従来型Windowsファイルの共有はIPv4しか対応してなくて、IPV6には対応していないことや、ダイレクト・ホスティングSMBサービス(Direct Hosting SMB Service)ならIPv4にもIPV6にも対応していることが分かる。
サービスの確認
serviceでServerを確認する。
コンポーネントの確認
ネットワークのプロパティに示されている「Microsoftネットワーク用ファイルとプランターの共有」がサーバー側のコンポーネントだ。
意味のない設定集SMB1.0
実はSMB有効化でよくある下記設定は古いNAS以外あまり意味がない。
現在のSMBの最新は3.1.1( now 2019-07-30) であり、Windows10なら最新のSMBはサポートされている。
このSMB1.0は過去にセキュリティホールをついたウィルスがあったため、意図的にOn/offするためのオプションである。そして当社は値切ったのかアノみかかさんがSMB1.5のファイルサーバを導入していったのでこのオプションが要る。
古めのWindows10でこう出る場合があるが、これは ダイレクト・ホスティングSMBサービス の事ではない。それよりもWindowsアップデートしたほうが良いと思う。
SMBダイレクトはRDMAというSMBでCPUを使わずメモリにデータを送ることが出来る。但し、RDMA の機能をドメイン コントローラー上で動作させると、メンバー サーバーで利用するときに比べてファイル サーバーの性能がでないという話もあるので注意してほしい。
RDMAの確認
余談だがRDMAはPowerShell上の以下のコマンドで確認できる
Get-NetOffloadGlobalSetting
このNetworkDirectのEnabledがRDMAの事で、今のWindows10の場合有効化されている。