読者です 読者をやめる 読者になる 読者になる

きよくらの備忘録

「三日坊主と呼ばせない!日記」改め。主にソフトウェア開発関連の話題。

Windows Server 2012 R2でネットワークの種別(NetworkCategory)を変更する方法

Windows Server 2012 R2でネットワークアダプタの種別(NetworkCategory )を「パブリック」から「プライベート」に、またその逆の変更を行おうとしてすごくハマってしまいました。 次にやるときも忘れてハマる自信があるので、少し整理してメモします。

なお、今回悩んでる際、色々と@さんにアドバイスいただきました。感謝。

 

種別を切り替える方法は3種類

ネットワークの種別を切り替える方法はOSのバージョンが変わるたびにちょくちょく変更されています。

特にWindow 8以降は「ネットワークと共有センター」から変更できなくなっていて、しかも、8 & Server 2012 / 8.1 / Server 2012 R2で微妙に違うという状態になっています。

Windows Server 2012 R2でネットワークの種別を切り替える方法は、3種類ほどあるようです*1

  • 方法1:ローカルセキュリティーポリシーの設定を変更する
  • 方法2:PowerShelllでNetConnectionProfileの設定を変更する
  • 方法3:エクスプローラーのネットワークから「プライべート」に切り替える(注意)

ただし、最後の『エクスプローラーのネットワークから「プライべート」に切り替える』は「パブリック -> プライベート」一方通行であり、また注意すべき点があります。詳細は後述しますが、「方法3」を採用される場合はすこし慎重に検討してみてください。

 

方法1:ローカルセキュリティーポリシーの設定を変更する

一つ目は、ローカルセキュリティーポリシーの設定を変更する方法です。GUIツールを使って変更を行います。

1.ローカルセキュリティーポリシーの「ネットワーク リスト マネージャー ポリシー」を開く

何らかの方法でローカルセキュリティーポリシーの設定画面にアクセスします(例えば、[サーバマネージャー]から[ツール]-[ローカル セキュリティー ポリシー]を開く等)。 f:id:kiyokura:20140309153241p:plain

2.該当のネットワーク名のプロパティを開く

[ネットワーク リスト マネージャー ポリシー]の右ペインから、該当のネットワーク名を選んでダブルクリック等でプロパティーを開きます。 ネットワーク名は、例えば「ネットワークと共有センター」で表示されている名前です。下記の例だと『ネットワーク』というのが該当します。 f:id:kiyokura:20140309153242p:plain

3.「場所の種類」を変更

[ネットワークの場所]タブから、「場所の種類」を変更し、[適用]または[OK]で確定させます。 f:id:kiyokura:20140309153243p:plain

4.グループポリシーを適用する

GUIから設定を変更しても、すぐには反映されません。例えば、下記のコマンドをプロンプトから実行してポリシーを強制的に再適用します。

C:\>gpupdate /force

以上、変更可能です。

(もし、これで変更が有効になっていない場合は、それ以前に「方法3:エクスプローラーのネットワークから「プライべート」に切り替える」を行っているかもしれません。その場合は次の「方法2:PowerShelllでNetConnectionProfileの設定を変更する」を試してみて下さい)

 

方法2:PowerShelllでNetConnectionProfileの設定を変更する

2つ目は、PowerShellで直接設定を書き換える方法です。@さんに教えていただきました。

方法は簡単で、PowerShellのプロンプトから下記のコマンドを実行するだけです。 なお、下記のコマンド中の『ネットワーク』は該当のネットワークの名前です(ネットワーク名は方法1の「2.該当のネットワーク名の~」を参照)

プライベートに変更する場合

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

パブリックに変更する場合

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

実行例

ネットワーク名が「ネットワーク」の場合、実行例はこのようになります。 ※なお、この場合はgpupdateも必要ありません(ポリシーを変更したわけでは無いので)。 f:id:kiyokura:20140309153244p:plain

 

方法3:エクスプローラーのネットワークから「プライべート」に切り替える

最後に「パブリック」から「プライベート」に切り替える方法として、エクスプローラーを利用した操作を紹介します。 (参考: http://tubapr.hatenablog.com/entry/2013/12/20/162938

ただし、この方法で設定を行った場合、私の環境では少し不具合(?)が発生しました。「注意点」として後述します。

1.エクスプローラーを起動し、「ネットワーク」を選択

エクスクローラーを起動して「ネットワーク」を表示します。しばらくするとアドレスバーの下あたりにメッセージが表示されますので待ちます。

2.「ネットワーク探索とファイル共有が無効になっています。…」をクリック

表示されたメッセージをクリックします。 f:id:kiyokura:20140309153245p:plain

3.「ネットワーク探索とファイル共有の有効化」をクリック

f:id:kiyokura:20140309153246p:plain

4.「いいえ、接続しているネットワークを…」をクリック

f:id:kiyokura:20140309153247p:plain

以上で、ネットワークを「パブリック」から「プライベート」に切り替えることができます

注意!

ただし、この方法でプライベートに切り替えた場合、それ以降は「方法1:ローカルセキュリティーポリシーの設定を変更する」を行っても変更が反映されないという現象が発生しました。

これは私の環境だけのものなのか、それとも一般的に発生するものなのか、また仕様なのか不具合なのかについては調べてきれていません。

また、この操作を一度設定を行うと、同様の操作で再度「パブリック」に戻すこともできなさそうです(エクスプローラーやコントロールパネルから、この逆となる操作が見当たらない)。

なお、「方法2」で挙げたPowerShellのコマンドレットはこの後も有効でした。再度変更を行う必要がある場合は、PowerShellでやってみてください。

 

なんらかの方法で回復は可能なのではないかとは思いますが*2、現在のところ私はこれ以上調べきれていないません。そのため、とりあえず今後もこの「方法3」では設定は行わないようにしようと思っています*3

 

まとめ

Window Server 2012のネットワークの種別(NetworkCategory)の変更についてまとめてみました。

Window 7の時のように「ネットワークと共有センター」から変更できると楽だなーと思うのですが、とりあえず現状はこのような状態のようです。 が、私はこのあたりについては疎いので、特に方法3についてなんらか情報をご存知の方がおられれば、コメント等いただけると大変助かります。

*1:他にもあるかもしれませんが

*2:最終的にはレジストリやグループポリシーの何処かで設定内容が保存されているはず

*3:簡単な回復方法がわかれば別ですが