質問: デフォルトでパブリックに設定するのではなく、将来のネットワーク接続をプライベートロケーションに設定します windows server 2012および2012r2では、デフォルトでパブリックファイアウォールプロファイルを使用する代わりに、プライベートファイアウォールプロファイルを使用するように将来のネットワーク接続を設定できますか?secpol.msc->セキュリティ設定->ネットワークリストマネージャーポリシーですべてのネットワークアイテムをプライベートに設定しようとしましたが、新しいネットワークに接続すると、常にデフォルトでパブリックになります。または、サーバー以外のバージョンのwindowsで表示される[ネットワークの場所の設定]ダイアログを再度有効にする方法はありますか。これは、少なくとも問題を軽減するのに役立ちます。
回答: このセキュリティの「機能」は仕様によるものです。 「新しい」または「認識されない」ネットワーク上のサーバーは、デフォルトでパブリックプロファイルになります。ドメインプロファイル上になく、dc)ではなく、(ネットワークを識別するための)dnsルックアップが失敗しているため、現在のネットワークを「不明な」ネットワークとして定義し、したがって、デフォルトで「パブリック」プロファイルになります。サーバーをドメインに参加させることでこの問題を回避できます。そうすると、ネットワークの場所が「ドメインネットワーク」に設定されます。ただし、常に「新しい」ネットワークに接続している場合、このソリューションは理想的ではないか、不可能な場合もあります。 信頼できるネットワーク上にいて、これが発生している場合、またはこのサーバーがdcである場合、サービス「ネットワークロケーション認識」を遅延開始に設定すると、この問題が解決します。 サーバーが別のネットワークに「移動」している場合、またはdcが存在しない場合)、次のpowershellスクリプト( windows powershell team blog から)を実行して設定できます。 「プライベート」にするすべてのネットワークプロファイル:# skip network location setting for pre-vista operating systems if([environment]::osversion.version.major -lt 6) { return } # skip network location setting if local machine is joined to a domain. if(1,3,4,5 -contains (get-wmiobject win32_computersystem).domainrole) { return } # get network connections $networklistmanager = [activator]::createinstance([type]::gettypefromclsid([guid]"{dcb00c01-570f-4a9b-8d69-199fdba5723b}")) $connections = $networklistmanager.getnetworkconnections() # set network location to private for all networks $connections | % {$_.getnetwork().setcategory(1)} 起動時にこのスクリプトを実行するスケジュールされたタスクを作成する場合は、次の優れたチュートリアルがあります: "windowsタスクスケジューラを使用してwindows powershellスクリプトを実行する" 。