System-Administration mit Microsofts PowerShell Teil 12 Microsofts PowerShell mit Produkten von Drittanbietern erweitern
In diesem letzten Teil der PowerShell-Artikelserie zeigt IP-Insider, wie die Basisfunktionalität der PowerShell durch SnapIns von Drittanbietern erweitert werden kann.
Anbieter zum Thema
Microsofts PowerShell bietet in der Basisinstallation mit den mitgelieferten Cmdlets und der integrierten Scriptsprache eine relativ gute Grundfunktionalität. Reicht diese nicht aus, kann der Anwender auf Techniken wie das .NET-Framework-Klassenmodell, ADSI, COM und WMI zurückgreifen und diese direkt aus der PowerShell heraus nutzen. Doch dabei stellt sich das Problem der teilweise erheblich unterschiedlichen Konventionen. Grundsätzlich wäre es wünschenswert, die gesamte Funktionalität mit Cmdlets abdecken zu können, was die Arbeit mit der PowerShell erheblich vereinfachen würde.
Aus diesem Grund gibt es bereits von einigen Drittanbietern SnapIns, die weitere Cmdlets enthalten, die in die PowerShell geladen werden können. Auch ist in der Vergangenheit eine Community entstanden, die Erweiterungen für die PowerShell entwickelt.
Das Prinzip der SnapIns ist nicht neu: Der Microsoft Exchange Server 2007 liefert ebenfalls ein SnapIn, mit dem die PowerShell um Cmdlets zur Exchange-Server-Verwaltung erweitert. Dieser Artikel stellt einige der heute bereits verfügbaren PowerShell-Erweiterungen vor:
- PowerGadgets: Cmdlets zur grafischen Ausgabe von Zahlenmaterial in Diagrammen und Tachometern sowie zum einfachen Zugriff auf Datenbanken
- PowerShell Community Extensions: umfangreiche Funktionssammlung mit Cmdlets, Funktionen, Filtern und Aliassen
- Quest Management Shell for Active Directory: Cmdlets zum Verwalten von Active Directory-Objekten
PowerGadgets
Die kommerziellen PowerGadgets sind primär zur grafischen Ausgabe von Daten gedacht. Die wesentlichen Cmdlets des SnapIns sind out-chart, mit dem Diagramme in verschiedenen Variationen ausgegeben werden können, out-gauge, zur dynamischen Darstellung eines Wertes in Skalen und out-map zur Ausgabe von Kartenmaterial.
out-chart kann als Pipeline-Schritt eingesetzt werden. Hier ein Beispiel:
get-process | select-object ProcessName,Handles | out-chart | stop-process
Mit out-chart werden die ausgewählten Objekteigenschaften standardmäßig mit einem Balkendiagramm visualisiert. Der Anwender kann per Mausklick eines der Objekte auswählen, welches dann über die Pipeline an das nächste Cmdlet weitergleitet wird.
Neben den genannten Cmdlets zur Visualisierung enthalten die PowerGadgets auch das Cmdlet invoke-sql, welches den einfachen Zugriff auf Datenbanken über SQL-Befehle ermöglicht. Ein Beispiel:
Invoke-sql -connect $connection -sql „select * from [products]“
Die Variable $connection muss dabei den üblichen Connection-String enthalten, der die zu verwendende Datenbank bestimmt. Das Cmdlet liefert im Beispiel die entsprechenden Datensätze als Objekte, die dann über die Pipeline weiterverarbeitet werden können.
Auf der Produkt-Website sind einige Videos zu finden, die den Leistungsumfang der PowerGadgets darstellen.
PowerShell Community Extensions
Mit den PowerShell Community Extensions ist ein SnapIn mit vielen Cmdlets erhältlich. Dieses SnapIn wurde von einigen PowerShell-Anhängern entwickelt und wird kostenlos verteilt. Eine Liste aller enthaltenen Cmdlets lässt sich nach der Installation über get-pscxcmdlet ermitteln. Darunter befinden sich in der Praxis oft gewünschte Befehle wie write-zip, zum Erstellen von Zip-Dateien und send-smtpmail zum einfachen E-Mail-Versand direkt aus der Shell heraus.
Außerdem wird mit den Community Extensions ein PowerShell-Profil installiert, das bei jedem Start der Shell gestartet wird und einige Aliase, Funktionen und Filter einrichtet. Ein eventuell vorhandenes Profil sollte vor der Installation jedoch gesichert werden.
Die PowerShell Community Extensions werden laufend erweitert. Ein Blick in die angebotene Funktionsvielfalt lohnt sich für jeden PowerShell-Anwender.
Quest Management Shell for Active Directory
Im Basisumfang der PowerShell ist die Verwaltung der Active Directory-Objekte ein mühsames Unterfangen. Der Zugriff erfolgt über die objektbasierte Schnittstelle ADSI (Active Directory Service Interface), welche relativ komplex in der Anwendung ist. Deutlich komfortabler gestaltet sich dagegen die Arbeit mit der Management Shell for Active Directory der Firma Quest. Das SnapIn ist derzeit ebenfalls kostenlos erhältlich und bringt eine Reihe von Cmdlets speziell für die AD-Verwaltung mit. Es enthält etwa das Cmdlet new-qaduser, mit dem das Erstellen eines Benutzerkontos ohne die direkte Anwendung von ADSI möglich ist. Hier ein Beispiel:
new-qaduser -name „Max Mustermann“ -ParentContainer „OU=Finance,DC=dom,DC=ain“ -SamAccountName „mustermann“ -UserPassword „password“
Neben new-qaduser sind auch die Befehle get-qaduser und set-qaduser zum Auslesen und Ändern von Benutzerkonto-Eigenschaften enthalten. Nicht nur die Verwaltung der Konten wird berücksichtigt, sondern ebenso die der Gruppen und Computer. Außerdem sind Cmdlets mit der Endung „-qadobject“ vorhanden, mit denen auf die anderen AD-Objekte zugegriffen werden kann.
Mit diesem Artikel endet die PowerShell-Artikelserie. IP-Insider wünscht allen Lesern stets gutes Gelingen beim Einsatz der neuen Shell.
Artikelfiles und Artikellinks
(ID:2005695)