Open Source im professionellen Einsatz

Newsletter abonnieren
Seite durchsuchen

HEFTARCHIV | NEWS | E-BIBLIOTHEK | VIDEO | BLOGS | WHITEPAPER | EVENTS | ACADEMY | ABO | SHOP

user friendly

  Home  »  Heft & Abo  »  Heftarchiv  »  2006  »  12  »  Muschelzucht im Ausland  

RSS-Feed der aktuellen News von Linux-Magazin Online Folgen Sie Linux-Magazin Online auf Twitter
Diesen Artikel druckenDiesen Artikel weiterempfehlen Diesen Artikel kommentieren Newsletter abonnieren
Share/Bookmark

© photocase.com

Microsofts Powershell kurz vor ihrer Fertigstellung

Muschelzucht im Ausland

von Holger Schwichtenberg
Erschienen im Linux-Magazin 2006/12

Microsoft veröffentlicht demnächst eine Admin-Shell für Windows, die diesen Namen auch verdient. Beim Pipelining verhält sich die Powershell unter Umständen sogar robuster als die Unix-Pendants, weil sie typisierte Objekte durchreicht.

Windows ist der Inbegriff für (bunte) grafische Oberflächen, die ohne Maus faktisch unbedienbar sind. Des Einsteigers Freud ist des Admin Leid, wenn er sich bei wiederkehrenden Alltagsaufgaben die Finger wund klickt. Denn die mit Windows gelieferte Kommandozeilen-Schnittstelle ist seit DOS-Zeiten kaum verändert und funktional ein Torso.

Erkannt hat Microsoft dieses Problem bereits Ende der 90er Jahre. Damals entstand der Windows Script Host (WSH), anfangs auch Windows Scripting Host genannt. Mit dem WSH übertrug Microsoft das zu dieser Zeit aufkommende Browser-Scripting mit Javascript und VBscript auf das Betriebssystem. Technisch basiert der WSH auf dem Component Object Model (COM), einem Softwarekomponenten-Modell, das viele Windows-Anwendungen und auch Teile des Betriebssystems verwenden.

Positiv am WSH ist, dass der Administrator sowohl Windows-Systemdienste als auch Anwendungen wie Word, Excel und Powerpoint mit den gleichen Instrumenten steuern kann. So sind Skripte möglich, die den Zustand von Windows in Excel oder Word dokumentieren. Negativ ist, dass der Administrator zum Erreichen dieser Ziele ein breites Wissen über objektorientiertes Programmieren und Softwarekomponenten braucht, denn COM richtet sich an Programmierer, nicht an Administratoren.

Von Unix-Admins gelernt

Im Zuge der Entwicklung von Windows Server 2003 gab Microsoft eine Studie in Auftrag, bei der Unix-Administratoren gefragt wurden, welche Werkzeuge sie benutzen. Als kurzfristige Folge - Linuxer wundert\'s kaum - hat Microsoft die Anzahl der Kommandozeilen-Werkzeuge im Server kräftig erhöht. Langfristig entwickelte der Konzern über die Zwischenstufen Monad sowie Microsoft Shell (MSH) eine neue Kommandozeilen-Schnittstelle, die Powershell.

Derzeit gibt es sie als Release Candidate 2, was bei Microsoft bedeutet, dass fast alle angepeilten Funktionen enthalten sind. Bis zur endgültigen Version, geplant für das Jahresende 2006, sind noch kleinere Polituren zu erwarten. Die Powershell ist nicht Teil eines Betriebssystems, auch nicht des kommenden Windows Vista, sondern ein kostenfreies Zusatzprodukt. Die aktuelle Vorabversion findet gibt\'s unter [1].

Auf den ersten Blick (Abbildungen 1 und 3) präsentiert sich das Produkt wie ein klassisches DOS-Kommandozeilenfenster. Unter der Haube steckt aber mehr, beispielsweise bessere Eingabehilfen (Tab Completion). Einen echten Editor liefert Microsoft jedoch nicht. Hier sind bereits Drittanbieter ([2], [3]) aktiv.


Abbildung 1: »ps axu« lässt grüßen: »get-process« listet die laufenden Prozesse im System.

Die Befehle in der Powershell heißen Commandlets und sind nach einer Namenskonvention aufgebaut: Sie bestehen immer aus einem Verb und einem Substantiv, zum Beispiel »get-service«, »start-service«, »get-process« oder »select-object«. Eine Parameterliste ist optional. Sind die Parameter unbenannt, dann entscheidet die Reihenfolge, sind sie benannt, muss der Windows-Benutzer dem Parameternamen einen Strich voranstellen. Bei den Parameterwerten sind Platzhalter wie »*« und »?« sowie »[Menge]« erlaubt. Die Groß- und Kleinschreibung ist irrelevant.

Commandlets konkret

