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スクリプトを実行する" 。