Win10

 Windows 最新リリースには、ネットワーク上の他のコンピュータが表示されない、またはWindows 10がワークグループ環境に表示されないというデバイスネットワーク探索の問題が出てきます。今回はネットワーク探索の問題を解決する方法をご紹介します。
 Windows 10 1703以降のワークグループLANに近隣のコンピュータを表示する際に、新しいバージョンのWindows 10をインストールした後、コンピュータはネットワーク上の近隣のコンピュータを見失うことがあります。エクスプローラの[ネットワーク]アイコンをクリックしてネットワーク内のデバイスリストを表示しようとすると、エラーが発生します。

windows ネットワーク探索が無効になっています

また、net viewコマンドでネットワーク環境内のコンピュータのリストを表示しようとすると、エラーが表示されます。


サーバーのリストはネットワークで利用できません

次の設定をチェックして、Windows ネットワーク上のネットワーク デバイスを表示します。

コントロールパネル - ネットワークと共有センター> - > 共有の詳細設定を変更します

コマンドプロンプトで次のコマンドを実行できます。

control.exe /name Microsoft.NetworkAndSharingCenter /page Advanced

[プライベート ネットワーク プロファイル] セクションで次のオプションがオンになっていることを確認します。

ネットワーク探索を有効にする + ネットワーク接続デバイスの自動セットアップを有効にする
ファイルとプリンターの共有を有効にする
Windows にホームグループ接続の管理を許可する (推奨)。


次に、[すべてのネットワーク] セクションで次のオプションを有効にします。

  • パブリックフォルダの共有を有効にして、ネットワークにアクセスできるすべてのユーザーがパブリックフォルダ内のファイルの読み取りと書き込みを行えるようにします(オプション)。
  • パスワードで保護された共有をオフにします (ネットワーク内のすべてのデバイスを信頼する場合)。
 これで、コンピュータへの匿名ネットワークアクセスを開くことができます。そのため、このオプションを有効にする場合は、共有ネットワーク フォルダーとプリンターのアクセス許可を正しく設定する必要があります。
 ネットワークにレガシーネットワークデバイス(古いWindowsバージョン、Samba共有、NASデバイス)がある場合は、「40ビットまたは56ビット暗号化を使用するデバイスのファイル共有を有効にする」オプションを有効にします。
 
 共有を有効にして、ネットワーク アクセス権を持つすべてのユーザーがパブリック フォルダー内のファイルの読み取りと書き込みを行えるようにします。

 次に、[設定]->ネットワークとインターネット->イーサネットに移動します(または、ワイヤレス接続を介してローカルネットワークに接続している場合は、[Wi-Fi]を選択します)。ネットワーク アイコンをクリックし、[この PC を検出可能にする] オプションが有効になっていることを確認します。


コンピュータのDNSキャッシュをフラッシュします。
コマンドプロンプト(管理者権限)で次のコマンドを実行します。

ipconfig /flushdns

Windows Defender ファイアウォールでネットワーク探索トラフィックを有効にするには、管理者特権のコマンド プロンプトで次のコマンドを実行する必要があります。

netsh advfirewall firewall set rule group="Network Discovery" new enable=Yes


windows でネットワーク探索プロトコルを許可します。
netsh advfirewall

または、PowerShell を使用して Windows ファイアウォールのネットワーク探索トラフィックを有効にすることもできます。
コマンドは次の通りです。

Get-NetFirewallRule -DisplayGroup "Network Discovery" -Enabled True -Action Allow -Direction Inbound

また、Windows Defender ファイアウォールの設定で、プライベート ネットワークのネットワーク探索プロトコルを手動で有効にすることもできます。

 場合によっては、ワークグループ設定が正しくないために、Windowsコンピュータがネットワーク環境に表示されないことがあります。ワークグループでこのコンピューターに再度参加してみます。コントロールパネル - システムとセキュリティ - >システム - > - >設定の変更 - >ネットワークIDに移動します。

 開いたドメインまたはワークグループへの参加ウィザードで、[このコンピューターはビジネス ネットワークの一部です] -> [会社はドメインのないネットワークを使用している] -を選択し>ワークグループ名を入力します。その後、コンピュータを再起動する必要があります。

 ローカルネットワーク上のすべてのデバイスに同じワークグループ名が設定されていることを確認します。
 PowerShell を使用すると、コンピューターがワークグループに属しているかどうかを確認し、その名前を表示できます。