Mit dem folgenden Befehl erhält der Administrator eine Liste der laufenden Prozesse, die mit »I« oder »i« anfangen:

get-process -name i*

Ohne die Benennung des Parameters (»get-process i*«) gibt es das gleiche Ergebnis, wie Abbildung 1 nahe legt. Für viele Commandlets sind Aliase definiert, um den Befehl kürzer ausdrücken zu können: »gps i*« oder »ps i*«. »get-alias« listet Aliase, »set-alias« legt einen eigenen an (siehe Tabelle 1).

Tabelle 1:
Syntax-Vergleich zur Bash

 

Funktion

Bash

Powershell

Powershell-Alias

Kommentar

#

#

-

Hilfe

man, info

get-help

help

Ausgabe

echo

Einfacher Ausdruck oder zahlreiche Commandlets, die mit
»write« beginnen

-

Variablen

$

$

-

Pipe

|

|

-

Hintergrundverarbeitung

&

Möglich nur über komplizierten

Zugriff auf Dotnet-Klassen

-

Platzhalter und

reguläre Ausdrücke

*, ?, [ ], ~

*, ?, [ ], -match

-

Ersetzen

gawk

-replace

-

Einbinden von Skripten

».«

».«

-

Bedingung

if [ Bedingung ] ? fi

if ( Bedingung ) { ? }

-

Schleife mit Bedingung

while [ Bedingung ]

do ? done

while (Bedingung) { ? }

-

Schleife über Menge

for x [ in Liste ]

do ? done

foreach-object x { ? }

(Bezug ist der Pipeline-Inhalt)

-

Umlenkung

>, <

>, < und diverse »import...«

und »export...«- Commandlets

-

Verzeichnis auflisten

ls, dir

get-childitem

ls, dir

Verzeichnis anlegen

mkdir

new-item

md, mkdir

Verzeichniswechsel

cd

set-location

cd

Datei-Inhalte anzeigen

cat

get-content

cat, type, gc

Datei löschen

rm

remove-item

del, ri, rm, erase, rd

Prozessliste

ps

get-process

ps, gps

Filtern

grep, sed, head, tail,

find, cut

where-object,

select-object

where, select

Zählen/Berechnen

wc, du, etc.

measure-object

-

Sortieren

sort

sort-object

sort

Aktuelles Datum

date

get-date

-

Befehlsgeschichte

history

get-history

history, h

Alias anlegen

alias

set-alias

alias

Ein weiteres Beispiel für ein Commandlet: Mit »stop-process -name iexplore*« entledigt sich der Anwender aller laufenden Instanzen des Internet Explorers. Beim Einstieg in die Powershell sind wichtig: »get-command« liefert eine Liste aller Commandlets, »get-help« oder »help« leistet Hilfe zu einem Commandlet, so beispielsweise »get-help get-service«. »get-help get« zeigt alle Commandlets, die mit »get« anfangen.

Diesen Artikel druckenDiesen Artikel weiterempfehlen Diesen Artikel kommentieren Newsletter abonnieren
Share/Bookmark
Ähnliche Artikel
Web-Stuhl HTML-Editoren im Test
Der Wald vor lauter Bäumen Logfile-Betrachter für Desktop und Shell
Von Java zu Ajax Google Web Toolkit zum Erstellen dynamischer Webapplikationen
Offene Identität Identitätsverwaltung im Web mit Open ID
Türöffner Service-orientierte Abbildung von Geschäftsprozessen mit freier Software
Fahnenflucht Wenn Entwickler von Emacs und Vi zu Eclipse umsteigen
Whitepaper
Daten Migration - Eine Publikation von Bloor Research

Datenmigrationsprojekte überschreiten häufig das Budget, neigen zu Verzögerung und werden unter Umständen komplett abgebrochen. Bloor Research ist eines der weltweit führenden IT-Forschungs-, Analyse- und Beratungsunternehmen und wird in dem vorliegenden White Paper die wichtigsten Aspekte dieser Problematik näher beleuchten. Ferner werden praktische Empfehlungen für erfolgreiche Migrationsprojekte gegeben, die Sie auf Ihr nächstes Projekt übertragen können.

Download PDF (Registrierung erforderlich)
Open Source Datenintegration in der Praxis: Fallstudien und Anwendungsbeispiele

Über die letzten Jahre hinweg haben sich Open Source Lösungen als fester Bestandteil des gesamten Datenintegrationsmarktes etabliert. Viele Unternehmen haben bereits das Open Source Modell für Ihre Datenintegrationsprojekte aufgegriffen. Das vorliegende White Paper illustriert anhand ausgewählter Fallstudien und Anwendungsbeispiele die Implementierung von Open Source Datenintegration in der Praxis und benennt die daraus resultierenden Vorteile.

Download PDF (Registrierung erforderlich)
Kommentare (0)