接続しているネットワークの場所(プライベート・パブリック)を変更する

接続しているネットワークの場所が「パブリック」になっていたので「プライベート」に変更したくなりました。WindowsのUIの変化にとらわれず変更できる方法(コマンドラインで設定する方法)を備忘録として残しておきます。

ネットワークの場所とプロファイル

新しいネットワークにつなぐと接続しているネットワークの場所が、「パブリック」、「プライベート」、「ドメイン」のいずれかに設定されます。それぞれの場所に対応したネットワーク プロファイルに従って、各種設定が反映されます。

パブリック ネットワーク

公衆無線LANやホテルのネットワークなど、第三者が参加しているネットワークに接続する時に使用する設定です。パブリック ネットワークでは、ファイアウォールの設定が厳しくなっており、プリンター・ファイルの共有やリモートデスクトップなどの接続が禁止されています。

プライベート ネットワーク

ホームネットワーク(家庭内ネットワーク)や社内ネットワークなどプライベートな空間に設置されているネットワークに接続するときに使用する設定です。プライベート ネットワークでは、ネットワーク内のデバイスと相互に通信できるように、ファイアウォールの設定でファイル共有やリモートデスクトップなどの接続が標準で許可されています。

ドメイン ネットワーク

Windows PCがドメインのネットワークに接続したときに自動的に使用される設定です。ドメインの管理者がそのドメインのセキュリティポリシーに合わせて設定した各種設定がドメイン ネットワークに接続したPCに適用されます。

ホームネットワークがパブリックになっていた

通常、ホームネットワークでは、「プライベート ネットワーク」のプロファイルを使用します。

しかし、何らかの理由で、パブリック ネットワークが使用されていることがあります。ホームネットワーク内で、PC間やPCと他のデバイス間で通信をするときに問題になります。

この問題を解決するには「パブリック ネットワーク」を「プライベート ネットワーク」に変更する必要があります。

GUIで場所を変更する

GUIで場所を変更する方法は、Windows Vista/7/8/8.1の違いや、Windows 10ではそのバージョン(1507/1511/1607/1703/1709/1803/1809)の違いによって、変更するためのUIが異なります。

ここでは、2018年11月時点でWindows 10 1709/1803/1809で有効な方法です。Windows 10 1809より後のバージョンではGUIが変更になる可能性があります。

まずは、設定の「ネットワークとインターネット→状態」を開きます。

ネットワークとインターネットの設定の「状態」

この図の「状態」の場合は、「イーサーネット」ー「プライベート ネットワーク」となっています。そのため、ネットワークの場所は「プライベート」です。場所を変更するときは、「接続プロパティの変更」をクリックします。

すると、接続しているネットワークの設定画面が表示されます。

ネットワークとインターネットの設定の「接続の設定」

この図では、現在接続しているネットワークに「ネットワーク 6」という名前がついているため、上部に「ネットワーク 6」と表示されています。

ネットワークに接続すると、そのネットワーク接続に対してOSが自動的に名前を付けます。自動的につく名前は「SSID」、「イーサーネット」、「ネットワーク」、「ローカル エリア接続」などの名前です。重複する場合は後ろに数字が付きます。

この画面で、「パブリック」と「プライベート」を切り替えることができます。

場所の切り替えGUIが表示されない

しかし、環境によっては、この「パブリック」と「プライベート」の切り替えが表示されないことがあります。

実際、手持ちのいくつかのPCでは、表示されていません。Hyper-Vを使って、仮想スイッチを利用していていると表示されないのかもしれません。

表示されない場合、GUIでは変更できません。その場合は、コマンドラインで変更します。

CLI(コマンドライン)で場所を変更する(PowerShellを利用)

PowerShellを使うとGUIに切り替えUIが表示されていなくても変更できます。

PowerShellを管理者で起動する

設定内容を確認するだけなら、管理者権限は必要ありません。しかし、設定内容の変更をするためには、PowerShellを管理者権限で起動する必要があります。

管理者権限でPowerShellを起動する共通の方法

Windows 8以降では、以下の共通の手順でPowerShellを管理者権限で起動できます。

  1. キーボードの「Windows」キーと「X」キーを同時に押します。するとメニューが表示されます。
  2. このメニューの中に「コマンドプロンプト(管理者)」もしくは、「Windows PowerShell(管理者)」のいずれかの項目があります。
  3. メニュー項目を選択します。
    1. 「コマンドプロンプト(管理者)」の項目がある場合、それを選択します。その後、コマンドラインで、PowerShell.exeを起動します。
    2. 「Windows PowerShell(管理者)」の項目がある場合、それを選択します。

これで、管理者権限のPowerShellを起動できました。

管理者権限のPowerShell (Windows 8)
管理者権限のPowerShell (Windows 10)

Windows VistaやWindows 7の場合は、上記の手順では、できません。別の方法でコマンドプロンプトを管理者権限で起動し、そして、PowerShell.exeを起動することにより、PowerShellを管理者権限で起動してください。

PowerShellのコマンド(設定の確認)

現在の設定を確認するには、PowerShellのコマンドプロンプトで以下のコマンドを入力します。

現在の設定を確認

Get-NetConnectionProfile
PowerShell で設定の確認(Windows 10)

PowerShellのコマンド(設定の変更)

プライベートネットワーク、パブリックネットワークに設定する場合は、PowerShellのコマンドプロンプトで以下のコマンドを入力します。

設定するときは、どの接続に対して設定するかを指定する必要があります。「現在の設定を確認」で表示された「Name」や「InterfaceIndex」などで設定対象を指定します。Nameは日本語であったりし入力が面倒ですが、InterfaceIndexを使うと数値を入力するだけでよいので、入力が楽だと思います。

プライベート ネットワークに変更

ネットワーク名を使って設定する場合は、以下の通りです。

Get-NetConnectionProfile | where Name -eq "(ネットワーク名)" | Set-NetConnectionProfile -NetworkCategory Private

インターフェース番号を使って設定する場合は、以下の通りです。

Get-NetConnectionProfile | where InterfaceIndex -eq インターフェース番号 | Set-NetConnectionProfile -NetworkCategory Private
PowerShell で設定をプライベートに変更(Windows 10)

パブリック ネットワークに変更

ネットワーク名を使って設定する場合は、以下の通りです。

Get-NetConnectionProfile | where Name -eq "(ネットワーク名)" | Set-NetConnectionProfile -NetworkCategory Public

インターフェース番号を使って設定する場合は、以下の通りです。

Get-NetConnectionProfile | where InterfaceIndex -eq インターフェース番号 | Set-NetConnectionProfile -NetworkCategory Public
PowerShell で設定をパブリックに変更(Windows 10)

このように、PowerShellを使って、コマンドライン(CLI)でネットワークの場所を変更できます。

コメントを残す