Dieses Sicherheitsmerkmal ist beabsichtigt. Server in einem "neuen" oder "unbekannten" Netzwerk verwenden standardmäßig das öffentliche Profil. Da es sich nicht in einem Domänenprofil befindet, kein Domänencontroller ist und keine DNS-Suchvorgänge (zum Identifizieren des Netzwerks) fehlschlagen, wird das Netzwerk, in dem Sie sich befinden, als "unbekanntes" Netzwerk definiert und daher standardmäßig das "öffentliche" Profil.
Sie könnten dieses Problem umgehen, indem Sie dem Server eine Domäne hinzufügen. Dadurch würde der Netzwerkstandort auf "Domänennetzwerk" festgelegt. Obwohl diese Lösung für Sie möglicherweise nicht ideal oder sogar möglich ist, wenn Sie ständig Verbindungen zu "neuen" Netzwerken herstellen.
Wenn Sie sich in einem vertrauenswürdigen Netzwerk befinden und dies geschieht oder dieser Server ein Domänencontroller ist, wird dieses Problem behoben, wenn Sie den Dienst "Network Location Awareness" auf verzögerten Start einstellen.
Wenn Ihr Server in andere Netzwerke "reist" oder kein Domänencontroller vorhanden ist, können Sie das folgende Powershell-Skript (vom Windows-Powershell-Teamblog ) ausführen, um alle Netzwerkprofile auf "privat" zu setzen:
# 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]"")) $connections = $networkListManager.GetNetworkConnections() # Set network location to Private for all networks $connections | % {$_.GetNetwork().SetCategory(1)}
Wenn Sie eine geplante Aufgabe erstellen möchten, um dieses Skript beim Start auszuführen, finden Sie hier ein hervorragendes Lernprogramm: "Verwenden Sie den Windows Task Scheduler, um ein Windows PowerShell-Skript auszuführen" .