Oleksandr - Fotolia
PowerShell 5.0: Konfiguration von Netzwerk-Switches mit dem NetworkSwitch-Modul
Bisher war das Netzwerk-Management in der PowerShell eher ein Randthema. Mit dem neuen NetworkSwitch-Modul der PowerShell 5.0 könnte sich das ändern.
Seit ihrer Einführung im Jahr 2006 wurde die Windows PowerShell kontinuierlich weiterentwickelt, um System-Administratoren bei der Verwaltung und Automatisierung verschiedener Aufgaben für Windows-Server und Windows-Clients zu unterstützen. Mit der neuen PowerShell 5.0 hat Microsoft den Funktionsumfang jetzt auf einen Bereich ausgedehnt, der Server-Administratoren bisher eher unbekannt war: Netzwerk-Switches.
2012 hat Microsoft die Verfügbarkeit der Open Management Infrastructure (OMI) angekündigt, einer Industrieinitiative, die das Management von Hardwaregeräten ein Stück weit öffnen soll. Microsoft will damit die Anzahl proprietärer Protokolle und Tools reduzieren, um stattdessen einen offenen Standard zu etablieren. Microsoft selbst unterstützt die OMI über die Datacenter Abstraction Layer (DAL). Bereits zu diesem frühen Zeitpunkt hat Microsoft auch die Unterstützung für die PowerShell integriert.
Als Teil von Microsofts DAL-Initiative wurde ein Programm namens Certified for Windows Network Switches implementiert. Über dieses Programm konnten Anbieter von Netzwerk-Appliances sicherstellen, dass ihre Management-APIs auch mit DAL funktionierten und über die PowerShell verwaltet werden konnten.
Mit der PowerShell 3.0 führte Microsoft dann ein Set an CIM-Cmdlets (Common Information Model) ein, mit denen Administratoren sowohl mit Windows-Systemen als auch mit anderen Netzwerk-Appliances interagieren konnten. Schon damals war es möglich, Netzwerk-Switches und andere Netzwerkhardware zu verwalten, ohne hierfür extra Software zu benötigen.
Viele PowerShell-Anwender empfanden den Umgang mit den CIM-Cmdlets aber als sehr mühsam, weshalb Microsoft die Nutzererfahrung mit dem NetworkSwitch-Modul der PowerShell 5.0 optimieren will.
Switch-Konfiguration mit dem NetworkSwitch-Modul
Die Möglichkeit zur Verwaltung von Netzwerk-Switches direkt in der PowerShell ist für einen Administrator ein Riesenschritt vorwärts. Aber wie probiert man diese Funktion am besten aus? Zunächst sollte man seine bisherigen Tools zum Netzwerk-Management nicht voreilig aussortieren. Damit sich Netzwerkgeräte nämlich überhaupt per PowerShell verwalten lassen, müssen sie nach wie vor das Management per OMI unterstützen. Informationen hierzu dürften sich beim jeweiligen Switch-Hersteller finden.
Sofern sich Unternehmens-Switches über OMI verwalten lassen, benötigt man zunächst noch das Windows Management Framework 5.0 (WMF 5.0) und zusätzlich das NetworkSwitchManager-Modul. Nach der Installation des WMF kann über den Befehl Get-Module überprüft werden, ob das Modul verfügbar ist.
Während man dann zwar zum Beispiel bereits Ports und VLANs verwalten kann, sind längst noch nicht alle Funktionen implementiert. Sowohl die PowerShell 5.0 als auch das NetworkSwitch-Modul sind beide noch recht neu und Microsoft wird hier in naher Zukunft sicherlich noch Cmdlets und Funktionen nachlegen.
Für den Anfang muss zunächst eine CIM-Sitzung mit einem unterstützten Switch eingerichtet werden. Hierfür wird der Befehl New-CimSession verwendet. Abhängig von der bevorzugten Methode können über New-CimSessionOption gleichzeitig auch gleich einige Konfigurationen vorgenommen werden.
Der folgende Code richtet eine CIM-Sitzung über HTTPS für den Host MYHOST und den Admin-Namen admin ein:
$option = New-CimSessionOption -UseSsl -SkipCACheck -SkipCNCheck -SkipRevocationCheck
$session = New-CimSession -CN MYHOST -port 5986 -Auth Basic -Credential admin -SessionOption $sessionOption
Sobald die CIM-Sitzung eingerichtet ist, muss diese Sitzung jedes Mal über den Parameter –CimSession spezifiziert werden, wenn eines der Modul-Cmdlets genutzt wird. Um beispielsweise alle Ports auf dem Switch anzeigen zu lassen, würde man den folgenden Befehl verwenden:
Get-NetworkSwitchEthernetPort –CimSession $session
Das Hinzufügen von $session an den CimSession-Parameter wird das Cmdlet zusammen mit den richtigen Anmeldedaten an den entsprechenden Host verwiesen, um anschließend alle Switch-Ports aufzulisten. Dieses Vorgehen ist wesentlich einfacher als die alte Methode zur Auflistung der Switch-Ports:
Get-CimInstance CIM_EthernetPort -CimSession $Session
Bevor das NetworkSwitchManager-Modul in die PowerShell integriert wurde, mussten Administratoren zuerst den Class Name des CIM wissen, was enorm umständlich war.
Um als weiteres Beispiel einen Port auf einem Switch zu deaktivieren, kann jetzt das Cmdlet Disable-NetworkSwitchEthernetPort verwendet und über den PortNumber-Paramter die CIM-Sitzung spezifiziert werden:
Disable-NetworkSwitchEthernetPort -CimSession $Session -PortNumber 21
Diese Methode des Switch-Managements ist wesentlich einfacher, als verschiedene Softwarepakete zu installieren und sich die unterschiedlichen Wege zu merken, wie sich die einzelnen Switch-Modelle konfigurieren lassen. Allerdings unterstützen bisher noch nicht alle Switch-Hersteller die OMI-Spezifikation, eine Nachfrage bei einem Anbieter eines offiziell nicht unterstützten Switches kann aber sicher nicht schaden.
Folgen Sie SearchNetworking.de auch auf Twitter, Google+ und Facebook!