Nice 2 Know IT

Windows Netzwerkstandort ändern - mit PowerShell Zeit und Nerven sparen

Mit Windows PowerShell den Netzwerkstandort ändern


Wer Windows kennt, weiß auch was für eine Zicke im Kern stecken kann. So ist es nicht unüblich, dass sich das Netzwerkprofil trotz internem DHCP auf „Öffentliches Netzwerk“ festlegt und auf Anhieb keine Möglichkeit bleibt den Netzwerkstandort zu ändern. Es existieren viele Anleitungen im Netz, wie man diesen Fehler beheben kann. Dieser Artikel bezieht sich was PowerShell angeht auf Server 2012 und Windows 8. Für Windows Vista / Windows 7 / Server 2008 stehen am Ende des Artikels nützliche Tipps und Hinweise zu diesem Thema.

Windows Netzwerkstandort mit Powershell ändern

 

Warum diese Profile?

Die Festlegung über die Netwerkprofile (auch bekannt als Netzwerkstandorte) wurde mit Windows Vista eingeführt und ist nichts anderes als eine Vorabkonfiguration der Windows Firewall und dient dem Schutz vor unberechtigten Datenzugriff. Je nach Netzwerkstandort wird in der Firewall eingehender Netzwerkverkehr stark eingeschränkt (öffentliches Netzwerk) oder bestimmte Dienste wie Datei- und Druckerfreibage für eingehende Anfragen frei gegeben. Die Bestimmung des Netzwerkprofiles wird für jede angeschlossene Netzwerkkarte separat festgelegt.

 

Problembehebung

Bevor man mit PowerShell irgendetwas erzwingt, kann man die üblichen Hilfeanwendungen ausführen, welche Windows von Haus aus schon mit sich bringt. In diesem Fall wäre es der Netzwerkdiagnosedienst den man im Netzwerk- Freigabecenter startet. Im Normalfall ist dieser durchaus dazu in der Lage, das Problem zu erkennen und zu beheben.

Windows Netzwerkstandort mit Powershell ändern

 

Kann die Netzwerkdiagnose das Problem nicht beheben und lässt sich das Profil nach wie vor nicht ändern, so kann man durch aus PowerShell zur Hand nehmen und mit wenigen Befehlen die gewünschte Konfiguration herbeizaubern. In der Server-Core Variante bleibt einem eh nichts anderes übrig.

 

Netzwerkstandort mit PowerShell festlegen

Im Detail betrachtet, sind alle ausführbaren Konfigurationsanwendungen (Netzwerkkonfiguration, ServerManager etc) nichts anderes als PowerShell-CMDlets, die über ein GUI ausgeführt werden. Der wohl häufigste Grund, warum Windows niemand über eine reine Konsole bedienen möchte liegt wohl an den tausend Syntaxen. Da scheint es bei Microsoft keine Linie zu geben, die den Standard definiert.

Windows Netzwerkstandort mit Powershell ändern

 

Get-NetConnectionProfile
Zeigt zu allen aktiven Netzwerkkarten die aktuelle Profilkonfiguration an. Wichtig hierbei ist der Schnittstellenindex (InterfaceIndex). Dieser Index ist einmalig für jede Netzwerkkarte vergeben und muss angesprochen werden, wenn Netzwerkkonfigurationen über PowerShell geändert werden soll.

Set-NetConnectionProfile –InterfaceIndex 12 -NetzworkCategory Private
Legt den Netzwerkstandort „Privat“ für die Netzwerkkarte mit dem Index 12 fest. Das war der ganze Zauber. Du kannst es erneut überprüfen, indem du den ersten Befehl noch mal ausführst. Statt Public sollte nun Private für die Netzwerkkarte festgelegt sein. Wer von dieser Einstellung erst dann überzeugt ist, wenn er ein buntes Bildchen sieht, kann diesen Status auch im Netzwerk- u. Freigabecenter überprüfen. Das Ergebnis sollte dann ein bisschen Ähnlichkeit mit dem nachfolgenden Bild haben.

Windows Netzwerkstandort mit Powershell ändern

 

Und wie mach ich das bei Windows Vista oder Windows 7?

Der Unterschied steckt wieder im Detail. Das oben genannte PowerShell-CMDlet ist für diese Betriebssystemversionen nicht verfügbar. Wenn hier die Netzwerkdiagnose versagt, kannst du versuchen über folgenden Befehl die Netzwerkkonfiguration zu löschen (reset). Dafür brauchst du allerdings NetShell bekannt unter dem Zauberwort netsh.

