Suchen

System-Administration mit Microsofts PowerShell Teil 1 Universalwerkzeug für Administratoren

| Autor / Redakteur: Markus Widl / Dipl.-Ing. (FH) Andreas Donner

Vor zwei Monaten veröffentlichte Microsoft die finale Version der PowerShell. Sie gilt als Nachfolger der eingestaubten Eingabeaufforderung cmd.exe und soll auch den Windows Script Host ablösen. IP-Insider stellt die PowerShell in einer Artikelserie vor.

Firmen zum Thema

( Archiv: Vogel Business Media )

Linux- und Unix-Administratoren haben in der Vergangenheit die eingeschränkten Möglichkeiten der Windows-Eingabeaufforderung belächelt – zu Recht, denn sie sind deutlich leistungsfähigere Funktionalitäten ihrer Shells gewohnt. Doch dies könnte nun bald anders werden. Die im November 2006 erschienene finale Version der PowerShell stellt einen deutlichen Fortschritt gegenüber cmd.exe oder auch dem Windows Script Host (WSH) mit seinen Scriptsprachen zur Automatisierung dar.

Microsoft setzt viel auf die PowerShell, was auch besonders am Exchange Server 2007 deutlich wird, der ebenfalls seit Kurzem in der Releaseversion erhältlich ist. Dort setzt die komplette Verwaltung auf der PowerShell auf. Die Exchange Management Console, eine MMC-Anwendung ruft dabei im Hintergrund PowerShell-Befehle auf. Dies geht sogar soweit, dass über die MMC gar nicht alle möglichen Konfigurationen vorgenommen werden können. Ein Beispiel dafür sind die öffentlichen Ordner, sie lassen sich nur über die PowerShell verwalten.

PowerShell mit Server-Integration

Es ist zu erwarten, dass die PowerShell in Zukunft eine immer wichtigere Rolle spielen wird, wenn auch die Verwaltung anderer Server-Produkte auf der PowerShell aufsetzen. Kaum ein Windows-Administrator wird dann ohne fundierte PowerShell-Kenntnisse auskommen. Dritthersteller haben das Potential der PowerShell erkannt und bieten bereits sogenannte Snap-Ins an, mit denen die Basisfunktionalität um neue Funktionen erweitert wird.

In sechs Monaten zum PowerShell-Profi

IP-Insider beschäftigt sich in einer zwölfteiligen Artikelserie über insgesamt sechs Monate intensiv mit der PowerShell. Jeweils zwei Teile der Serie wird IP-Insider pro Monat online stellen, sodass der letzte Teil des Intensivkurses im Juni zu lesen sein wird. In dieser ersten Folge werden Eigenschaften und Voraussetzungen geklärt. Außerdem werden einige einführende Beispiele gezeigt, um ein Gefühl für die Leistungsfähigkeit und den Aufbau von PowerShell-Befehlen zu vermitteln.

Die Artikelserie besteht aus folgenden Teilen:

  • PowerShell Teil 1 – Das Universalwerkzeug für Administratoren
  • PowerShell Teil 2 – Die PowerShell-Language
  • PowerShell Teil 3 – Cmdlets und der Pipeline Processor: die Herzstücke der PowerShell
  • PowerShell Teil 4 – Scriptdateien und Profile
  • PowerShell Teil 5 – Systemverwaltung mit PowerShell
  • PowerShell Teil 6 – Verwendung von .NET-Klassen
  • PowerShell Teil 7 – Windows Management Instrumentation (WMI) im Einsatz
  • PowerShell Teil 8 – Verwendung des Component Object Models (COM)
  • PowerShell Teil 8 – Zugriff auf das Active Directory über ADSI
  • PowerShell Teil 10 – XML mit PowerShell
  • PowerShell Teil 11 – Exchange Server 2007-Verwaltung mit PowerShell
  • PowerShell Teil 12 – PowerShell erweitern mit Produkten von Drittanbietern

.NET als Basis

