© 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).
|
|
|
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.
| 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)
|
Dieser Online-Artikel kann Links enthalten, die auf nicht mehr vorhandene Seiten verweisen. Wir ändern solche "broken links"
nur in wenigen Ausnahmefällen. Der Online-Artikel soll möglichst unverändert der gedrucken Fassung entsprechen.
|