netsh int ip reset
Dieser Befehl (über die cmd) führt einen vollständigen Reset der Netzwerkadapter aus. Der endgültige Reset wird durch einen anschließenden Neustart abgeschlossen. Folgende Registrierungswerte werden außerdem überschrieben:

HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
HKLM\SYSTEM\CurrentControlSet\Services\DHCP\Parameters

Beim Portieren eines virtuellen Gastsystems zwischen unterschiedlichen HyperVisoren (HyperV oder vmWare) empfehle ich die Ausführung des Befehls, wenn die Netzwerkkonfiguration im Gast nicht geändert werden soll. Grund ist, dass jeder HyperVisor andere Treiber dem Gast zuspielt und das System sofort erkennt, wenn eine gleiche Konfiguration für eine Netzwerkkarte verwendet wird, die bereits einem anderen Adapter zugeordnet war. Rein theoretisch kann darauf auch verzichten, da der Vorgängeradapter eh nicht mehr zum Einsatz kommt. Aus meiner Erfahrung heraus empfehle ich euch, macht es.

 

Weitere Möglichkeiten

Für Windows Vista und Windows 7 kann diese Konfiguration auch über die Systemregistrierung erfolgen. Die bevorzugte Lösung ist es dennoch nicht. Ein Eingriff in die Systemregistrierung empfehle ich nur im äußerstem Notfall und auch nur dann, wenn die Systemregistrierung vorher gesichert wurde. Folgender Schlüssel bestimmt den Netzwerkstandort bzw. das Netzwerkprofil.

Den Registrierungseditor (regedit) als Administrator ausführen und unter dem Pfad

Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\profiles\[Profil]
den DWORD-Wert Category auf den gewünschten Wert setzen (0 = Öffentlich, 1 = Privat, 2 = Arbeitsplatz)

„Das [Profil] steht für die registrierten Netzwerke, an welchem der PC schon aktiv war. Der Profilname wird als eine eindeutige GUID in der Registrierung angezeigt Bsp.: {03AABE0F-29A7-4C95-86DD-A0CB6BD2AF15}. Ein Key innerhalb des Schlüssels, gibt Auskunft über den Netzwerkname (Key = ProfilName)“

 

Netzwerkprofil über GPO festlegen

Bei allen Betriebssystemversionen von Windows Vista und Windows 7 (mit Ausnahme Home, Basic und Starter) kann das Netzwerkprofil auch über eine Sicherheitsrichtlinie festgelegt werden. Über Richtlinien kannst du festlegen, welches Netzwerkprofil für Nicht-Identifizierte-Netzwerke aktiviert werden soll. Unter anderem lässt sich außerdem auch festlegen, ob Änderungen an Netzwerkprofilen für den Benutzer überhaupt zulässig sind. Dazu einfach [Windows] + [R] oder über die Suchfunktion secpol.msc eingeben und als Administrator ausführen.

Windows Netzwerkstandort mit Powershell ändern

 

Die Einstellungen sind alle selbsterklärend, man muss lediglich mit geöffneten Augen lesen. Wichtig hierbei, denkt bitte daran, dass es sich um eine globale Einstellung handelt, welche sich auf alle zukünftigen Verbindungen auswirkt. Wenn du an dieser Stelle festlegst, dass alle Nicht-Identifizierten-Netzwerke vom Standorttyp Privat sind, dann gilt diese Einstellung auch für dein UMTS-Stick oder deinen persönlichen Telefonhotspot. Diese Richtlinie ist also mit Vorsicht zu genießen, solltest du dein Gerät mobil verwenden oder häufig den Standort wechseln.

Windows Netzwerkstandort mit Powershell ändern

 

Fazit

Mehrere Wege führen bekanntlich nach Rom. Welcher davon besser ist, bleibt wohl Geschmacksache. Wenn gar nichts funktioniert hilft vielleicht ein ausgiebiger Sonnentanz, eine Opfergabe an den IT-Gott oder das unkontrollierte dreschen auf der Tastatur. Auf jeden Fall solltest du dabei laut schreien um deine Nachbarn oder Kollegen von der Unlösbarkeit zu überzeugen. Spaß bei Seite, danke fürs lesen und eure Kommentare :)

 Bewerte den Beitrag
1 1 1 1 1 1 1 1 1 1 (6 Votes)

Kommentar schreiben


Sicherheitscode
Aktualisieren

Copyright © 2017. All Rights Reserved.