(Get-WmiObject -Class Win32_ComputerSystem).PartOfDomain
(Get-WmiObject Win32_ComputerSystem).domain

コンピュータのワークグループ名をワークグループに変更するには:

(Get-WmiObject Win32_ComputerSystem).JoinDomainOrWorkgroup("WORKGROUP")

コンピュータを再起動します。


 再起動後、コンピュータがネットワーク環境に現れたが、アクセスできない場合は、コンピュータのネットワーク プロファイルの種類 (場所) を確認してください。ほとんどの場合、ローカル ネットワークはパブリックとして認識されています。そのため、ネットワークの場所を [プライベート] に変更する必要があります。これを行うには、[設定] - >ネットワークとインターネット - >ステータス - >開き、ネットワーク接続(私の場合はイーサネット2)を選択し、[プロパティ]をクリックします。ネットワーク プロファイルが [プライベート] に設定されていることを確認します ([パブリック] に設定されている場合は、ネットワークの種類を [プライベート] に変更します)。

 コンピュータを再起動し、ネットワークを開き、近くのWindowsコンピュータが表示されるかどうかを確認します。

上記でもワークグループ内のコンピュータがまだ表示されない場合は、ネットワーク設定をリセットしてみてください

設定 - >ネットワークとインターネット - >ステータス - >ネットワークリセット。


次のコマンドを使用して、ネットワーク設定と Windows Defender ファイアウォール規則をリセットすることもできます。

netsh int ip reset reset.txt
netsh winsock reset
netsh advfirewall reset

コンピュータを再起動する必要があります。

 
 また、次のサービスが実行されているかどうかを確認しまservices.mcs コンソールを実行し、サービスの状態を確認します。

FdPHost – 関数検出プロバイダーホスト (ネットワーク上の他のコンピューターの検出を担当);
FDResPub - 関数検出リソースパブリケーション(他のコンピュータがネットワーク上のデバイスを検出できるようにします)。
Dnscache – DNS クライアント;
SSDPSrv – SSDP Discovery;
Upnphost – PnP デバイス ホスト。

 Windows 10および11でネットワーク探索を有効にする方法は?
Windows 10 1803 (Spring Creators Update) 以降、マイクロソフトの開発者はホームグループを作成する機能を削除しました。さらに、他の Windows 10 および Windows 11 コンピューターは、ネットワーク デバイスを表示するときにエクスプローラーのネットワーク環境に表示されなくなりました。

 Windows 10デバイスからローカルネットワーク経由で別のコンピュータ上の共有リソースにアクセスするには、ホスト名()またはIPアドレス()を知っている必要がありますが、ネットワーク内の近隣のコンピュータは表示されません。

 近隣のコンピューターへのデスクトップ ショートカットを作成するには、近隣のコンピューターへの UNC パスを (コンピューター名または IP アドレスで) 指定します。


問題は、別の関数検出プロバイダーホストサービスが、Windows 10ネットワーク上の近隣のコンピューターを検出する役割を担っていることです。もう 1 つのサービスである関数検出リソース パブリケーションは、コンピューターの検出を担当します。

 最新のWindows 10ビルドをインストールした後、ネットワーク探索サービスはデフォルトでスタートアップの種類が[自動]から[無効]に変更されました。これらのサービスが停止すると、そのコンピューターは他のコンピューターによってネットワーク上で検出されず、他のコンピューターを見ることはできません。Windows 10 のネットワーク探索サービスは、次のようにして有効にできます。

Windows サービス管理コンソールを開きます (services.msc);
サービスのスタートアップの種類を手動から自動 (遅延開始) に変更する
サービスのリストで、Function Discovery Resource Publicationを見つけます。
同様に、Function Discovery Resource Publicationサービスを有効にします。

これらのサービスは、次の 1 行の PowerShell で自動的に開始するように設定できます。

get-Service fdPHost,FDResPub|Set-Service  -startuptype automatic -passthru|Start-Service

コンピュータを再起動します

再起動後、ローカルネットワーク上の他のコンピュータは、このコンピュータとそのリソース(共有ネットワークプリンタとフォルダ)を検出できます。

