Windows アップデート後に突然ファイルサーバーにアクセスできなくなることがあります。しかも、エラー詳細が「エラーを特定できません 0x80004005」などという残念な情報しかでてこないこともよくあります。今回の記事では2種類の異なる「特定できない」エラーに対する対処法と、いくつかの確認すべきことを紹介します。
まず、なぜ、突然このようなことが起こるのかというと、「セキュリティーアップデートのため」にマイクロソフトが強制的に仕様を変更するからです。その背景として、有名なところで行けば、勝手に社内のファイルサーバーのデータを暗号化して、金銭を要求するランサムウェア(身代金要求型ウイルス)の被害拡大を防ぐためだったりします。今回紹介する方法は、あくまでファイル共有を今まで通りにする一時的な方法で、セキュリティー的には好ましくない方法が含まれます。セキュリティー的にも正しい対処も併せて記載しますが、実施のためには全てのPCや機器の仕様をそろえる必要があり、機器の再導入(購入)などが必要になりますので、予算とセキュリティーレベルと相談しつつ進めてください。
なお、今回は友人の会社で Windows10 への入れ替えを機に、1台だけ共有フォルダにアクセスできないというものを、調査したことがきっかけのため、どのバージョンからのアップデートなのかなど、細かい情報が残念ながらありません。さらに、アップデートだけではなく、初回導入時の設定なども関係あるかもしれません。
以下では、ネットワークの探索に関して紹介しています。
1909 にアップデートした際にも類似の事象が起きたのでその時の対応を以下で紹介しています。
20H2以降、ネットワークドライブへのアクセスがうまくいかないことがあるようで、対処を以下の記事で紹介しています。
共有フォルダにアクセスするとエラー
問題のPCで共有フォルダにアクセスしようとしたところ、以下の通り導入で紹介した残念なエラーが表示されました。
\\ファイルサーバー にアクセスできません
名前のスペルを確認しても問題がない場合は、ネットワークに問題がある可能性があります。
ネットワークの問題を識別して解決するには[診断]をクリックします。
詳細を確認してみても「エラーを特定できません 0x80004005」と表示されています。
解決策/結論
この話を聞いたときに真っ先に考えたのは、うちの会社でも問題になった「SMBv1」の問題でした。数年前に世の中を騒がせた問題です。しかし、今回の事例は結論から行くと「パスワード無しアクセス」が問題でした。せっかくなので、「SMBv1」問題と「パスワード無しアクセス」問題についての紹介と、その解決法を紹介したいと思います。
パスワードなしアクセスを許可する対処一例:
「SMBv1」問題
起きている現象が「SMBv1」問題である場合、共有フォルダとして利用しているNAS(ファイルサーバー)機器が古い可能性があります。機器が古いと、SMBv1 というプロトコルにしか対応していないことがあります。そして、SMBv1 はここ最近(1~2年)の Windows10 では、セキュリティー強化のためデフォルトでは利用できません。
https://support.microsoft.com/ja-jp/help/4034314/smbv1-is-not-installed-by-default-in-windows
そのため「SMBv1」問題の場合は、NAS(ファイルサーバー)機器のファームウェアのバージョンアップが必要です。機器メーカーからSMBv2以降に対応したファームウェアが出されていない場合は、以下のように、クライアントPC(Windows10)に SMBv1 を使えるように設定する必要があります。
コントロールパネル > プログラムと機能(の左側) > Windowsの機能の有効化または無効化
赤枠で囲んだ「SMB 1.0/CIFSクライアント」にチェックをつけて、Windows を再起動をすると SMBv1 が有効になります。マイクロソフトの文章によると、青枠で囲んだ「SMB 1.0/CIFS 自動削除」は、15日 SMBv1が利用されていないと、勝手にアンインストールされる機能のようです。SMBv1が絶対に必要な環境では、「SMB 1.0/CIFS 自動削除」のチェックはつけないほうが無難です。
「パスワード無しアクセス」問題
先ほど紹介した「SMBv1」問題は、そもそも古いNAS(ファイルサーバー)機器や、古いコンピュータ(OS)を利用している場合に起こります。しかし、今回は、Windows10 同士の共有フォルダにアクセスができないという現象で、「SMBv1」問題とは根本から違うようです。
初歩的な確認が長くなるので、結論から行くと、「パスワード無しアクセス」がGPOで禁止されていました。以下のコマンドの実行でレジストリを変更させ解決可能です。
この解決に至るまでに確認したこと
今回は、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 のコマンドを利用してみたところ
システム エラー 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がなぜ問題なくアクセスできていたのかは、確認をしていません(できませんでした)。