2014/12/22

PowerShell ネットワークのカテゴリを変更する~PublicからPrivateへ

Windows Server 2012 R2へリモート デスクトップ接続を試みるも接続できない。また、Pingの応答も返ってこない・・・
Windows Serverの「ネットワークと共有センター」の「アクティブなネットワークの表示」を確認すると「識別されていないネットワーク」また、「パブリック ネットワーク」になっていました。
Firewallのポリシー通りの動きになっています!ある意味、安心しました。
今回は、PowerShellを使ってネットワークのカテゴリをパブリック ネットワークからプライベート ネットワークへ変更する方法をメモ。

ネットワークのカテゴリとは?

「ネットワークと共有センター」を開き、「アクティブなネットワークの表示」欄にある
  • プライベート ネットワーク
  • パブリック ネットワーク
  • ドメイン ネットワーク
と書かれている部分が「ネットワークのカテゴリ」です。
2014-12-22_224807
「アダプターの設定の変更」の一覧を「詳細」にすると良く分かります。
image

手順

ネットワークのカテゴリを変更する場合、GUIで設定するよりもPowerShellを使った方が非常に楽です PowerShell Set-NetConnectionProfile コマンドレットを実行する事で変更できます。
手順は下記の通り。
  1. PowerShellを管理者権限で起動
  2. Get-NetConnectionProfile コマンドレットを実行、Name パラメータの値を確認
    image
  3. Set-NetConnectionProfile コマンドレットを実行し、ネットワーク カテゴリをPrivateへ変更
    >Get-NetConnectionProfile -Name "識別されていないネットワーク" | Set-NetConnectionProfile -NetworkCategory private
  4. Get-NetConnectionProfile コマンドレットをもう一度実行し、NetworkCategory パラメータの値がPrivateに変更されているか確認
    image

Windows 8.xでも実行できます

Technet ライブラリ「Get-NetConnectionProfile」及び「Set-NetConnectionProfile」を確認、Windows 8/Windows Server 2012からこのコマンドレットは利用できます。
GUIから設定よりもPowerShellを使った方が簡単ですね。
余談:Network Location Awarenessの仕組み
今回の環境はDefault Gatewayを設定していないため、ネットワーク カテゴリは「パブリック ネットワーク」になりました。
image
そのため、Windows ファイアウォールの「ゲストまたはパブリック ネットワーク」に接続され、リモート デスクトップ接続やPingの応答がなかった訳です。
Technet ライブラリを調べると「Network Location Awareness」という仕組みなんですね。
仕組みが説明されているので、非常に勉強になりました!
Network Location Awareness - Technet ライブラリ
スポンサーリンク

スポンサーリンク