web-dev-qa-db-ja.com

デフォルトでパブリックに設定するのではなく、将来のネットワーク接続をプライベートロケーションに設定します

Windows Server 2012および2012R2では、デフォルトでパブリックファイアウォールプロファイルを使用する代わりに、プライベートファイアウォールプロファイルを使用するように将来のネットワーク接続を設定できますか?

secpol.msc->セキュリティ設定->ネットワークリストマネージャーポリシーですべてのネットワークアイテムをプライベートに設定しようとしましたが、新しいネットワークに接続すると、常にデフォルトでパブリックになります。

または、サーバー以外のバージョンのWindowsで表示される[ネットワークの場所の設定]ダイアログを再度有効にする方法はありますか。これは、少なくとも問題を軽減するのに役立ちます。

3
SausageFingers

このセキュリティの「機能」は仕様によるものです。 「新しい」または「認識されない」ネットワーク上のサーバーは、デフォルトでパブリックプロファイルになります。ドメインプロファイル上になく、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スクリプトを実行する"

2
G Koe