突然共有フォルダにアクセス出来なくなった時に試すこと

Windows アップデート後に突然ファイルサーバーにアクセスできなくなることがあります。しかも、エラー詳細が「エラーを特定できません 0x80004005」などという残念な情報しかでてこないこともよくあります。今回の記事では2種類の異なる「特定できない」エラーに対する対処法と、いくつかの確認すべきことを紹介します。

まず、なぜ、突然このようなことが起こるのかというと、「セキュリティーアップデートのため」にマイクロソフトが強制的に仕様を変更するからです。有名なところで行けば、勝手に社内のファイルサーバーのデータを暗号化して、金銭を要求するランサムウェア(身代金要求型ウイルス)の被害拡大を防ぐためだったりします。今回紹介する方法は、あくまでファイル共有を今まで通りにする一時的な方法で、セキュリティー的には好ましくない方法が含まれます。セキュリティー的にも正しい対処も併せて記載しますが、実施のためには全てのPCや機器の仕様をそろえる必要があり、機器の再導入(購入)などが必要になりますので、予算とセキュリティーレベルと相談しつつ進めてください。

なお、今回は友人の会社で Windows10 への入れ替えを機に、1台だけ共有フォルダにアクセスできないというものを、調査したことがきっかけのため、どのバージョンからのアップデートなのかなど、細かい情報が残念ながらありません。さらに、アップデートだけではなく、初回導入時の設定なども関係あるかもしれません。

Windows10 1903 にアップデートされた端末という情報があっただけです。

以下では、ネットワークの探索に関しては以下で紹介しています。

今回は、Windows 10 でネットワークの一覧が表示されない件(Windows のネットワーク探索の仕様変更)について調査した内容を紹介します。先日、友人の会社でおきた共有...
スポンサーリンク

共有フォルダにアクセスするとエラー

問題のPCで共有フォルダにアクセスしようとしたところ、以下の通り導入で紹介した残念なエラーが表示されました。

\\ファイルサーバー にアクセスできません

名前のスペルを確認しても問題がない場合は、ネットワークに問題がある可能性があります。
ネットワークの問題を識別して解決するには[診断]をクリックします。

詳細を確認してみても「エラーを特定できません 0x80004005」と表示されています。

解決策

この話を聞いたときに真っ先に考えたのは、うちの会社でも問題になった「SMBv1」の問題でした。数年前に世の中を騒がせた問題です。しかし、今回の事例は結論から行くと「パスワード無しアクセス」が問題でした。せっかくなので、「SMBv1」問題と「パスワード無しアクセス」問題についての紹介と、その解決法を紹介したいと思います。

「SMBv1」問題

起きている現象が「SMBv1」問題である場合、共有フォルダとして利用しているNAS(ファイルサーバー)機器が古い可能性があります。機器が古いと、SMBv1 というプロトコルにしか対応していないことがあります。そして、SMBv1 はここ最近(1~2年)の Windows10 では、セキュリティー強化のためデフォルトでは利用できません。

そのため「SMBv1」問題の場合は、NAS(ファイルサーバー)機器のファームウェアのバージョンアップが必要です。機器メーカーからSMBv2以降に対応したファームウェアが出されていない場合は、以下のように、クライアントPC(Windows10)に SMBv1 を使えるように設定する必要があります。

コントロールパネル > プログラムと機能(の左側) > Windowsの機能の有効化または無効化

赤枠で囲んだ「SMB 1.0/CIFSクライアント」にチェックをつけて、Windows を再起動をすると SMBv1 が有効になります。マイクロソフトの文章によると、青枠で囲んだ「SMB 1.0/CIFS 自動削除」は、15日 SMBv1が利用されていないと、勝手にアンインストールされる機能のようです。SMBv1が絶対に必要な環境では、「SMB 1.0/CIFS 自動削除」のチェックはつけないほうが無難です。

