• 窓辺の小石

Windowsでときどき、ネットワークアクセスができないことがある。理由や原因は不明だが、特定のマシンだけパスワード入力が要求され、正しいユーザー名、パスワードを入れているのに「ユーザー名またはパスワードが正しくありません」と言われる。自分の家なのに「あなたはだぁれ?」と玄関払いを喰うような感じである。

Windowsに限らず、昔からネットワーク関係のトラブルは少なくない。人間が間違えるからというのが一番の理由ではあるが、離れた場所にある2つのコンピュータを設定するというのも関係しているような気がする。デバイスドライバーのバージョンやソフトウェアの問題だけでなく、ケーブルやアクセスポイントといったハードウェアが関わるというのもトラブルを増やす原因だろう。

個人が利用するWindowsマシンは、Windows 7まではMicrosoftアカウントがなく、ローカルアカウントだったため、パスワードやユーザー名の登録ミスによるネットワークトラブル「つながらない」といった問題が多発していた。ログイン操作を省略できるためパスワードやユーザー名の設定がいい加減でも、ネットワークにつなぐまでは、なんの問題もなかったからだ。

Windowsでファイルアクセスができないとき

Windowsのトラブルでは、再起動したら「直った」なんてことは普通にあるので、あちこち触る前にとにかく再起動させてみるという手はある。また、アップデートで回復することもあるので、急ぎでなければ、次のWindows Updateを待つという手もある。認証エラーの原因になりやすかったユーザー登録の問題だが、Microsoftアカウントを使っていれば、比較的トラブルは少ない。どのマシンでも同じユーザー名、パスワードを使うことになるからだ。もしローカルアカウントを使っているなら、まずはユーザー名、パスワードが一致しているか確認が必要になる。

認証エラーが繰り返されるとき、ユーザー名の指定方法を変えるとアクセスできることがある。Windowsには、「ユーザープリンシパル名」、「SAMアカウント名」(NetBIOS名などとも。SAMはSecurity Account Managerの略)があり、SAMアカウント名には、コンピュータ名を付けた「Down-Levelログオン名」という形式がある。「~@outlook.jp」という形式のユーザー名が「ユーザープリンシパル名」であり、SAMアカウント名は、「コンピューターの管理」にある「ローカルユーザーとグループ→ユーザー」やPowerShellのGet-LocalUserなどで表示されるユーザー名だ。また、SAMアカウント名は、ユーザーフォルダーのフォルダー名にもなっている。Windowsには、1つのユーザーに複数の「名前」がある。ユーザープリンシパル名はWindows 2000で導入され、それ以前はSAMアカウント名がユーザー名だった。

Microsoftアカウント名でパスワードがエラーになったとき、ユーザー名にSAMアカウント名や、Down-Levelログオン名(コンピュータ名\SAMアカウント名)を指定するとうまくアクセスできることがある。これは、ネットワーク共有のアクセスだけでなく、その他のネットワークサービス、アプリ(PSRemotingやOpenSSHによるアクセスなど)でも応用できる。なので、自分のSAMアカウント名ぐらいは把握しておいたほうがいいだろう。

  • 写真01: ネットワーク資格情報の入力ダイアログでエラーを繰り返すとき、OKボタンの上にある「その他」をクリックして、ユーザー名を変更することが可能だ。このとき、Microsoftアカウントのユーザー名以外にSAMアカウント名やDown-Levelログオン名を入力できる

どうしてもダメなとき

適当なローカルアカウント(管理者)を新規に作って、そのアカウントでファイル共有やネットワークサービスがちゃんと動くとしたら、アクセス先のWindows 10は、基本的には正常な状態にある。なのにMicrosoftアカウントでは、まったくアクセスができないとしたら、該当のアカウントに何か問題が潜んでいる可能性がある。こういう場合、ユーザーアカウントを作り直すとうまくいくことがある。ただし、リスクがまったくないわけではないので、最後から2番目の方法だと思っていいただきたい(最後の方法はWindowsの再インストール)。

手順としては、Microsoftアカウントを一回ローカルアカウントに変換し、再度Microsoftアカウントに戻すというものだ。実際、筆者は、過去にWindows 10の機能アップデートを行ったあと、どうしてもファイル共有やPSRemotingが行えず、この方法を用いたところ正常にアクセスできたことがある。最近では、Windows 11にアップグレードしたマシンでも同様の問題があり、やはりこの方法で解決した。ファイル共有サービスの問題には有効だったが、他のネットワークサービスでは、この方法で解決できなかった問題もあった。

「設定→アカウント→ユーザーの情報→ローカルアカウントでのサインインに切り替える」を使って、Microsoftアカウントをローカルアカウントに切り替える。自動的にログアウトするので、ローカルアカウントで再度ログインし、同じく「設定→アカウント→ユーザーの情報→Microsoftアカウントでのサインインに切り替える」を使って、元のMicrosoftアカウントに戻す。今度は自動でログアウトしないが、念のため再ログインしたほうがいいだろう。

ユーザープリンシパル名は、メールアドレスをベースにするため、最初から変更される前提になっている。Active Directoryを使っていない場合、Windowsは内部でSID(Security ID。セキュリティ識別子)でユーザーを区別している。SIDは、ユーザーの新規作成時にユニークな値が割り当てられ、以後、ユーザーが削除されるまでは同一の値を使い続ける。このため、Microsoftアカウント名でも、SAMアカウント名でも正しいユーザー名として認識される。Microsoftアカウントとローカルアカウントの間の移行では、このSIDは変わらないため、同じユーザーとして元に戻ることができる。

Windowsのネットワークは複雑で謎だらけである。同じようにアップデートしてきたWindows 10なのになぜかネットワーク上での挙動が違うということが起こる。Windows 10では、お互いまったく見えない、つながらないといったエラーは減り、認証エラーが残った感じがある。管理ツールなどいまだにSAMアカウント名が使われているアプリケーションがWindows 10には多数残っており、おそらく内部的には、古いコードが残っており、その上にユーザープリンシパル名やWindows Helloなどの「皮」を被せているのであろう。時折、新旧機能の間に齟齬があり、エラーが出ているのではないかと筆者は考えている。