コンピュータブラウザサービスとSMB 1.0プロトコル(Windows 10 / 11)

 ネットワーク環境でコンピュータを表示する際の問題は、コンピュータブラウザサービスに関連しています。このサービスは、ローカル ネットワーク上のアクティブなコンピューターの一覧を生成して維持する役割を担います。ローカル ネットワーク上には、マスター ブラウザーの役割を持つアクティブなコンピューターは 1 台しか存在できません。

 ネットワーク内の現在のマスターブラウザホストを識別するには、ネットワーク内の各コンピュータで次のコマンドを実行します。

nbtstat -a ComputerName

マスターブラウザであるコンピュータは、値が__MSBROWSE__を持つ唯一のコンピュータです。

 Windows 10 1703 では、コンピューター ブラウザーサービスが正しく動作しません。Windows 10 でこのサービスを完全に無効にし、Windows 8.1/Windows Server 2012 R2 を搭載したコンピューターをネットワーク上のマスター ブラウザーとして使用することをお勧めします。マスターブラウザコンピュータは、レジストリから設定できます。

コンピュータブラウザを無効にするには、

レジストリキー HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Browser\Parametersに移動し、MaintainServerListパラメータの値をいいえに変更します。どのコンピュータがネットワークマスターブラウザであるかを強制的に設定するには、MaintainServerList の値を Yes に変更します。
さらに、Windows 10 1709 以降 (1803 から 21H2 まで) では、コンピューター ブラウザー サービスと SMB v1.0 プロトコルは既定で無効になっています。コンピューター ブラウザー サービスは、ネットワーク上のコンピューターの一覧を作成し、それらを表示する役割を担います (この検出プロトコルは、SSDP および WS-Discovery プロトコルに切り替える前に広く使用されています)。

次のコマンドを使用して、コンピューター上の SMBv1 プロトコルの状態を確認できます。

Dism /online /Get-Features /format:table | find "SMB1Protocol"

dism smb 1.0 プロトコルが有効になっているかどうかを確認します

ローカル ネットワークに Win 10 1709 以降を実行しているコンピューターしかなく (SMB バージョンの表を参照)、コンピューター ブラウザーを使用したい場合は、少なくとも 1 台のコンピューターで SMB v1.0 プロトコルを有効にする必要があります (安全ではありません)。このコンピュータは、ネットワーク上のマスターブラウザとして使用されます。

SMB 1.0 サポートを有効にするには、コントロール パネルから次の Windows 機能を有効にします。

OptionalFeatures.exe

SMB 1.0 /CIFSクライアント;
SMB 1.0 /CIFSサーバ。


または、DISM コマンドを使用して SMB 1.0 機能を有効にすることもできます。

Dism /online /Enable-Feature /FeatureName:"SMB1Protocol-Client"
Dism /online /Enable-Feature /FeatureName:"SMB1Protocol-Server"

 Windows でクライアントまたはさらに SMB1 サーバーを有効にすることはお勧めしません。SMB 1.0 プロトコルは安全ではなく、多くの SMB1 の脆弱性がリモートから簡単に悪用される可能性があります。
 SMB1 プロトコルを有効にした場合、現在のコンピュータをネットワーク上のマスターブラウザとして設定するには、次のコマンドを実行します。

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Browser\Parameters" /v IsDomainMaster /t REG_SZ  /d True /f
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Browser\Parameters" /v MaintainServerList /t REG_SZ  /d Yes /f

このコンピュータは、ネットワーク内のマスターブラウザになります。

Windows デバイスから共有フォルダを表示できない
 場合によっては、Windows 10 はワークグループ環境で近隣のデバイスを表示および探索できますが、そのデバイス上の共有ネットワーク フォルダーの一覧を表示できません。これは、ほとんどの場合、「0x80070035 - ネットワークパスが見つかりません」というエラーを伴います。この問題の解決策については、この記事で説明します。

近隣のコンピュータ (デバイス) がネットワーク上に表示されていても、ネットワーク コンピュータから、または UNC パス (\\Hostname_or_IP) で共有ネットワーク フォルダを開こうとすると、「組織のセキュリティ ポリシーによって認証されていないゲスト アクセスがブロックされているため、この共有フォルダにアクセスできません」というエラーが表示されます。この場合、コマンドを使用して AllowInsecureGuestAuth レジストリ パラメーターを有効にする必要があります。

reg add HKLM\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters /v AllowInsecureGuestAuth /t reg_dword /d 00000001 /