セキュリティー的には、NAS(ファイルサーバー)機器のファームウェアアップデートでSMBv2以降に対応するか、SMBv2以降対応の機器を購入するべきです。

「パスワード無しアクセス」問題

先ほど紹介した「SMBv1」問題は、そもそも古いNAS(ファイルサーバー)機器や、古いコンピュータ(OS)を利用している場合に起こります。しかし、今回は、Windows10 同士の共有フォルダにアクセスができないという現象で、「SMBv1」問題とは根本から違うようです。

初歩的な確認が長くなるので、結論から行くと、「パスワード無しアクセス」がGPOで禁止されていました。以下のコマンドの実行でレジストリを変更させ解決可能です。

reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters /v AllowInsecureGuestAuth /t "REG_DWORD" /d "1" /f

この解決に至るまでに確認したこと

今回は、Windows10 同士の共有のため「SMBv1」問題ではなく、\\コンピューター名 や \\IPアドレス でのアクセスがうまくいかない状態です。ネットワークは同一セグメントでファイル共有以外問題なので、プロファイルやファイヤウォールなどのポリシーのどこかに問題があることが考えられます。

社内で1台だけアクセスできない状態とのことだったので、対象の PC だけネットワークのプロファイルがズレていないかを以下で確認します

コントロール パネル > ネットワークと共有センター > 共有の詳細設定

今回の場合は、他のPCとプロファイルはあっているようでした。念のためファイヤーウォールやセキュリティーソフトもOFFにして確認してみましたが、全く変化なしです。デスクトップPCで社内利用のみなら プライベートネットワーク でよいでしょう。しかし、今回は正常な他のPCも全てパブリックネットワークとなっておりプロファイルの問題ではなさそうです。

ちなみに、現在のプロファイルがズレている場合は、PowerShell(管理者)から以下のコマンドで修正できます。ネットワーク名には、Get-NetConnectionProfile で表示される変えたいネットワークの名前(Name)を入れます。

[プライベートに変更]
Get-NetConnectionProfile | where Name -eq "(ネットワーク名)" | Set-NetConnectionProfile -NetworkCategory Private
[パブリックに変更]
Get-NetConnectionProfile | where Name -eq "(ネットワーク名)" | Set-NetConnectionProfile -NetworkCategory Public

こうなると Windows に何らかの機能で制限がかかっているとしか考えられません。よく見てみると、ネットワーク上のコンピュータの表示もうまくいっていないようでしたが、これは他のPCも同じ状態でした。

あたりをつけていた内容がすべてスカされたため、万策尽きた状態で、なにげに net use のコマンドを利用してみたところ

net use Z: \\192.168.xx.xx\共有フォルダ

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

組織のセキュリティポリシーによって非認証のゲストアクセスがブロックされているため、この共有フォルダーにアクセスできません。これらのポリシーは、ネットワーク上の安全でないデバイスや悪意のあるデバイスから PC を保護するのに役立ちます。

上記のようなエラーが出たため、「パスワード無しアクセス」が、GPOで禁止されていることに気づき、解決に至りました。最初から、net use しておけばよかったかもしれません。しかし、GUIでの操作時にこの 1272 のエラーを出してくれればすぐに解決できたと思いますが、なぜGUIでは「エラーを特定できません 0x80004005」をだすのか・・・。

こちらも、マイクロソフトから出ている情報がありました。
https://support.microsoft.com/ja-jp/help/4046019/guest-access-in-smb2-disabled-by-default-in-windows-10-and-windows-ser

この文章からすると、アクセスできなかったPCの動きが正常のようです。ほかのPCがなぜ問題なくアクセスできていたのかは、確認をしていません(できませんでした)。

セキュリティー的には、このレジストリを変更するのではなく、ユーザー名とパスワードを入れてアクセスさせるのが正しい対応です。
今回は友人の会社のネットワーク担当者?の要望もあり、そのままにすることにしました。そういえば、ゲストアクセスをみたのは、学生のとき(10年以上)ぶりかもしれません。