Die PowerShell selbst wurde vollständig mit .NET-Technologien entwickelt und setzt auf dem .NET-Framework auf. Ein großer Vorteil darin liegt in der direkten Unterstützung des .NET-Objektmodells. Eventuell eingesetzte Variablen entsprechen den Datentypen des Frameworks. Auch der Zugriff auf die große Funktionsbibliothek des .NET-Frameworks steht dem Anwender offen. Mussten Script-Entwickler zu WSH-Zeiten auf spezielle COM-Objekte zurückgreifen, wenn die Basisfunktionalität des WSH nicht ausreichte, ist es nun häufig mit dem Aufruf einer Methode einer .NET-Klasse getan. Kenntnisse des .NET-Frameworks sind daher hier hilfreich.

Unterstützung unterschiedlicher Schnittstellen

Die PowerShell unterstützt den direkten Zugriff auf das Active Directory über ADSI („Active Directory Service Interface“). Aber auch herkömmliche COM-Objekte können nach wie vor eingesetzt werden. Ebenso finden Entwickler eine leistungsfähige Schnittstelle zum Aufruf von WMI-Funktionen mit Hilfe derer von der PowerShell aus andere Computer im Netzwerk verwaltet werden können.

Spannend ist auch das so genannte Navigationsparadigma. Dabei werden unterschiedliche Informationsspeicher über den gleichen Befehlssatz verwaltet. Das Paradigma orientiert sich dabei am Laufwerks-/Ordner-Konzept. So ist es beispielsweise möglich, die Systemregistrierung wie die Ordnerhierarchie auf einem Datenträger zu durchlaufen und Einträge wie Dateien zu verwalten.

Voraussetzungen zum Einsatz

Die PowerShell unterstützt folgende Betriebssysteme, wobei für die beiden letztgenannten bisher nur Beta-Versionen verfügbar sind:

  • Windows XP Service Pack 2
  • Windows Server 2003 Service Pack 1
  • Windows Vista
  • Windows Server „Longhorn“ (Nachfolger des Windows Servers 2003)

Für jedes dieser Betriebssysteme finden Sie jeweils ein eigenes Installationspaket. Den Link zum Download finden Sie am Ende des Artikels. Vor der PowerShell-Installation ist es erforderlich, zunächst das .NET-Framework 2.0 zu installieren.

PowerShell-Beispiele

Nun ist es Zeit für ein paar einführende Beispiele. Diese werden nicht im Detail erläutert, sie dienen nur der Verdeutlichung, wie die Arbeit mit der PowerShell aussieht.

1. Beispiel:

Eine Liste der vorhandenen Windows-Dienste, bestehend aus deren Namen und Status soll sortiert in einer CSV-Datei gespeichert werden. Der entsprechende Befehl (der auch in Form des Downloads „Beispiel1.ps1“ zur Verfügung steht) sieht folgendermaßen aus:

get-service | select-object -property name, status | sort-object -property name | export-csv -path „c:\services.csv“

2. Beispiel:

Eine Datei soll aus dem Web heruntergeladen und lokal gespeichert werden (Download: „Beispiel2.ps1“).

$web = new-object -typename Net.WebClient$web.DownloadFile(„http://www.IP-Insider.de/img/logo_vogel.gif“, „c:\logo_vogel.gif“)

3. Beispiel:

Für einen neuen Anwender soll ein neues Active Directory-Benutzerkonto angelegt werden. Außerdem benötigt er eine Exchange 2007-Mailbox (Download: „Beispiel3.ps1“).

new-mailbox -name „Max Meier“ -alias „meier“ -userprinciplename „meier@dom.sfx“ -organizationalunit „Finance“ -database „Mailbox Database“

All die angesprochenen Funktionalitäten finden Sie ausführlich erläutert in einem der folgenden Beiträge der Artikelserie wieder.

Artikelfiles und Artikellinks

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Kontaktieren Sie uns über: support.vogel.de (ID: 2002039)