Windowsはフォルダの共有設定を有効にすることで、Wi-Fiなどを使って同じローカルネットワーク(LAN)にあるパソコンやスマホから接続できるのですが、設定方法が少し複雑になっているので注意が必要です。ファイアウォールとか…。
こんにちは、makotoです!
先日、AndroidスマホからWindowsパソコンの共有フォルダにアクセスしようとしたのですが、フォルダの共有設定をしてもなぜか一覧に表示されませんでした。
Androidアプリがおかしいのかと思って Mac から接続しようとすると、パソコンの名前は一覧にあるものの接続ボタンを押したらエラーで拒否されてしまいます…。
他のWindowsパソコンで同じように設定したときには外部から接続できていたので、まさかDell XPSお亡くなりに…?と思いましたが、(かなり)しばらくいじっているうちにある設定に見落としがあると知りました。
共有フォルダの作成
念の為、共有フォルダの作成から説明しておきます。
まず、共有したいフォルダを右クリックで選択して [プロパティ] を開きます。
プロパティウィンドウの中で [共有] タブを選択してネットワークパスの [共有(S)…] を押します。
このネットワーク アクセスウィンドウで共有するアカウントを選択します。
共有したいのは自分だけで、ファイルの所有者は最初から共有者に選ばれているのでそのまま [共有(H)] を押します。もし、ローカルネットワーク全体に公開したいのであれば「Everyone」を追加します。
実際に接続する際には、この一覧に入力されているユーザの名前とパスワードを使って接続します。ローカルアカウントでもMicrosoftアカウントでもOKです。
共有設定が完了するとネットワークパスが「共有されていません」から実際のパスに変化します。
ここまでの作業が完了すると、エクスプローラの「ネットワーク」にパソコン名が表示されており、開くと共有フォルダが存在しています。
プライベートネットワークにおける検出の有効化
個人宅のローカルネットワークで共有する場合は大抵プライベートネットワークで設定すると思いますが、このネットワークに接続している端末からパソコンが検出できるように機能を有効化します。
ネットワークと共有センターを開いて [共有の詳細設定の変更] を選択します。
共有の詳細設定ウィンドウでプライベートにおける [ネットワーク探索を有効にする] を選択します。
通常はここまでの設定で同じローカルネットワークに接続しているパソコンやスマホに表示されますが、サービスが動いていない場合は表示されないようです。
サービスの動作確認
まず、タスクバーを右クリックしてタスクマネージャーを開き、[サービス] タブに移動します。
次に、サービスタブの一番下にある [サービス管理ツールを開く] ボタンを押します。
そこで開くサービスウィンドウにはパソコン上で動いているサービスが表示されています。
その中で “Function Discovery Resource Publication” を見つけ、右クリックして [プロパティ] を選択します。
プロパティウィンドウで、サービスの状態が「実行中」かつスタートアップの種類が「自動(遅延開始)」になっていることを確認してください。もし、設定が異なっていれば変更します。
実行中になっていれば「私はここにいるよー」と教えてくれますが、これでも検出できない場合はSMBが無効になっている可能性があるので、次の項目で有効にします。
SMBの有効化
まず、コントロールパネルの [プログラムのアンインストール] を選択します。
次に開いたプログラムと機能ウィンドウの左メニューで [Windowsの機能の有効化または無効化] を選択します。
ここにはWindowsの機能の一覧が並んでいるので、その中から「SMB 1.0/CIFSファイル共有のサポート」を探してチェックを入れます。
SMBというのはWindowsで使われるファイル転送プロトコルで、これを有効にすることでファイルを共有できるようになります。
この設定を反映するにはパソコンの再起動が必要です。
ここまでの作業を終えたところで、ようやく他のパソコンやスマホからアクセスできるようになりました!
Microsoftアカウントでの接続
Windowsは初めてのログインのときにローカルアカウントかMicrosoftアカウントかを選んでユーザを作成しますが、デフォルトではMicrosoftアカウントになっています。
所有者がMicrosoftアカウントのフォルダも問題なく共有できますが、SMBで接続するときのユーザ名とパスワードに注意してください。
私の環境では2種類の方法で接続できることを確認しています。
- Microsoftアカウントのユーザ名(メールアドレス)とMicrosoftアカウントのパスワード
- パソコンのユーザ名とMicrosoftアカウントのパスワード
パソコンのユーザ名はコマンドプロンプトで以下のコマンドを入力すれば確認できます。
> echo %username%
普段パソコンにPINでログインしている場合でもPINでは接続できません。
これで無事解決!正直なところ、めっちゃ苦労してしまいました。
他のパソコンでは最初の2項目だけで共有できていたので、最後のSMBが無効だったことには全然気づかず、毎回解決できずに避けてきたのでなんやかんや2年くらいかかっての解決です…。
後日:アクセスできない現象が再発
やったあああ!!!!と喜んでいたのですが、別のフォルダを共有しようとしたら再びアクセスできない状態になってしまいました。
しかし、設定は上記のように済ませてあることから、他の何かが悪さをしているようです。
半日かけて考えに考え抜いて出た結論は、もしや…。
マカフィー、おぬしではあるまいな?
というものです。ウィルス対策ソフトウェアは今の情報社会を生き抜くのに必須なわけですが、多くのソフトではファイアウォール設定が有効になっています。
仮にウィルス対策ソフトを入れていなくてもWindowsセキュリティにファイアウォール機能があると思いますが。
ファイアウォールというのは、一言で説明するならばパソコンへの接続をブロックするシステムです。
安全のために基本的にはすべてブロックして、利用するアプリケーションやプロトコルに合わせてポートを開放したり、特定のIPを許可したりといった使い方をします。
そのため、同じネットワークに属している自分のパソコンであってもブロックしてしまうというわけです。
試しにファイアウォールをオフにしてみたところ、これまでの苦労が嘘かのようにあっさり繋がりました。まじか…何たる盲点…。
ただ、ずっとファイアウォールをオフにしておくわけにはいかないので、接続したいパソコンのローカルIPアドレスだけ許可するようにします。
ローカルIPアドレスの確認
Windowsであれば、コマンドプロンプトを起動して以下のコマンドを入力します。
> ipconfig
そうすると、「IPv4 アドレス」という項目に 192.168.x.x
のような文字列が表示されていると思います。
これがそのパソコンのローカルIPアドレスです。
macOSの場合は [システム環境設定] > [ネットワーク] でWi-Fi(有線ならイーサネット)を選択すると、ステータスの下に小さく 192.168.x.x
の記述があります。
ファイアウォールの設定方法
私が今利用しているMcAfeeリブセーブというソフトでの説明になりますが、他のソフトでも同様の設定はできると思うので、ソフトに合わせて設定してください。
McAfeeリブセーフは起動すると [ホーム] タブが開かれます。
その状態から [セキュリティ] タブ > [ファイアウォール] > [ネットワーク接続] と進むと、特定のIPアドレスからの接続を許可することができます。
ネットワーク接続の欄を展開したら [追加] ボタンを押し、「単一」で先ほど確認したローカルIPアドレスを入力したら保存してください。範囲指定もできるようですが、なぜか私の環境では「範囲」を選択しても入力できませんでした。
また、上のIPv4を選択する必要はありません。私の環境ではここを選択するとIPアドレスの入力欄がなぜか消えてしまいましたが、選択しなくても動きました。
[保存] を押して一覧を確認するとアダプターの種類が「有線」になっていますが、Wi-Fiでそのまま使用できます。
最後に
結局ファイアウォールが文字通り最後の障壁になっていました。解決できてよかったのですが、ファイアウォールが有効だったのに接続できたのは何だったのか…。
これで晴れてパソコン間でファイルが共有できるようになったので嬉しいです!
最後まで読んでいただき、ありがとうございました!