Unter Windows die Netzwerkkategorie mittels Powershell ändern

Seit Windows Vista und Windows Server 2008 unterscheidet das Betriebssystem Netzwerke nach drei Kategorien: Öffentlich, Arbeitsplatz und Privat. Per Standard wird immer, sofern keine Auswahl erfolgt, Öffentlich verwendet.

Ein nachträgliches Ändern ist nicht immer möglich. Ferner stehen unter Windows Server Core oder Hyper-V Server keine grafischen Oberflächen wie die entsprechenden Einträge in der Systemsteuerung zur Verfügung. Abhilfe schaffen Befehle in der Powershell:

Grundsätzlich kann man für jede Netzwerkkarte die Kategorie ändern, dazu kann man zunächst mit dem Befehl

get-netconnectionprofile

den aktuellen Stand auslesen. Die Ausgabe sieht beispielsweise so aus:

Name : lab.local
InterfaceAlias : Ethernet 2
InterfaceIndex : 13
NetworkCategory : Public
IPv4Connectivity : Internet
IPv6Connectivity : LocalNetwork

Um nun für diese Netzwerkkarte die Kategorie zu ändern, folgenden Befehl ausführen:

set-netconnectionprofile -interfaceindex 13 -networkcategory private

Möchte man für alle Netzwerkkarten die Kategorie ändern, kann der Parameter “-interfaceindex” weggelassen werden.

Persönliche Bemerkung

In meinem Fall kommen diese Befehle meist in Verbindung mit Hyper-V Server zum Einsatz. Allerdings auch bei einem etwas störrischen Windows Server 2012 R2 Standard, der nach einem Neustart öfters schon der Meinung war, das die LAN-Schnittstelle wieder “Öffentlich” ist. Als workaround wurde folgendes Skript als Aufgabe hinterlegt:

@echo off
powershell get-netconnectionprofile -interfaceindex 22 | find "Private"
if %errorlevel%==1 powershell set-netconnectionprofile -interfaceindex 22 -networkcategory private

Kurzum: Die Netzwerkkategorie wird nur geändert, sollte Sie nicht bereits auf “Private” stehen.

Quellen

Change Hyper-V Network Category from Public to Private using Powershell

Network Connection Cmdlets in Windows PowerShell

Update 08.02.2019

Anbei ein kleines Skript, mit dessen Hilfe man schneller die Netzwerkkategorie auf “Privat” umstellen kann. Das Skript mit erhöhten Rechten (als Administrator) ausführen. Es wird zunächst die aktuelle Netzwerkkategorie angezeigt, dann wird abgefragt für welche Schnittstelle diese geändert werden soll. Zum Schluss wird das Ergebnis angezeigt.

@echo off

title Netzwerkkategorie konfigurieren

rem Netzwerkkategorie anzeigen

 powershell get-netconnectionprofile

rem Abfrage

 set /p index=Bitte den InterfaceIndex eingeben: 

rem Netzwerkkategorie festlegen

 powershell set-netconnectionprofile -interfaceindex %index% -networkcategory private

rem Nochamls die Netzwerkkategorie anzeigen

 cls
 powershell get-netconnectionprofile

rem Auf die "Beliebig"-Taste warten

 pause

Hilfreich war dieses Helferlein nun schon bei einem Neukunden als eine vorhandene Arbeitsgruppe umkonfiguriert werden musste als auch bei der Inbetriebnahme neuer PCs.

3 Kommentare

  1. Peter Kriegel

    Hallo Andy!

    Schöner Artikel!
    Man sollte noch erwähnen, das die genannten PowerShell Cmdlets erst unter Windows 8 und Server 2012 zu verfügung stehen.

    Besuch uns doch auf unsere deutschsprachigen PowerShell Community.

    gruss
    Peter Kriegel
    http://www.PowerShell-Group.eu

  2. Peter Kriegel

    Fehlerteufel …Bitte ändere die Homepage Adresse von meinem letzten Komentar.
    Richtig ist: http://www.PowerShell-Group.eu
    grmmfff….

  3. andy

    Done 😉

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

© 2024 Andy's Blog

Theme von Anders NorénHoch ↑